maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   SailfishOS (https://talk.maemo.org/forumdisplay.php?f=52)
-   -   SailfishOS 2.0 Nexus 5 CM12.1 Alpha1 | Sfdroid Pre-Alpha/Early Preview (https://talk.maemo.org/showthread.php?t=96932)

rinigus 2016-11-11 14:19

Re: SailfishOS 2.0 Nexus 5 CM12.1 Alpha1 | Sfdroid Pre-Alpha/Early Preview
 
Quote:

Originally Posted by abyzthomas (Post 1518498)
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.

deprecated 2016-11-11 18:41

Re: SailfishOS 2.0 Nexus 5 CM12.1 Alpha1 | Sfdroid Pre-Alpha/Early Preview
 
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.

rinigus 2016-11-11 19:31

Re: SailfishOS 2.0 Nexus 5 CM12.1 Alpha1 | Sfdroid Pre-Alpha/Early Preview
 
Quote:

Originally Posted by deprecated (Post 1518510)
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. :)

minimec 2016-11-11 21:06

Re: SailfishOS 2.0 Nexus 5 CM12.1 Alpha1 | Sfdroid Pre-Alpha/Early Preview
 
Quote:

Originally Posted by deprecated (Post 1518465)
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.

Quote:

Originally Posted by deprecated (Post 1518510)
... 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!

Quote:

Originally Posted by rinigus (Post 1518513)
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.

minimec 2016-11-11 21:10

Re: SailfishOS 2.0 Nexus 5 CM12.1 Alpha1 | Sfdroid Pre-Alpha/Early Preview
 
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


mautz 2016-11-12 05:45

Re: SailfishOS 2.0 Nexus 5 CM12.1 Alpha1 | Sfdroid Pre-Alpha/Early Preview
 
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 :eek:

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.

deprecated 2016-11-13 07:20

Re: SailfishOS 2.0 Nexus 5 CM12.1 Alpha1 | Sfdroid Pre-Alpha/Early Preview
 
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.

deprecated 2016-11-14 06:31

Re: SailfishOS 2.0 Nexus 5 CM12.1 Alpha1 | Sfdroid Pre-Alpha/Early Preview
 
Quote:

Originally Posted by mautz (Post 1518527)
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. :p

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?

rinigus 2016-11-14 06:52

Re: SailfishOS 2.0 Nexus 5 CM12.1 Alpha1 | Sfdroid Pre-Alpha/Early Preview
 
Quote:

Originally Posted by deprecated (Post 1518696)
@mautz, how do I go about disabling mpdecision to try one of the other hotplug drivers? I think I'm missing something obvious. :p

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!

mautz 2016-11-14 11:13

Re: SailfishOS 2.0 Nexus 5 CM12.1 Alpha1 | Sfdroid Pre-Alpha/Early Preview
 
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.


All times are GMT. The time now is 16:12.

vBulletin® Version 3.8.8