Reply
Thread Tools
Posts: 1,414 | Thanked: 7,547 times | Joined on Aug 2016 @ Estonia
#221
Originally Posted by abyzthomas View Post
Hmm.. Looks like I have the buggy one. Do I need to remove and re-install SFOS with a newer image? Which image is the correct one? I am running under MultiROM.

Thanks for your help.
@abyzthomas: you're welcome! just to be sure that its not due to the changes in property names (N4 vs N5): try to run also

getprop | grep audio

In this case, you should see the property that you checked and its value.

The bug was basically induced at long property names. If you don't have the property that you checked in |grep audio list, choose the one with the longest name and check that.

As for image, I don't know. Maybe @RealJohnGalt has a newer version somewhere around? Or ask on IRC... If I recall correctly, @sledges was fixing this bug on N5.
 

The Following 3 Users Say Thank You to rinigus For This Useful Post:
Posts: 300 | Thanked: 962 times | Joined on Jun 2010 @ USA
#222
A lot of people in Android-specific forums have cited the N5 noise cancelling microphone as a hardware fault, e.g. "cheap microphone". Disabling it and switching to analog was my best bet for being able to use it as a phone. My device adaptation is 0.0.1.3 and I'm running on SFOS 2.0.4.14. As of yesterday, my calls are clean with exceptional audio, even in wind and with background noise.

Perhaps we can find a later adaptation, but that suggests a huge road of work. For now, my fix works on Nexus 5 with our adaptation.
__________________
Sony Xperia XA2 Ultra SFOS 3 + Sony Xperia X SFOS 3, Nokia N810
 

The Following 3 Users Say Thank You to deprecated For This Useful Post:
Posts: 1,414 | Thanked: 7,547 times | Joined on Aug 2016 @ Estonia
#223
Originally Posted by deprecated View Post
A lot of people in Android-specific forums have cited the N5 noise cancelling microphone as a hardware fault, e.g. "cheap microphone". Disabling it and switching to analog was my best bet for being able to use it as a phone. My device adaptation is 0.0.1.3 and I'm running on SFOS 2.0.4.14. As of yesterday, my calls are clean with exceptional audio, even in wind and with background noise.

Perhaps we can find a later adaptation, but that suggests a huge road of work. For now, my fix works on Nexus 5 with our adaptation.
/* Please note that the later assumes that you are on SFOS with getprop bug that I cited. Until its checked by getprop commands listed in earlier messages, this is an assumption */

So far, before the fix, the microphone that was loaded during voice call was actually analog microphone (at least on mako). It might have been misconfigured and what your properties do is probably fixing it with this regard. Situation before getprop bug fix was transmitting metallic and chopped voice, sometimes echo. When switching to Android (using multirom), the voice quality improved dramatically. After the fix, the voice calls in SFOS were the same as in Android, rather clear.

As for long road - since the bug is fixed and in hybris proper, its just a matter of bugging the developers to recompile the SFOS images. The long part of the road has been made ready in March ( https://github.com/libhybris/libhybris/pull/313 ). It just that it wasn't incorporated into mer-hybris for a long time. Now the patch is within, so its mainly a question of recompiling hybris. If you wish, you could probably do it yourself for N5.

Reminder: all text above assumes that you are hit by this bug. You could also test it by comparing voice call quality in Android vs SFOS on the same device. If Android can do better, its possible and rather simple to get the same voice call quality in SFOS.

Whether N5 is better suited for using analog or digital mic - that I don't know. It could be also a common hardware bug on N5.

Writing this up with a hope its of use for N5 users as well.
 

The Following 5 Users Say Thank You to rinigus For This Useful Post:
Posts: 97 | Thanked: 318 times | Joined on Feb 2012 @ Switzerland
#224
Originally Posted by deprecated View Post
Meanwhile, I made a fix to my intermittent call issues with the microphone on my Nexus 5. Not sure if it was due to a bug or a hardware fault, but every person I called reported a bad echo from my end. Not sure if this has been discussed here before, but my fix is as follows:
I applied your changes and will see if there is a change, although in my case people have not complained about sound quality during calls.

Originally Posted by deprecated View Post
... and I'm running on SFOS 2.0.4.14.
After a messy upgrade to sailfishos 2.0.2.51 (I was not patient enough), I pushed that multirom image to 2.0.4.14. I am very happy with the result... So yay... For the first time, I am 'bleeding edge' on my Nexus 5 when it comes to SailfishOS!

Originally Posted by rinigus View Post
As for long road - since the bug is fixed and in hybris proper, its just a matter of bugging the developers to recompile the SFOS images. The long part of the road has been made ready in March ( https://github.com/libhybris/libhybris/pull/313 ). It just that it wasn't incorporated into mer-hybris for a long time. Now the patch is within, so its mainly a question of recompiling hybris. If you wish, you could probably do it yourself for N5.
In general I am pretty optimistic when it comes to new 'hammerhead' images. We have come far with this device.

Last edited by minimec; 2016-11-11 at 21:33.
 

The Following 3 Users Say Thank You to minimec For This Useful Post:
Posts: 97 | Thanked: 318 times | Joined on Feb 2012 @ Switzerland
#225
For those who are testing the new 'mautz'-kernel, I can refer to a post I made some time ago. I wrote a systemd service that allows you to load all your settings @boot, and also toggle the settings.

Basically you can just follow this post http://talk.maemo.org/showpost.php?p...&postcount=672 and change the content of the '/usr/lib/systemd/scripts/cpu-governor' file to something like this...

Code:
#!/bin/bash

# Toggle script to change power settings on the Nexus 5.
# Used as systemd.service in combination with /etc/systemd/system/cpu-governor
# Can be used as simple 'toggler' without systemd.

start() {
    # Max Frequency
    /bin/echo "1728000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

    # blu_plug
    /bin/echo "1" > /sys/module/blu_plug/parameters/max_cores_screenoff
    /bin/echo "2" > /sys/module/blu_plug/parameters/min_online

    # voltage table (undervolt)
    /bin/echo "675 675 725 735 755 765 775 795 805 850 865 895 945 1000" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table

    # simple gpu
    /bin/echo "320000000" > /sys/class/kgsl/kgsl-3d0/max_gpuclk
    /bin/echo "4" > /sys/module/msm_kgsl_core/parameters/simple_laziness
    /bin/echo "7000" > /sys/module/msm_kgsl_core/parameters/simple_ramp_threshold

    # set governor
    /bin/sleep 10
    /bin/echo "conservative" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
}

stop() {
    # Max Frequency
    /bin/echo "2265600" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

    # blu_plug
    /bin/echo "2" > /sys/module/blu_plug/parameters/max_cores_screenoff
    /bin/echo "2" > /sys/module/blu_plug/parameters/min_online

    # voltage table
    /bin/echo "775 775 795 805 825 835 845 865 875 910 925 955 995 1050" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table

    # simple gpu
    /bin/echo "450000000" > /sys/class/kgsl/kgsl-3d0/max_gpuclk
    /bin/echo "5" > /sys/module/msm_kgsl_core/parameters/simple_laziness
    /bin/echo "6000" > /sys/module/msm_kgsl_core/parameters/simple_ramp_threshold

    # set governor
    /bin/echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
}

case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    restart)
        stop
        sleep 1
        start
	;;
    *) exit 1
esac

Last edited by minimec; 2016-11-12 at 00:02.
 

The Following 3 Users Say Thank You to minimec For This Useful Post:
Posts: 635 | Thanked: 1,535 times | Joined on Feb 2014 @ Germany
#226
Freshly compiled kernels anyone?

First the changelog:
Code:
Added some CPU hotplug governors:

- Mako hotplug governor
- Alucard hotplug governor
- MSM Sleeper hotplug governor
- Zen Decision hotplug governor

- Blu_plug can be enabled/disabled via sysfs now,
  so only one kernel build this time.

Added support for ARM Neon in kernel mode and some crypto algorithms now use the NEON extensions

Added MDSS color control and faux wcd93xx sound control hax to the kernel.
To get an idea what MDSS color control is you can get more infos on XDA.

The settings can be changed via Android app or sysfs:
Code:
/sys/devices/platform/kcal_ctrl.0/kcal - (0-256 0-256 0-256) - Controls R/G/B Multipliers
/sys/devices/platform/kcal_ctrl.0/kcal_min - (0-256) - Controls minimum RGB Multiplier value
/sys/devices/platform/kcal_ctrl.0/kcal_enable - (0-1) - Enables/Disables RGB Multiplier Control
/sys/devices/platform/kcal_ctrl.0/kcal_invert - (0-1) - Enables/Disables Display Inversion Mode
/sys/devices/platform/kcal_ctrl.0/kcal_sat - (224-383 or 128) - Controls saturation intensity - use 128 for grayscale mode
/sys/devices/platform/kcal_ctrl.0/kcal_hue - (0-1536) - Controls display hue - may have issues with msm8x26 in the higher values
/sys/devices/platform/kcal_ctrl.0/kcal_val - (128-383) - Controls display value
/sys/devices/platform/kcal_ctrl.0/kcal_cont - (128-383) - Controls display contrast
There are many profiles available on XDA

The sound control hax lets you change the volume of the speaker/headphone/ringtone and so on. You could buy FuxSoundControl android app or use one of the many other kernel settings apps for android or configure it via sysfs:
Code:
/sys/kernel/sound_control_3/
But be carefull, for rising the audio above zero(default) up to 20 you can enter values 0-20, but for setting sound below twenty the values are 255(equals -1) down to 226(equals -30).

And NEVER echo "-10" while wearing headphones

To enable/disable one of the Hotplug governors use an app or take a look here:
Code:
Mako  /sys/class/misc/mako_hotplug_control/enabled
Alucard   /sys/kernel/alucard_hotplug/hotplug_enable
blu_plug   /sys/module/blu_plug/parameters/enabled
msm_sleeper   /sys/devices/platform/msm_sleeper/enabled
zen_decision   /sys/kernel/zen_decision/enabled
Don't forget to only use one governor at a time and to disable mpdecision.

This page has some more information about governors.

Source is updated.

Compiled kernel can be downloaded here

Feedback welcome.

Last edited by mautz; 2016-11-12 at 06:02.
 

The Following 7 Users Say Thank You to mautz For This Useful Post:
Posts: 300 | Thanked: 962 times | Joined on Jun 2010 @ USA
#227
Fantastic work, mautz. Doing a lot of testing! Thank you for the work you've put into these kernels, they just keep getting better!

I'll post my conclusions and results as soon as possible.
__________________
Sony Xperia XA2 Ultra SFOS 3 + Sony Xperia X SFOS 3, Nokia N810
 

The Following User Says Thank You to deprecated For This Useful Post:
Posts: 300 | Thanked: 962 times | Joined on Jun 2010 @ USA
#228
Originally Posted by mautz View Post
Don't forget to only use one governor at a time and to disable mpdecision.
@mautz, how do I go about disabling mpdecision to try one of the other hotplug drivers? I think I'm missing something obvious.

Edit: I'm looking at this strictly from an SFOS point of view. I don't use sfdroid as I like to avoid Google wherever possible, just on principle. Does SFOS use the same structure as Android as far as where the tunables are kept?
__________________
Sony Xperia XA2 Ultra SFOS 3 + Sony Xperia X SFOS 3, Nokia N810

Last edited by deprecated; 2016-11-14 at 06:40.
 

The Following User Says Thank You to deprecated For This Useful Post:
Posts: 1,414 | Thanked: 7,547 times | Joined on Aug 2016 @ Estonia
#229
Originally Posted by deprecated View Post
@mautz, how do I go about disabling mpdecision to try one of the other hotplug drivers? I think I'm missing something obvious.

Edit: I'm looking at this strictly from an SFOS point of view. I don't use sfdroid as I like to avoid Google wherever possible, just on principle. Does SFOS use the same structure as Android as far as where the tunables are kept?
@deprecated: I'd suggest not to disable mpdecision. I played around custom kernels during summer on mako and it became clear very fast that kernels without mpdecision have a major problem on SFOS - many SFOS "boosters" communicate with mpdecision. As a result, kernels without mpdecision (Hells Core, for example) had issues with showing you GUI at the end of the boot. There were also plenty of complaining messages in journal regarding it.

I didn't look much further then into it since it seemed that, on ARM, SFOS does require mpdecision (some boosters are probably closed source, such like a silica one). So, if you guys can find the way around it that would be great. I ended up just using underclocking in the kernel for mako since it was actually very hard to find kernels with mpdecision enabled.

What you guys are doing with N5 kernel is very interesting and I hope that you could optimize this aspect of SFOS further. Good luck!
 

The Following 2 Users Say Thank You to rinigus For This Useful Post:
Posts: 635 | Thanked: 1,535 times | Joined on Feb 2014 @ Germany
#230
To disable mpdecision just rename mpdecision in /system/bin folder.
If you don't use another hotplugging governor the four cores of the cpu stay online at 300MHz when they are not used instead of going offline.

I haven't encountered any problems using another hotplugging governor for weeks now.
 

The Following 5 Users Say Thank You to mautz For This Useful Post:
Reply

Tags
hammerhead, nexus5, sailfishos, sfdroid


 
Forum Jump


All times are GMT. The time now is 02:06.