Related
Hello,
I've just compiled the undervolt module for current 2.3.3 kernels of X10 (2.6.29-00054-g5f01537).
Introduction
I've started from the source code provided by nobodyAtall here.
I also thank ThJap for getting me to work on this.
Settings
On my X10, the values can't vary too much from the default ones, otherwise the phone freezes / reboots. I was able to chopoff only 30 (instead of 50-100) that were possible apparently for 2.1 ROM.
Anyway, just because these values might be different from phone to phone, and to give each one the chance to configure it, the attached module is configurable:
Code:
insmod x10uv.ko args=970,970,1020,1120,1270
1) If you don't specify any arguments, the module will use the default voltages!
2) arguments are in the order of 245Mhz, ... for each frequency that X10 supports.
Once loaded with arguments, you will find this in dmesg:
Code:
<6>[ 509.594738] x10uv: module v002b-kernel-011 loaded. Built for target device
: X10
<6>[ 509.641605] x10uv: frequencies table: 245Mhz/1000 384Mhz/1000 576MHz/1050
768MHz/1150 998Mhz/1300.
<6>[ 509.641848] x10uv: patching done. enjoy better battery life.
The stuff above shows the default values (1000, 1000, 1050, 1150 and 1300).
As I said, I was only able to chop off only 30 out of all values, and have the phone still stable in tests.
If used with the insmod above, the output looks like:
Code:
<6>[ 597.082098] x10uv: module v002b-kernel-011 loaded. Built for target device
: X10
<6>[ 597.129015] x10uv: frequencies table: 245Mhz/970 384Mhz/970 576MHz/1020 76
8MHz/1120 998Mhz/1270.
<6>[ 597.129256] x10uv: patching done. enjoy better battery life.
Download
Use it at your own risk!
x10uv.zip
do you have to load with arguments on each reboot or only once?
ah nice... something like VDD control... but why only 30mV?
Wow, you are amazing, every day some new kernel module from you
Thank you
scoobysnacks said:
do you have to load with arguments on each reboot or only once?
Click to expand...
Click to collapse
You will have to do it everytime. Before setting them at boot, please play a while - otherwise you might end up with phone freezing each boot!
DooMLoRD said:
ah nice... something like VDD control... but why only 30mV?
Click to expand...
Click to collapse
Don't really know I was hoping for at least 100mV (if those are mV) as was mentioned in nobodyatall thread.
I can chop 100mV out of the highest frequency (998Mhz), but I have to leave the others untouched.
Another thing that I noticed, is that the lowest frequency (245MHz) is the most "unstable". If I chop more than 30mV, phone resets almost at each click.
But this might be my old battery (I got the phone second hand anyway). Others might chop more out of the voltages - so that's why I made it configurable - it might be helpful.
Later edit:
In fact, the X10Undervolt from nobodyAtall took off 100mV off each frequency under 998MHz, and left the 998Mhz at 1300 (according to the source code). I tried to cut 30mV out of all frequency, to have an "all inclusive" reduction. But is configurable, and anybody can try something that suites their needs
Thank you
Your compiled modules are a great addition to the phone. I think I almost use all of them
Right now I am testing these setting for stability on stock rom with Z's smartass govenor.
insmod /system/lib/modules/x10uv.ko args=900,900,950,1050,1250
Can anyone tell me how to unload the module, so I do not have to reboot anytime I want to change the voltage?
Byrana said:
Your compiled modules are a great addition to the phone. I think I almost use all of them
Right now I am testing these setting for stability on stock rom with Z's smartass govenor.
insmod /system/lib/modules/x10uv.ko args=900,900,950,1050,1250
Can anyone tell me how to unload the module, so I do not have to reboot anytime I want to change the voltage?
Click to expand...
Click to collapse
Thank you
To unload use:
Code:
rmmod /system/lib/modules/x10uv.ko
which also restores the frequencies to the default values.
hi, thanks for module
im on latest cm7 by z with hotfix
i added "insmod /system/lib/modules/x10uv.ko args=900,900,950,1050,1250" (before tested, thanks to Byrana )
in install-recovery.sh
so
in adb shell
su
dmesg gives me long info, but nothing usefull
but without su
$ lsmod
lsmod
ar6000 241048 0 - Live 0xbf058000
cifs 222624 0 - Live 0xbf01c000
nls_utf8 1804 0 - Live 0xbf016000
smartass_zmod 10656 1 - Live 0xbf00e000
x10uv 2180 0 - Live 0xbf008000
tun 11240 0 - Live 0xbf000000
means this "x10uv 2180 0 - Live 0xbf008000" is loaded now, with uv settings? (args=900,900,950,1050,1250)
ok sry for, only thing is want to know how to make it work permanent?
Zocker Tko said:
ok sry for, only thing is want to know how to make it work permanent?
Click to expand...
Click to collapse
To verify, try this:
Code:
dmesg | grep freq
If everything worked, the grep should give you something like (but with your values):
Code:
<6>[ 2723.381871] x10uv: frequencies table: 245Mhz/970 384Mhz/970 576MHz/1020 76
8MHz/1120 998Mhz/1270.
Please post back to confirm.
I just tried to remove the module with rmmod but it didn't work (error 2).
Also I rechecked with dmesg but having the same thing as Zocker. So I wouldn't recommend using my uv settings.
I am using set cpu and cpu spy maybe this is causing trouble because I found some entries from cpu spy after doing the dmesg.
I am checking now what the cause is.
C:\android-sdk\tools>adb shell
$ dmesg | grep freq
dmesg | grep freq
<6>[ 0.268207] Max ACPU freq from efuse data is 998400 KHz
<6>[ 0.454813] 5 scaling frequencies supported.
<6>[ 9.079225] x10uv: frequencies table: 245Mhz/900 384Mhz/900 576MHz/950 768
MHz/1050 998Mhz/1250.
<4>[ 77.747912] AR6000 connected event on freq 2447 with bssid 00:1a:4f:95:4a:
1a listenInterval=1000, beaconInterval = 100, beaconIeLen = 22 assocReqLen=61 a
ssocRespLen =48
<4>[ 1847.173317] AR6000 connected event on freq 2447 with bssid 00:1a:4f:95:4a:
1a listenInterval=1000, beaconInterval = 100, beaconIeLen = 22 assocReqLen=61 a
ssocRespLen =48
<4>[ 1913.065598] AR6000 connected event on freq 2447 with bssid 00:1a:4f:95:4a:
1a listenInterval=1000, beaconInterval = 100, beaconIeLen = 22 assocReqLen=61 a
ssocRespLen =48
<4>[ 1920.829923] AR6000 connected event on freq 2447 with bssid 00:1a:4f:95:4a:
1a listenInterval=1000, beaconInterval = 100, beaconIeLen = 22 assocReqLen=61 a
ssocRespLen =48
<4>[ 1928.594878] AR6000 connected event on freq 2447 with bssid 00:1a:4f:95:4a:
1a listenInterval=1000, beaconInterval = 100, beaconIeLen = 22 assocReqLen=61 a
ssocRespLen =48
thanks, seems it works
Just did a reboot and inserted again ... now it shows up again. I will keep an eye on it
working great with 50mv off of each!
good work
Byrana said:
I just tried to remove the module with rmmod but it didn't work (error 2).
Also I rechecked with dmesg but having the same thing as Zocker. So I wouldn't recommend using my uv settings.
I am using set cpu and cpu spy maybe this is causing trouble because I found some entries from cpu spy after doing the dmesg.
I am checking now what the cause is.
Click to expand...
Click to collapse
1) error 2 means file not found. So either the path is incorrect OR the file isn't there... if you do "rmmod x10uv.ko" , it expects to find the module in the current folder (so you need to cd /system/lib/modules first). If you use the full path, make sure the module is really there.
2) if the module is not inserted (no trace of the frequency table in the dmesg - please use the grep described above), then it means it was not inserted. Again, in this case, check that the module is located in /system/lib/modules, and that you can insmod it with the correct frequencies (and double check again with grep).
If everything works in command line, but not with install_recovery.sh, then there has to be something wrong with install_recovery.sh entries ...
SetCPU / CpuSPY will not interfere with this module.
Sorry, my bet. No clue what went wrong but it shows everything right after I do the grep freq. My earlier posted settings work very well on my phone.
Thanks mate ... I hope this is gonna save some juice
viulian said:
Hello,
I've just compiled the undervolt module for current 2.3.3 kernels of X10 (2.6.29-00054-g5f01537).
Introduction
I've started from the source code provided by nobodyAtall here.
I also thank ThJap for getting me to work on this.
Settings
On my X10, the values can't vary too much from the default ones, otherwise the phone freezes / reboots. I was able to chopoff only 30 (instead of 50-100) that were possible apparently for 2.1 ROM.
Anyway, just because these values might be different from phone to phone, and to give each one the chance to configure it, the attached module is configurable:
Code:
insmod x10uv.ko args=970,970,1020,1120,1270
1) If you don't specify any arguments, the module will use the default voltages!
2) arguments are in the order of 245Mhz, ... for each frequency that X10 supports.
Once loaded with arguments, you will find this in dmesg:
Code:
<6>[ 509.594738] x10uv: module v002b-kernel-011 loaded. Built for target device
: X10
<6>[ 509.641605] x10uv: frequencies table: 245Mhz/1000 384Mhz/1000 576MHz/1050
768MHz/1150 998Mhz/1300.
<6>[ 509.641848] x10uv: patching done. enjoy better battery life.
The stuff above shows the default values (1000, 1000, 1050, 1150 and 1300).
As I said, I was only able to chop off only 30 out of all values, and have the phone still stable in tests.
If used with the insmod above, the output looks like:
Code:
<6>[ 597.082098] x10uv: module v002b-kernel-011 loaded. Built for target device
: X10
<6>[ 597.129015] x10uv: frequencies table: 245Mhz/970 384Mhz/970 576MHz/1020 76
8MHz/1120 998Mhz/1270.
<6>[ 597.129256] x10uv: patching done. enjoy better battery life.
Download
Use it at your own risk!
x10uv.zip
Click to expand...
Click to collapse
AWESOME! May I add it into EWJET rom?
Yes it can be used in ROMs of course! Please link back here from your description, in case module gets updated, for people to be able to get the latest values and so on.
But feel free to embed it (but watch out for too aggressive settings )
maybe someone could make something for gscript...so everyone can easily test their on settings on the phone. My sweetspot for 998 Mhz is at 1200 mV. Just testing 875 mV on 245 Mhz...you just made my night It is so awesome that it is so easily configurable.
Gooooood
also I will try to build by myself again!
Very good!!!
On my phone
Tested
[email protected]
[email protected]
[email protected]
Byee
Sent from my X10i using Tapatalk
Welcome to the most customizable N7 kernel on xda
Bricked-Kernel Nexus 7 (grouper)
Replaced NVIDIA's strange hotplug manager with my own: tegra_mpdecision
Features:
Based upon Googles tegra3 source
Fixed section mismatches
Various other fixes (look @ github)
Compiled with gcc4.7.2 toolchain (linaro 09.12)
Replaced NVIDIAs hotplug manager with tegra_mpdecision (better battery life + performance)
Extensive sysfs interface for mpdecision with all the tuneables you want
Highly modified ondemand governor for tegra3 & mpdecision (this is the only recommended governor atm)
Fixed usage of 51Mhz clock
GPU OC (416/484/520Mhz)
Truly variant free CPU OC for all devices (51 - 1600Mhz)
Fixed max cpufreq resets throughout the kernel
All cores now use the max frequency (before: only in singlecore, otherwise -100Mhz)
Undervolting (faux123)
Default clocks: 102min & 1300max (+100Mhz overclocked) & 475 Maxscroff
earlysuspend/lateresume for ondemand including special screen off settings to save power
Aroma Installer by amarullz
cmdline interface for cpu min/max/maxscroff/gpuoc/scheduler/governor
---Just flash the kernel with your desired settings, no more need for oc apps. Reflash if you want to change sth. It's that easy!
FSync Control by Ezekeel
export t3 variant to debugfs by faux123 (adb shell cat /sys/kernel/debug/t3_variant)
lowered panel min brightness to 8
ZRAM
enabled NFSv3&4
Check the compare links for the rest
Where is tha Changelog???
There will be no more changelogs.
Instead the download pages were outfitted with compare links to github for each download.
How to install?
Flash through recovery. #done.
Where to complain about errors/bugs?
Please use the Issuetracker for bugs/errors/feature wishes!
Issuetracker @ https://code.google.com/p/bricked/issues/entry
[email protected]
IRC Chat: Freenode IRC #bricked
Download:
No Guarantees! If it kills your grandmother or your device, I am NOT responsible! If you understand this:
(If you download, please hit Thanks below my post! Thank you!)
>>> DOWNLOAD <<<
Donor List:
> Hall of fame <
With special thanks to all N7 piggy bank donors!
Thank you very much!
Source:
Benchmark:
Knowledge base:
What is tegra_mpdecision?
100% kernel based multi core decision! (should cpu1/2/3 be online or not, do we need the low-power/ninja core now?)
This replaces the stock nvidia hotplug solution.
Check /sys/kernel/tegra_mpdecision/conf/ for the configuration.
startdelay = time until mpdecision starts doing it's magic (20000)
delay = time between checks (130)
pause = if something else plugs in the cpu, fall asleep for 10000ms (10 secs)
scroff_single_core = Force low-power mode if screen is off (1)
enabled = enable(1) or disable(0) mpdecision. This does not affect scroff_single_core!
min_cpus = min cpus to be online, cannot be < 1. Default: 1
max_cpus = max cpus to be online, cannot be > 4. (if you set it to 2 and min_cpus to 1 you will basically have a dualcore) Default: 4
idle_freq = a value against that will be checked if a core +/- is requested. (475000)
lpcpu_up_hsyteresis = minimum number of requests that have to be send in order to switch to low-power mode (4)
lpcpu_down_hsyteresis = minimum number of requests that have to be send in order to switch to g-mode (quadcore-mode). Overridden by a requested freq that is higher than the max supported lp-mode frequency. (2)
If cpu0 is below that value and a core up of another cpu is requested, nothing will happen.
If any other cpu is above that value and a core down of that cpu is requested, nothing will happen. (otherwise it would now put down that cpu even though it is still working, which isn't what we want)
Hot plug thresholds (aka now it gets 'complicated')
This small formula calculates which value will be used: (number_of_cpus_online - 1) * 2
The result of this formula will be the nwns_threshold where a new cpu is hotplugged.
The result of this formula + 1 will be the nwns_threshold where a cpu is unplugged.
nwns_threshold_x = runqueue threshold, if this is reached cpuX will be hot/unplugged
twts_threshold_x = time threshold, this amount of time must have passed for the related action to be taken (hot/unplug)
Example:
One cpu is online.
(1 - 1) * 2 = 0 ergo:
nwns_threshold_0 = cpu1 will be hotplugged at this value
((1 - 1) * 2) + 1 = 1
nwns_threshold_1 = cpu0 will be unplugged at this value
This will regulate when we switch to lp-mode, effectively replacing the quadcore g-mode core with the ninja lp-mode core.
Two cpus are online.
(2 - 1) * 2 = 2 ergo:
nwns_threshold_2 = cpu2 will be hotplugged at this value
((2 - 1) * 2) + 1 = 3
nwns_threshold_3 = cpu1 will be unplugged at this value
etc...
(all times are in ms)
If you want to see the mpdecision magic happening:
Code:
adb shell
cat /proc/kmsg | grep 'MPDEC'
mpdecision's input event boost, aka project butter
This will boost your min cpu speed if you touch the screen or press a button and gives you full control.
In those events the min cpu freq will be risen to a predefined value (look below) on every online cpu. This boosts overall reaction times and smoothness a lot. (works similar to the qcom mpdecision binary)
Configuration files:
[email protected]:/sys/kernel/tegra_mpdecision/conf # ls
boost_enabled
boost_freqs
boost_time
All of them work like the usual sysfs files, except one special case:
boost_freqs will list all frequencies from cpu 0 to cpu x. Cpu 3 and any following cpu will share one frequency.
To change those frequencies echo the cpu number + the frequency in khz. To change the boost freq of cpu3 (and 4,5,6,7,8, etc) the echo would look as follows:
Code:
echo "3 1026000" > /sys/kernel/tegra_mpdecision/conf/boost_freqs
for cpu0:
Code:
echo "0 1026000" > /sys/kernel/tegra_mpdecision/conf/boost_freqs
Defaults:
Code:
cat /sys/kernel/tegra_mpdecision/conf/boost_freqs
910000
910000
760000
620000
Recommended governor?
Ondemand.Why do I have no WLAN?
This kernel is too big for our boot.img with WLAN included into the kernel, so it is built as a module. That means it needs to be inserted into the kernel upon boot up, which needs to be automated for maximum comfort = userinit (init.d) support.
The zip adds init.d support to your ramdisk, if that fails for some reason the wlan module cannot be inserted.
if
Code:
adb shell lsmod
doesn't show this:
Code:
tun 14060 0 - Live 0x00000000
cifs 239646 0 - Live 0x00000000
bcmdhd 433083 0 - Live 0x00000000
Then init.d support is probably missing.
You can test it by going to /system/etc/init.d/ and executing 00wlan.
Code:
adb shell
su
. /system/etc/init.d/00wlan
Wait a few seconds and try to enable wifi and repeat the above lsmod command (should now show bcmdhd as live, you can execute 01cifs and 02tun too).
If WLAN now works, init.d support is missing.
You need to have busybox installed in order to be able to get init.d support going, this shouldn't be a problem for most people, since it is usually installed when rooting your phone anyway (and who does unlock but not root their phone? :/)
It does not matter if busybox is installed in /system/bin or /system/xbin, my script will detect the location upon flashing and patch the ramdisk accordingly.
If no busybox is found, the script will add init.d support to your ramdisk with the default location: /system/xbin/busybox. All you need to do is install busybox there and reboot your phone.
show-p1984 said:
Knowledge base:
(under construction)
tegra_mpdecision manual:
coming soon(tm)
Click to expand...
Click to collapse
looks great is this kernal compatible with cm10 based roms such as paranoid android
Flypants101010 said:
looks great is this kernal compatible with cm10 based roms such as paranoid android
Click to expand...
Click to collapse
Yes, ofc
Running cm10 nightlies myself.
show-p1984 said:
Yes, ofc
Running cm10 nightlies myself.
Click to expand...
Click to collapse
All AOSP roms work with Bricked
* Hello World *
What tweaks did you make to on-demand, if you don't mind me asking? The only thing I've noticed is that frequency switching seems to happen faster & more often.
Feel like flashing something tonight!
Sent from my Nexus 7 using xda premium
I tried flashing this a few times and it fails with each try.
Dabaum said:
What tweaks did you make to on-demand, if you don't mind me asking? The only thing I've noticed is that frequency switching seems to happen faster & more often.
Click to expand...
Click to collapse
I mostly adapted it to work with the lpcore while the screen is on and also with special power saving setting while the screen is off.
The 2 phase frequency was changed to accomplish that.
It also applies a powersave bias while screen is off.
Additionally I changed the settings to allow faster scaling with less load. (70% > freq incr)
Source is currently being uploaded, but since I kept the history intact it is taking ages. You can look it up there in more detail once the source is up
airmaxx23 said:
I tried flashing this a few times and it fails with each try.
Click to expand...
Click to collapse
With what message?
I guess because your recovery does not identify your device as 'grouper'.
show-p1984 said:
With what message?
I guess because your recovery does not identify your device as 'grouper'.
Click to expand...
Click to collapse
It just says failed, I've had no problems flashing anything else and I'm flashing mutilple times a day usually.
airmaxx23 said:
It just says failed, I've had no problems flashing anything else and I'm flashing mutilple times a day usually.
Click to expand...
Click to collapse
It most certainly does not say "failed" and nothing else. Look harder.
Using twrp recovery me and my beta testee had no problems at all.
show-p1984 said:
It most certainly does not say "failed" and nothing else. Look harder.
Using twrp recovery me and my beta testee had no problems at all.
Click to expand...
Click to collapse
It says "unable to open zip file. Error flashing zip."
show-p1984 said:
Yes, ofc
Running cm10 nightlies myself.
Click to expand...
Click to collapse
And just to be clear, with non-CM based ones as well? I'm running the 'Glazed' ROM....
airmaxx23 said:
It just says failed, I've had no problems flashing anything else and I'm flashing mutilple times a day usually.
Click to expand...
Click to collapse
Nothing wrong with the zipfile, maybe corrupted download? did you do md5 hash check before flash?
It's either your custom recovery or a corrupted download, period.
ps. Happy Flashing.
airmaxx23 said:
It says "unable to open zip file. Error flashing zip."
Click to expand...
Click to collapse
corrupt download? checked md5/sha1?
corrupt phone upload? checked md5/sha1?
friedsonjm said:
And just to be clear, with non-CM based ones as well? I'm running the 'Glazed' ROM....
Click to expand...
Click to collapse
As long as it is AOSP you should be fine.
But just try it and report back, then we are all a bit more enlightened
(Sorry, I can't possibly test all the ROMs out there ^^)
T-junk said:
Nothing wrong with the zipfile, maybe corrupted download? did you do md5 hash check before flash?
It's either your custom recovery or a corrupted download, period.
ps. Happy Flashing.
Click to expand...
Click to collapse
If I try downloading it directly to my tablet the resulting file is only 17.51K in size, downloading it with a computer takes care of the problem.
airmaxx23 said:
It says "unable to open zip file. Error flashing zip."
Click to expand...
Click to collapse
I get the same.
Sent from my Nexus 7 using xda premium
airmaxx23 said:
If I try downloading it directly to my tablet the resulting file is only 17.51K in size, downloading it with a computer takes care of the problem.
Click to expand...
Click to collapse
StrangerWeather said:
I get the same.
Click to expand...
Click to collapse
I guess same problem for you StangerWeather.
Try downloading on your pc, I will look into that webserver issue tomorrow. (or maybe it's a chrome issue? who knows ^^)
While porting SGH-T959V to the aries kernel, we've ran into a rather nasty SoD.
Without further ado, here is what I see on the usb-uart:
Code:
[ 168.243223] (hpd_status = 0)++
[ 171.568772] wm8994_set_mic_bias: HWREV=13, on=0
[ 171.581786] PM: Syncing filesystems ... done.
[ 171.591614] Freezing user space processes ... (elapsed 0.01 seconds) done.
[ 171.614047] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
[ 171.633556] Suspending console(s) (use no_console_suspend to debug)
Then the device never comes back from suspend. The power button, nor any other button on the phone will wake the phone.
This issue does not happen if:
usb is plugged in
a device that holds a wakelock, such as sdhc/mmc, is active. So: logging to sdcard
So the only way for me to debug the issue is over usb-uart or internal uart (which I'm still working on trying to solder correctly).
My first assumption is that a gpio pin is set incorrectly, but I've spent the last 3 months tinkering around with gpio settings and got no where.
I've also tried enabling power management (both platform specific and generic) debugging, and followed the basic pm debugging documentation in the kernel.
I get zero information about which device is either failing to suspend or any evidence as to where I should look.
At first we suspected the ril (samsung-modemctl), but after I checked out a commit before that code was committed and disabled rild in our init.aries.rc, I was able to reproduce the issue. So that rules out ril/samsung-modemctl.
I'm was also thinking it might have been one of the gpio interrupt pins, and I went through each pin and tried changing settings with no change.
Any help would be most appreciated, as I'm at a loss to where I should go next.
I am more then happy to test any theories and provide verbose results.
Here is the full log to boot:
http://pastebin.com/ymxU7qTM
Here is what happens when I turn off the screen:
Code:
[ 32.282978] request_suspend_state: sleep (0->3) at 31638909909 (2012-11-13 08:09:37.690081300 UTC)
[ 32.325302] (hpd_status = 0)++
[ 32.558317] PM: Syncing filesystems ... done.
[ 32.571488] Freezing user space processes ... (elapsed 0.01 seconds) done.
[ 32.590714] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
[ 32.610223] Suspending console(s) (use no_console_suspend to debug)
Is any of the core files open source?? Like who made it? My friend told me he saw a protection on the core files
Sent from my SGH-T959V using xda app-developers app
xtrem88 said:
Is any of the core files open source?? Like who made it? My friend told me he saw a protection on the core files
Sent from my SGH-T959V using xda app-developers app
Click to expand...
Click to collapse
Everything is up on github.
Sync cm9 like normal:
Code:
mkdir android
cd android
repo init -u https://github.com/CyanogenMod/android.git -b ics
Add the local_manifest.xml:
Code:
cd .repo
wget http://bhundven.github.com/CM9/local_manifest.xml
cd ..
Sync the repo:
Code:
repo sync -j<# of repos to sync in parallel>
What do you mean by:
xtrem88 said:
he saw a protection on the core files
Click to expand...
Click to collapse
according to him its " The Pieces of Codes That Is Responsible For Pinging the Device's rtc and Boot Loader Has A Unique SLL Pinging ID On It.... and Since It locked For A Specific Type Of Hardware; The Only thing To Do Is To Dissemble The ROM And Re program It......"
this might be far fetched but im always about finding a small way around, but is there anyways we could make a loop so when the screen is off we can keep the sdhc/mmc active or make the phone think usb is plugged in?
dsexton702 said:
this might be far fetched but im always about finding a small way around, but is there anyways we could make a loop so when the screen is off we can keep the sdhc/mmc active or make the phone think usb is plugged in?
Click to expand...
Click to collapse
I downloaded the whole kernel from bhundven's git, I am trying to see the kernel
debugging parameters, but I don't know where to look exactly, what I wanted
to see if "no_console_suspend" is set to 1. I don't know if we can boot the kernel
with this parameter from the terminal :/
more specifically:
Kernel panic during suspend
Debugging suspend/resume issues can be difficult if the kernel panics during suspend, especially late in the suspend because console messages are disabled. One can stop console messages from being suspended by using the kernel parameter no_console_suspend:
no_console_suspend=1
This will force the console not to suspend. Boot with this option, chvt 1 (to console #1), and suspend using pm-suspend
Click to expand...
Click to collapse
Some valuable information about kernel debugging found here:
https://wiki.ubuntu.com/Kernel/KernelDebuggingTricks
Although it is for ubuntu kernel, but android is quite similar I think.
It could be Heisenbug that bryan mentioned before as a side effect of printk causing a slow down and
race condition issue.
but probably bryan already did that.. I don't really know, just throwing ideas here and there.. Sorry for reviving the thread btw
Rebel_X said:
I downloaded the whole kernel from bhundven's git, I am trying to see the kernel
debugging parameters, but I don't know where to look exactly, what I wanted
to see if "no_console_suspend" is set to 1. I don't know if we can boot the kernel
with this parameter from the terminal :/
more specifically:
Some valuable information about kernel debugging found here:
https://wiki.ubuntu.com/Kernel/KernelDebuggingTricks
Although it is for ubuntu kernel, but android is quite similar I think.
It could be Heisenbug that bryan mentioned before as a side effect of printk causing a slow down and
race condition issue.
but probably bryan already did that.. I don't really know, just throwing ideas here and there.. Sorry for reviving the thread btw
Click to expand...
Click to collapse
No way, any help I can get on this the better it will be for the sgs4g users.
I'm not at a place where I can review the link or do anything, but I will check it out.
'no_console_suspend' also stops the SoD.
Sent from my SAMSUNG-SGH-I717 using Tapatalk 2
Hi,
I am trying to run blktrace on my Samsung Galaxy S3; and I compiled my own Android ROM from source code found here: git://github.com/Root-Box/platform_manifest.git (it is Android 4.1.2). I have changed certain configurations so that blktrace is included in the ROM. The linux kernel I am using is 3.0.31-CM
However, when ever I try to run blktrace, I got the following error:
BLKTRACESETUP(2) /dev/block/mmcblk0p1 failed: 25/Not a typewriter.
After using strace to trace the system call, I found that ioctl on /dev/block/mmcblk0p1 with cmd BLKTRACESETUP failed, however I couldn't figure out why.
So I am wondering, did you guys successfully run blktrace on Android; and if so, how did you do that? Also, does anyone has any thoughts on what might went run in my situation?
Thanks a lot.
Suli
So I finally figure this out:
1. In order to use blktrace, the kernel has to be compiled with block tracing support
kernel hacking => tracer => enabling IO tracer
CONFIG_BLKDEV_IO_TRACE
I also enabled a few other tracing options just to be safe
2. In order to use blktrace, all cores have to be online
I observed that blktrace could do ioctl for cpu0 successfully, but not for other cores.
Kernel blktrace facility is creating the trace[n] file in sysfs for the n-th online cpu core which blktrace tries to open.
Usually, only cpu0 is online and others are offline.
That's why blktrace failed opening trace[1, 2, 3] and exited.
So cpufreq governor needs to be changed into "performance" mode
After these two tweaks, it is working
yangsuli said:
So I finally figure this out:
1. In order to use blktrace, the kernel has to be compiled with block tracing support
kernel hacking => tracer => enabling IO tracer
CONFIG_BLKDEV_IO_TRACE
I also enabled a few other tracing options just to be safe
2. In order to use blktrace, all cores have to be online
I observed that blktrace could do ioctl for cpu0 successfully, but not for other cores.
Kernel blktrace facility is creating the trace[n] file in sysfs for the n-th online cpu core which blktrace tries to open.
Usually, only cpu0 is online and others are offline.
That's why blktrace failed opening trace[1, 2, 3] and exited.
So cpufreq governor needs to be changed into "performance" mode
After these two tweaks, it is working
Click to expand...
Click to collapse
I tried to use echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor, however, I still got the error on my nexus 4:
[email protected]:/ # blktrace -d /dev/block/mmcblk0p23 -o sdcard/
Thread 3 failed open /sys/kernel/debug/block/mmcblk0p23/trace3: 2/No such file or directory
Thread 2 failed open /sys/kernel/debug/block/mmcblk0p23/trace2: 2/No such file or directory
Thread 1 failed open /sys/kernel/debug/block/mmcblk0p23/trace1: 2/No such file or directory
FAILED to start thread on CPU 1: 1/Operation not permitted
FAILED to start thread on CPU 2: 1/Operation not permitted
FAILED to start thread on CPU 3: 1/Operation not permitted
request for help
yangsuli said:
So I finally figure this out:
1. In order to use blktrace, the kernel has to be compiled with block tracing support
kernel hacking => tracer => enabling IO tracer
CONFIG_BLKDEV_IO_TRACE
I also enabled a few other tracing options just to be safe
2. In order to use blktrace, all cores have to be online
I observed that blktrace could do ioctl for cpu0 successfully, but not for other cores.
Kernel blktrace facility is creating the trace[n] file in sysfs for the n-th online cpu core which blktrace tries to open.
Usually, only cpu0 is online and others are offline.
That's why blktrace failed opening trace[1, 2, 3] and exited.
So cpufreq governor needs to be changed into "performance" mode
After these two tweaks, it is working
Click to expand...
Click to collapse
Could you tell me how to make cpufreq governor changed into performance mode on nexus
yangsuli said:
Hi,
I am trying to run blktrace on my Samsung Galaxy S3; and I compiled my own Android ROM from source code found here: git://github.com/Root-Box/platform_manifest.git (it is Android 4.1.2). I have changed certain configurations so that blktrace is included in the ROM. The linux kernel I am using is 3.0.31-CM
However, when ever I try to run blktrace, I got the following error:
BLKTRACESETUP(2) /dev/block/mmcblk0p1 failed: 25/Not a typewriter.
After using strace to trace the system call, I found that ioctl on /dev/block/mmcblk0p1 with cmd BLKTRACESETUP failed, however I couldn't figure out why.
So I am wondering, did you guys successfully run blktrace on Android; and if so, how did you do that? Also, does anyone has any thoughts on what might went run in my situation?
Thanks a lot.
Suli
Click to expand...
Click to collapse
Hi, Yangsuli,
For the first step, how to enable I/O tracer please? Just add CONFIG_BLKDEV_IO_TRACE=y in .config? WHat else did you add to the config file?
And Could you tell me how to make cpufreq governor changed into performance mode?
Many thanks!
Hi, since I closed my DEV threads there is no place for discussing development related things.
I've opened this thread so we can discuss any development related stuff (kernel etc).
Please keep the thread clean. I will report any non-low-level development posts.
ION kernel status
Kernel boots, lcd backlight is on but no image is shown.
I only get a display full of noise for half a second, after the following error occurs:
Code:
[ 8.994812] ------------[ cut here ]------------
[ 8.995025] WARNING: at /home/mike/android/cm10.1/kernel/semc/msm7x30/kernel/mutex.c:198 __mutex_lock_slowpath+0x70/0x27c()
[ 8.995483] Modules linked in:
[ 8.995758] [<c001428c>] (unwind_backtrace+0x0/0x11c) from [<c008a6f0>] (warn_slowpath_common+0x4c/0x64)
[ 8.996154] [<c008a6f0>] (warn_slowpath_common+0x4c/0x64) from [<c008a720>] (warn_slowpath_null+0x18/0x1c)
[ 8.996582] [<c008a720>] (warn_slowpath_null+0x18/0x1c) from [<c061b524>] (__mutex_lock_slowpath+0x70/0x27c)
[ 8.998138] [<c061b524>] (__mutex_lock_slowpath+0x70/0x27c) from [<c061b73c>] (mutex_lock+0xc/0x24)
[ 9.007171] [<c061b73c>] (mutex_lock+0xc/0x24) from [<c02988dc>] (mddi_host_timer_service+0x374/0x430)
[ 9.016448] [<c02988dc>] (mddi_host_timer_service+0x374/0x430) from [<c00949dc>] (run_timer_softirq+0x18c/0x260)
[ 9.026519] [<c00949dc>] (run_timer_softirq+0x18c/0x260) from [<c008fa1c>] (__do_softirq+0x74/0x120)
[ 9.035705] [<c008fa1c>] (__do_softirq+0x74/0x120) from [<c008fe8c>] (irq_exit+0x44/0xa8)
[ 9.043884] [<c008fe8c>] (irq_exit+0x44/0xa8) from [<c000f08c>] (handle_IRQ+0x68/0x8c)
[ 9.051788] [<c000f08c>] (handle_IRQ+0x68/0x8c) from [<c00084e4>] (vic_handle_irq+0x28/0x30)
[ 9.060119] [<c00084e4>] (vic_handle_irq+0x28/0x30) from [<c000dd80>] (__irq_svc+0x40/0x70)
[ 9.068511] Exception stack(0xc0879f58 to 0xc0879fa0)
[ 9.073547] 9f40: ffffffff 000000b0
[ 9.081634] 9f60: 00000001 00000000 c0878000 c0889470 c0908048 c0889464 00204059 511f00f2
[ 9.089874] 9f80: 00000000 00000000 00000000 c0879fa0 c007dbd8 c000f1a0 400b0013 ffffffff
[ 9.098052] [<c000dd80>] (__irq_svc+0x40/0x70) from [<c000f1a0>] (default_idle+0x24/0x2c)
[ 9.106201] [<c000f1a0>] (default_idle+0x24/0x2c) from [<c000f458>] (cpu_idle+0x5c/0xac)
[ 9.114196] [<c000f458>] (cpu_idle+0x5c/0xac) from [<c060af7c>] (rest_init+0x84/0x9c)
[ 9.122100] [<c060af7c>] (rest_init+0x84/0x9c) from [<c0840a54>] (start_kernel+0x368/0x3c4)
[ 9.130432] ---[ end trace 826fbc4fa566ec66 ]---
EDIT: Full log with mddi & msm_fb debugging enabled here: http://pastebin.com/Tj1izvyt
I don't see anything useful
I'm not familiar with these kernel building i know u people @android1234567 @DevConnection_Team @Christopher83 @johnnyslt @arco68 can help us building ION kernel for xperia 2011 devices ... sorry if I'm interrupting u .. thank you
mike maybe we need some specific changes in qcom_display_caf try to use arco'w variant
Does kernel panic if you exclude display driver?
Gesendet von meinem Xperia Neo V mit Tapatalk 2
deccen90 said:
I'm not familiar with these kernel building i know u people @android1234567 @DevConnection_Team @Christopher83 @johnnyslt @arco68 can help us building ION kernel for xperia 2011 devices ... sorry if I'm interrupting u .. thank you
Click to expand...
Click to collapse
Where is the stable pmem kernel source? and in what branch @mikeioannina tried to enable ION?
johnnyslt said:
Where is the stable pmem kernel source? and in what branch @mikeioannina tried to enable ION?
Click to expand...
Click to collapse
current pmem kernel: https://github.com/LegacyXperia/msm7x30-3.4.x-nAa/commits/cm-10.1
new ion kernel: https://github.com/mikeNG/android_kernel_semc_msm7x30/commits/cm-10.1-mutex-error
You can check the second post for more info.
mikeioannina said:
current pmem kernel: https://github.com/LegacyXperia/msm7x30-3.4.x-nAa/commits/cm-10.1
new ion kernel: https://github.com/mikeNG/android_kernel_semc_msm7x30/commits/cm-10.1-mutex-error
You can check the second post for more info.
Click to expand...
Click to collapse
I'm seeing that pmem_adsp doesn't get allocated and it should:
Code:
[ 3.558837] pmem: pmem_setup: unable to register pmem driver(pmem_adsp) - zero size passed in!
What adreno libs are you using?
Also are you using patched gralloc with PMEM_ADSP support?
hi @mikeioannina
I would like to help fix the fm radio in cm11. I am not a dev and I only have some basic C programming and github skills. If you think it is worth the time ( mine and yours), could you describe how to build the fm app for cm11 and where to look for bugs?
johnny.tifosi said:
hi @mikeioannina
I would like to help fix the fm radio in cm11. I am not a dev and I only have some basic C programming and github skills. If you think it is worth the time ( mine and yours), could you describe how to build the fm app for cm11 and where to look for bugs?
Click to expand...
Click to collapse
I believe that the FM app is broken because there is no wrapper for the SEMC FM libs...
johnny.tifosi said:
hi @mikeioannina
I would like to help fix the fm radio in cm11. I am not a dev and I only have some basic C programming and github skills. If you think it is worth the time ( mine and yours), could you describe how to build the fm app for cm11 and where to look for bugs?
Click to expand...
Click to collapse
kemoba said:
I believe that the FM app is broken because there is no wrapper for the SEMC FM libs...
Click to expand...
Click to collapse
You can pick this change: http://legacyxperia.us.to:8080/131 in order to build the TI FM stuff. It's only for cm10.1 currently but in my opinion it's the best version to work on FM, since we have the most complete code for msm7x30 & TI wl12xx in that version.
I'm afraid you won't manage to do anything since you need some knowledge of how android audio stuff works (I also haven't worked on audio stuff very much in the past and don't have much knowledge)
Anyway, the code is there for anyone who wants to try
mikeioannina said:
Kernel boots, lcd backlight is on but no image is shown.
I only get a display full of noise for half a second, after the following error occurs:
Code:
[ 8.994812] ------------[ cut here ]------------
[ 8.995025] WARNING: at /home/mike/android/cm10.1/kernel/semc/msm7x30/kernel/mutex.c:198 __mutex_lock_slowpath+0x70/0x27c()
[ 8.995483] Modules linked in:
[ 8.995758] [<c001428c>] (unwind_backtrace+0x0/0x11c) from [<c008a6f0>] (warn_slowpath_common+0x4c/0x64)
[ 8.996154] [<c008a6f0>] (warn_slowpath_common+0x4c/0x64) from [<c008a720>] (warn_slowpath_null+0x18/0x1c)
[ 8.996582] [<c008a720>] (warn_slowpath_null+0x18/0x1c) from [<c061b524>] (__mutex_lock_slowpath+0x70/0x27c)
[ 8.998138] [<c061b524>] (__mutex_lock_slowpath+0x70/0x27c) from [<c061b73c>] (mutex_lock+0xc/0x24)
[ 9.007171] [<c061b73c>] (mutex_lock+0xc/0x24) from [<c02988dc>] (mddi_host_timer_service+0x374/0x430)
[ 9.016448] [<c02988dc>] (mddi_host_timer_service+0x374/0x430) from [<c00949dc>] (run_timer_softirq+0x18c/0x260)
[ 9.026519] [<c00949dc>] (run_timer_softirq+0x18c/0x260) from [<c008fa1c>] (__do_softirq+0x74/0x120)
[ 9.035705] [<c008fa1c>] (__do_softirq+0x74/0x120) from [<c008fe8c>] (irq_exit+0x44/0xa8)
[ 9.043884] [<c008fe8c>] (irq_exit+0x44/0xa8) from [<c000f08c>] (handle_IRQ+0x68/0x8c)
[ 9.051788] [<c000f08c>] (handle_IRQ+0x68/0x8c) from [<c00084e4>] (vic_handle_irq+0x28/0x30)
[ 9.060119] [<c00084e4>] (vic_handle_irq+0x28/0x30) from [<c000dd80>] (__irq_svc+0x40/0x70)
[ 9.068511] Exception stack(0xc0879f58 to 0xc0879fa0)
[ 9.073547] 9f40: ffffffff 000000b0
[ 9.081634] 9f60: 00000001 00000000 c0878000 c0889470 c0908048 c0889464 00204059 511f00f2
[ 9.089874] 9f80: 00000000 00000000 00000000 c0879fa0 c007dbd8 c000f1a0 400b0013 ffffffff
[ 9.098052] [<c000dd80>] (__irq_svc+0x40/0x70) from [<c000f1a0>] (default_idle+0x24/0x2c)
[ 9.106201] [<c000f1a0>] (default_idle+0x24/0x2c) from [<c000f458>] (cpu_idle+0x5c/0xac)
[ 9.114196] [<c000f458>] (cpu_idle+0x5c/0xac) from [<c060af7c>] (rest_init+0x84/0x9c)
[ 9.122100] [<c060af7c>] (rest_init+0x84/0x9c) from [<c0840a54>] (start_kernel+0x368/0x3c4)
[ 9.130432] ---[ end trace 826fbc4fa566ec66 ]---
EDIT: Full log with mddi & msm_fb debugging enabled here: http://pastebin.com/Tj1izvyt
I don't see anything useful
Click to expand...
Click to collapse
Hello,
I'm porting 3.x kernel on an other xperia device (x10) and facing the same issue ... Did you managed to solve it ?
I'm using ion memory management and as johnnyslt wrote I got this line in log too :
PHP:
pmem: pmem_setup: unable to register pmem driver(pmem_adsp) - zero size passed in!
I'll look with for this (that musn't be a big deal to allocate pmem_adsp with fitting lines in board ... let's see if this is what is causing the trouble.
If you didn't find the solution yet, I'll let you know if I find
Regards
Tof37 said:
Hello,
I'm porting 3.x kernel on an other xperia device (x10) and facing the same issue ... Did you managed to solve it ?
I'm using ion memory management and as johnnyslt wrote I got this line in log too :
PHP:
pmem: pmem_setup: unable to register pmem driver(pmem_adsp) - zero size passed in!
I'll look with for this (that musn't be a big deal to allocate pmem_adsp with fitting lines in board ... let's see if this is what is causing the trouble.
If you didn't find the solution yet, I'll let you know if I find
Regards
Click to expand...
Click to collapse
No, still having the problem. I have limited time these days so no much progress...
If you manage anything let me know
@mikeioannina
Hope it'll help ... you should have a look to your drivers/video/msm/logo.c and msm_fb.c and .h files
In the last 2 files the lines which are dealing with fb_msm_logo ...
I ported 3.4 video drivers in the 3.0.8 kernel I use and add the same issue.
I add this problem too with 3.0.8 drivers and solving the problem of fb_msm_logo did it.
If you disable fb_msm_logo in your config file but still have the issue this means you're mising lines specific for your device.
If 3.0.X kernel is already working on your device, try to make a diff with video drivers.
I'll take a look at your repo when I'll have a little time
Regards
Tof37 said:
@mikeioannina
Hope it'll help ... you should have a look to your drivers/video/msm/logo.c and msm_fb.c and .h files
In the last 2 files the lines which are dealing with fb_msm_logo ...
I ported 3.4 video drivers in the 3.0.8 kernel I use and add the same issue.
I add this problem too with 3.0.8 drivers and solving the problem of fb_msm_logo did it.
If you disable fb_msm_logo in your config file but still have the issue this means you're mising lines specific for your device.
If 3.0.X kernel is already working on your device, try to make a diff with video drivers.
I'll take a look at your repo when I'll have a little time
Regards
Click to expand...
Click to collapse
Thanks for the hints,
hmm... I think I have tried without bootlogo with no luck, I will try again to be sure.
3.0.8 works fine on our devices, 3.4 works too but with 3.0.8 video drivers. When I try pure 3.4 it doesn't boot with the above error.
EDIT:
I tried disabling bootlogo with no change, still no display.
Making a diff of 3.0.8/3.4 drivers/video/msm is almost impossible since there are too many changes involved, I already tried it with no luck, spent hours and it didn't even compile.
I'm really sad with this situation, I'm working for 3 months on this kernel with the exact same issue. where the hell is the problem?
mikeioannina said:
Thanks for the hints,
hmm... I think I have tried without bootlogo with no luck, I will try again to be sure.
3.0.8 works fine on our devices, 3.4 works too but with 3.0.8 video drivers. When I try pure 3.4 it doesn't boot with the above error.
EDIT:
I tried disabling bootlogo with no change, still no display.
Making a diff of 3.0.8/3.4 drivers/video/msm is almost impossible since there are too many changes involved, I already tried it with no luck, spent hours and it didn't even compile.
I'm really sad with this situation, I'm working for 3 months on this kernel with the exact same issue. where the hell is the problem?
Click to expand...
Click to collapse
I see so I'm facing exactly the same problem ...
do you have this problem with your kernel with pmem ?
I didn't try with mine (only tried with the one where ion is enabled)
Even in the ion enabled version, pmem_adsp is allocated but still have the problem.
ps : It's been nearly 1 year I started to port 3.0.8 kernel on x10 ... I got nearly 6 months (including 2 months to not work on it) to try to solve display problem
@mikeioannina
You should try this ...
in drivers/video/msm/mddi.c
in void pmdh_clk_enable() you've got
PHP:
if (mddi_host_timer.function)
mddi_host_timer_service(0);
In my .32 video drivers this if is in static int mddi_resume ...
Try to get the the above function like this :
PHP:
static int mddi_resume(struct platform_device *pdev)
{
mddi_host_type host_idx = MDDI_HOST_PRIM;
if (!mddi_is_in_suspend)
return 0;
mddi_is_in_suspend = 0;
if (mddi_power_locked)
return 0;
pmdh_clk_enable();
mddi_host_reg_out(PAD_CTL, mddi_pad_ctrl);
[B]if (mddi_host_timer.function)
mddi_host_timer_service(0);[/B]
return 0;
}
The mddi_host_timer_service error in log dissapeared ... seems there are some problems is it stays in pmdh_clk_enable...
Tof37 said:
@mikeioannina
You should try this ...
in drivers/video/msm/mddi.c
in void pmdh_clk_enable() you've got
PHP:
if (mddi_host_timer.function)
mddi_host_timer_service(0);
In my .32 video drivers this if is in static int mddi_resume ...
Try to get the the above function like this :
PHP:
static int mddi_resume(struct platform_device *pdev)
{
mddi_host_type host_idx = MDDI_HOST_PRIM;
if (!mddi_is_in_suspend)
return 0;
mddi_is_in_suspend = 0;
if (mddi_power_locked)
return 0;
pmdh_clk_enable();
mddi_host_reg_out(PAD_CTL, mddi_pad_ctrl);
[B]if (mddi_host_timer.function)
mddi_host_timer_service(0);[/B]
return 0;
}
The mddi_host_timer_service error in log dissapeared ... seems there are some problems is it stays in pmdh_clk_enable...
Click to expand...
Click to collapse
that did nothing, still getting the same error...
mikeioannina said:
that did nothing, still getting the same error...
Click to expand...
Click to collapse
Have to solve a |kgsl_mh_intrcallback| axi read error interrupt: error in my kernel and will take a more attentive look to 3.4 video drivers .
Stay tuned
btw if you ever have a solution for my problem
Thanks
mikeioannina said:
Code:
[ 8.994812]
[ 8.995025] WARNING: at /home/mike/android/cm10.1/kernel/semc/msm7x30/kernel/mutex.c:198 __mutex_lock_slowpath+0x70/0x27c()
Click to expand...
Click to collapse
I'm going to just throw this out, is it possible that you are building a kernel for CM10.1 and booting it on CM11 ?