Hello guys!
I would like to share something weird I encountered and to me, I feel weird about it. Any clarification would be appreciated!
You see, whenever I intensively uses my phone, that is when I use my browser to do everything (manage my site post to forums bla bla bla), I found out that my phone seems to be lacking memory, well you know that event where some apps are closed and does not run in background. After checking the running apps section in settings I found out 4 system process shown to be restarting without being actually restarted!
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Qualcomm.atfwd makes me more afraid about this problem!
Can someone give me a thorough explanation? I faced this once on DoomLord's advanced stock kernel, however (flashed and) being on the stock (Sony) kernel does relieves this problem but at some point in time I got this problem again. The difference between now and then is that then, the free RAM is merely 20MB (DoomLord's kernel) but gladly now the free RAM is about 170MB (Stock kernel). However this problem still bugs me out. Sometimes it throws me into an unexpected soft reboot!
There is a fix - a reboot turns the system back into its calm state. However, I want to know more about this and if there is a workaround, I would really appreciate it!
UPDATE
If I experience this problem for only less processes (eg 2), the processes will return to be okay after leaving the phone without use.
Test supercharger
Gesendet von meinem Xperia SP
Main post updated. For easy understanding....
joke19 said:
Test supercharger
Gesendet von meinem Xperia SP
Click to expand...
Click to collapse
I will look into that, but at the time being, I want to know what actually causes this to happen
This happens when you use Chrome, is it?
And.. can you post what are values you get when doing following command in a terminal emulator..
Code:
cat /sys/module/lowmemorykiller/parameters/minfree
mrhnet said:
This happens when you use Chrome, is it?
And.. can you post what are values you get when doing following command in a terminal emulator..
Code:
cat /sys/module/lowmemorykiller/parameters/minfree
Click to expand...
Click to collapse
No, I use Firefox... Here is the terminal output:
15000,17532,20065,22598,25131,30263
(## This post got longer than I thought.. apologies mate.. )
TechnoSparks said:
No, I use Firefox... Here is the terminal output:
15000,17532,20065,22598,25131,30263
Click to expand...
Click to collapse
I haven't used Firefox much.. is it a memory hog? I'm assuming you're on stock kernel.
Those output values indicate minfree values of low memory killer (LMK) driver, as you may already know. It's in pages, 1 page=4K, so those values in MB:
58,68,78,88,98,118
These stock rom values don't make much sense.. it means that when "free ram" goes below 58mb, LMK driver should kill the Foreground app, which is in the foreground and which we're interacting with! Why do we need to kill that?? So, these values were causing problems for me (I think ) eg. Asphalt8 shutting down in the middle of the game [it's memory intensive, so ram might be going down to that level]. What might be happening in your case is that when using Firefox with many web pages open, if free ram goes quite low, apps might be shutting down. Some techie things about that below.. skip if boring
As you may already know, apps/processes in Android are assigned an oom_adj value, which indicates the likelihood of it being killed when an out of memory (OOM) situation occurs. More higher it's value, more likelihood of it getting killed. Valid range -17 to +15. (-17 range means it won't get killed). According to that, there are six groups, into which apps/processes will be assigned:
1. Foreground app
2. Visible app
3. Secondary server
4. Hidden app
5. Content provider
6. Empty app
Read details about them here: http://forum.xda-developers.com/showthread.php?t=622666
Foreground apps usually have an oom_adj value of 0 or less, so they are the least killable. Empty apps have a higher oom_adj and they are killed early. Also, oom_adj value changes according to the state of the user app; 0 when it's at foreground and assigned a higher value when the app goes to the background.
Above 6 categories correspond with the 6 memory limits which are set in LMK minfree values. Practically in your case, Empty apps will get killed when ram goes below 118mb, content providers when 98mb, and so on.. lastly killing foreground apps when ram goes below 58mb. So, what you see being killed belong to one of the groups, which might have got killed accordingly when ram went low.
[Highlight]Note:[/highlight] In our SP (and newer kernels), oom_score_adj is used instead of old oom_adj. (oom_score_adj valid range is -1000 to 1000). But oom_adj is maintained for compatibility I think. End of boring stuff..
##You can check the minfree values (also change them) and see the app states with this Memory Manager app easily:
If you click on an app in the list and select 'more info', you can see it's oom_adj value. In my case, System UI has -12 (foreground), Home Launcher has 1 (visible group) etc.. You can check this manually in a terminal too.. but boring.. : (commands with output posted below)
E.g. take home launcher. Find out it's PID (process ID) like this..
Code:
$ ps |grep home
u0_a26 1653 721 471408 78076 ffffffff 00000000 S com.sonyericsson.home
It's pid is 1653. To see it's oom_adj value..
Code:
$ cat /proc/1653/oom_adj
1
It's 1 (foreground). You might get 6 (hidden). So, your home is easily killed than my home . See below why..
At the same time you can see the new oom_score_adj..
Code:
$ cat /proc/1653/oom_score_adj
58
To convert it to old oom_adj value..
oom_adj=(oom_score_adj x 17)/1000
So, 58 x 17 /1000 = ~1
*There's another value (0-1000) of oom_score (cat /proc/1653/oom_score), which is THE actual indicator of how likely a process will get killed. It changes according to the tunable oom_score_adj and other factors..? something like that.. forget it!
[Highlight]So, the things you can do..[/highlight]
1. Change the minfree values to suit your needs. Use lower values if you want more multitasking. Higher values if need more "free ram" for gaming etc.. (see below.. what's this "free ram"?). I use 8,12,45,65,95,165 for more multitasking and for foreground apps to stay until ram becomes much lower. Asphalt8 never crashed with this!
You can set those values with the above Memory Manager app (and tick 'apply at boot'). Need root access..
Or do the boring manual way..
Code:
echo "2048,3072,11520,16640,24320,42240" > /sys/module/lowmemorykiller/parameters/minfree
(after "su" command of course; need root for that).
This won't survive reboot. You can run this command as a script with init.d every boot. (For init.d support, check this). If you have init.d support, you can use Minfree Manager app to set minfree values, and it saves a script under init.d. No hassle.
2. Use 'App Settings' xposed module to make any app "stay" in memory (make it "Resident"). It possibly reduces the oom_adj value so it won't get killed. That's why you can see Opera Mini in the Foreground app list above in my screenshot. It's oom_adj is 0. You can do this for your home launcher and any app you wan't to stay un-killed in the background.
3. Use zeppelinrox's jar patcher tools to patch services.jar, where it changes Home Launcher priority and many other LMK related tweaks. This is why you see my home launcher is under visible apps (oom_adj 1). No launcher redraws even after asphalt8! See the particular thread for details.
4. With the above jar patching, you can use zeppelinrox's supercharger script to change the minfrees and re-group the OOM categories. It has tons of other tweaks. But for me, this OOM regrouping made some task killings much difficult and didn't relese ram readily when needed for heavy games.. So I'm not using it. I'm setting up minfrees as described above. There are some boring techie stuff about this OOM grouping thing.. but no need here.
5. Override the "Hidden app limit" of Android. In addition to the LMK thing described above, this is another mechanism that kills hidden and empty apps. Apps are killed when hidden app numbers go beyond the specified limit. Traditionally it's 15, so no more than 15 hidden apps will stay in the background even if there's plenty of ram. There's a build.prop setting which can control that in our SP. (Btw, jar patching mentioned above makes that limit to 70). With the build.prop setting mentioned below, we could make it to 150 ! (This way, we can maximize multitasking and app killing is fully handed over to LMK minfrees, which we can control).
Code:
ro.sys.fw.bg_apps_limit=150
Add this line to end of build.prop file and leave another blank line below that, and reboot. Use 70, if 150 looks scary [Highlight](Always keep cwm backups before doing these kind of things).[/highlight]
Credits to @zeppelinrox for finding that setting. You can read what happens and how to test it here in his thread.
One last thing about "free ram"..
What's reported in many apps as "free ram" is actually not free/empty. Linux/Android always tries to utilise the whole ram in some way.. So the ram is not wasted. Ram which is not used by active apps, is used for caching apps and for some buffers. You can see the ram usage with this.. "cat /proc/meminfo"
Code:
$ cat /proc/meminfo
MemTotal: 859764 kB
[B]MemFree: 26380 kB
Buffers: 2008 kB
Cached: 136600 kB[/b]
SwapCached: 0 kB
Active: 557312 kB
Inactive: 70520 kB
...blah.. ..blah...
....
Reported "free ram" was ~150mb when this was taken. ["Free RAM"=MemFree+Cached]. Out of that, most (135mb) is already cached. Actual free is very little. So, increasing "free ram" makes the phone much snappier because a larger part of the ram is used for caching things.
** I'd be more than glad if anyone points out shortcomings/improvements.
@TechnoSparks, Do you think it's useful if I organize this into a thread?
Related
UPDATED 9/4
Ok, so I went through the build.prop tonight and tried a few things out. I figured I'd just post all of my edits for you guys to try and use also. Here goes...
I am listing the changes one by one w/ descriptions, as well as providing all the mods rolled up into a single build.prop which will be posted at the end of these directions. Enjoy
To make the phone ring faster when dialing out, I changed
ro.telephony.call_ring.delay=3000
to
ro.telephony.call_ring.delay=1000
Now the phone rings pretty much instantly when dialing out.
To enable better scrolling speed through lists, I changed
windowsmgr.max_events_per_sec=55
to
windowsmgr.max_events_per_sec=60
Scrolling through the app drawer and contacts and any lists really is now smoother
Now, to save battery by decreasing the amount of time Wifi looks for an access point, I changed
wifi.supplicant_scan_interval = 60
to
wifi.supplicant_scan_interval = 90
Now wifi will scan once every 1.5 minutes when not around a known location instead of once every minute which will save battery.
I also changed the Dalvik VM heap size from
dalvik.vm.heapsize=30m
to
dalvik.vm.heapsize=32m
I remember doing this on my Eris and I was able to run JIT w/ sense enabled (which was a major hassle at the time) So I'm only assuming it will help performance on the X also.
To change LCD Density (How much is displayed on screen) visit my other build.prop mod page
Here -- Droid Life Forum • View topic - [MOD] LCD Density - DIY! - Droid X
And To fix your 2.2 market to display all apps Go
Here -- Droid Life Forum • View topic - [FIX] - 2.2 Market Issues - Show All Apps
Now for everything listed here all rolled up into one single build.prop, download this
http://www.mediafire.com/?25xh9gjwx5meds9
Install using any method of your choice
Method 1 - ADB
1. Download
2. Put the build.prop in your android-sdk\tools folder
3. Connect your phone via usb, make sure it shows up with adb devices
4. adb remount (or whichever way u prefer to mount ur system)
5. adb push build.prop /system/build.prop
6. adb reboot
Method 2 - Root Explorer
1. Copy the build.prop to the root of your SD card
2. Long press on build.prop
3. Select "Copy"
4. Navigate to /system
5. Click R/W in the top right corner
6. Paste, and overwrite
7. Reboot
My results - 1484
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
EDIT: If you do not like or want to use the LCD Density mod, use this build.prop. Everything else is included.
http://www.mediafire.com/?w4860c0fddw4ao2
-----------------------------------------------------------------------------------
UPDATED BUILD.PROP
Ok here are a few updates.
To enable the hard key lights to stay on while the screen is on and not timeout, I changed
ro.mot.buttonlight.timeout=1
to
ro.mot.buttonlight.timeout=0
To make the phone come off of the "black screen" in the middle of, or the end of phone calls when you pull the phone away from your face, I changed
mot.proximity.delay=450
to
mot.proximity.delay=150
The delay is almost no longer NOTICEABLE at all. (It was very annoying to me personally)
*Note - this will not include the lcd density mod, but everything else mentioned on this post included. Thanks guys! Enjoy
UPDATED Build.Prop
WOOT! These made it into an option on Birdmans FlyX in Rom Manager.
Birdmans twitter Update - Added Beesleys buid.prop edits
Anyone have a stock build.prop? Everything worked fine, I just want a file to fall back on.
not what you're going to want to hear... but my score dropped. my build.prop before only had the market fix and when i ran the test (immediately after reboot) i got 1390. i pasted your build.prop in and rebooted and ran test again (immediately after reboot) and the score dropped to 1304.
not a huge drop but no where near your score and certainly not a gain.
any ideas as to why?
byproxy said:
not what you're going to want to hear... but my score dropped. my build.prop before only had the market fix and when i ran the test (immediately after reboot) i got 1390. i pasted your build.prop in and rebooted and ran test again (immediately after reboot) and the score dropped to 1304.
not a huge drop but no where near your score and certainly not a gain.
any ideas as to why?
Click to expand...
Click to collapse
Did you run it multiple times? I am able to get a wide range of scores that are over 100 points in difference each run sometimes....
@OP
Good post..nice one.
I was wondering if u messed with some other buil.prop.
Couple other thoughts I had to edit :
#Proximity sensor debounce time
mot.proximity.delay=450
# disable touch below 60 pixels
mot.proximity.distance=60
Seems plausible to edit the delay for quicker response .
This defines the max event window manager can
# handle in 1 s. We may adjust this # for performance
# reason later
windowsmgr.max_events_per_sec=55
# This defines the min duration between two pointer event
ro.min_pointer_dur=10
Messed with this at all?
cbaty08 said:
Did you run it multiple times? I am able to get a wide range of scores that are over 100 points in difference each run sometimes....
Click to expand...
Click to collapse
ahhh... nope. just once. ran a couple more times and got the following:
1304 (first one mentioned before)
1482
1486
1481
so ya... that's good. lol. should have run it multiple times with the old build prop to see the difference. suppose i still could, but too lazy to load the old file. hehehehe. thanks for the tip!
byproxy said:
ahhh... nope. just once. ran a couple more times and got the following:
1304 (first one mentioned before)
1482
1486
1481
so ya... that's good. lol. should have run it multiple times with the old build prop to see the difference. suppose i still could, but too lazy to load the old file. hehehehe. thanks for the tip!
Click to expand...
Click to collapse
No sweat man, enjoy.
acidbath5546 said:
Good post..nice one.
I was wondering if u messed with some other buil.prop.
Couple other thoughts I had to edit :
#Proximity sensor debounce time
mot.proximity.delay=450
# disable touch below 60 pixels
mot.proximity.distance=60
Seems plausible to edit the delay for quicker response ...?
ro.telephony.call_ring.delay=3000
Seems like we can lower.
This defines the max event window manager can
# handle in 1 s. We may adjust this # for performance
# reason later
windowsmgr.max_events_per_sec=55
# This defines the min duration between two pointer event
ro.min_pointer_dur=10
Messed with this at all?
Click to expand...
Click to collapse
I like the idea of making the sensor quicker to respond.... It isn't as bad as it was on 2.1, but I still think it could be quicker
I agree...but im not sure if it will have any adverse effects if changed.
It seems to me that as of right now ..with stock rooted 2.2 it takes about 1-2 seconds for the phone to switch between landscape and.potrait ...like counting out loud One ...Two...it switches as soon as I.say two....same for you?
EDIT :
I edited #Proximity sensor debounce time mot.proximity.delay=450
Took it down to 100....and well I really can't tell if its quicker or not ...it seems it but might be a placebo effect ...hasn't given me any issues ...someone else wanna test that and tell me what they think?
cbaty08 said:
Did you run it multiple times? I am able to get a wide range of scores that are over 100 points in difference each run sometimes....
Click to expand...
Click to collapse
This is why I dislike quadrant, it's really not a good benchmark tool. Too many factors can influence the score, take the lagfix for some phones, they just replace the file system with the faster ex2, offers little real world difference but because the I/O section of quadrant jumps through the roof then the total score goes much higher than other phones that are actually faster. The paid quadrant is a little better in that it shows how much of the score is from what subsytem or whatever, but the score is too easily influenced by too many factors to be really effective as a benchmark tool. Not to mention it's easy to trick.
What App
I placed in the Build.prop edits and what an improvement in speed. What app are you using as illustrated in your post?
Thanks
chazall1 said:
I placed in the Build.prop edits and what an improvement in speed. What app are you using as illustrated in your post?
Thanks
Click to expand...
Click to collapse
It would be nice if you addressed who you are talking to If you're talking about the OP, its Quadrant advanced.
Craziness, I uninstalled adw and the adw theme because I was getting random freezing after this build.prop and now my phone is blazing fast! I don't think the official 2.2 could even touch this! Im just saying, nice work
Sent from my DROIDX
lilmoney30 said:
Craziness, I uninstalled adw and the adw theme because I was getting random freezing after this build.prop and now my phone is blazing fast! I don't think the official 2.2 could even touch this! Im just saying, nice work
I've been running my phone now for few hours now since this post and im now getting quadrant scores in the upper 1400's and it is zippy.
Sent from my Droid X
Click to expand...
Click to collapse
lilmoney30 said:
Craziness, I uninstalled adw and the adw theme because I was getting random freezing after this build.prop and now my phone is blazing fast! I don't think the official 2.2 could even touch this! Im just saying, nice work
Sent from my DROIDX
Click to expand...
Click to collapse
Thanks, I really appreciate it.
my score droped from 1400 avrg to 900... help
soleicey said:
my score droped from 1400 avrg to 900... help
Click to expand...
Click to collapse
lol. Bummer.
try the updated build.prop.
LexusBrian400 said:
lol. Bummer.
try the updated build.prop.
Click to expand...
Click to collapse
why didn't you include the lcd mod in the new version?
because many people dont like the LCD mod
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Version 1.3 [Released 9/7/11]
Proton Voltage Control is an easy to use app that allows you to set custom voltages for Nexus S phones running a supported version of Netarchy and Matr1x kernels (1.3.0.6 for Netarchy and 4.0 for Matr1x and up) This means you no longer have to muck around with command line codes and scripts, just one easy to use app!
I am a busy highschool student, with no solid income. If you like my app, please consider a donation
Click to expand...
Click to collapse
Downloads
Update 16/9/11: Due to requests, I have built 1.3 again but with a different release key. Please UNINSTALL any old version before installing!
Version 1.3 ProtonVoltageControl-130.zip
Emergency Restore: proton_emergency_boot.zip
Usage
Enter in your new voltages in the 8 text boxes, or use one of the 3 buttons at the top to give you a base to try.
Hit Apply to set temporarily, and see how the voltages perform. If you reboot at this stage, the new voltages will be lost
If these new voltages work well on your phone, enter them in again and this time check 'Save on Boot' then hit Apply. These voltages should be applied upon startup every time now
Easy!
- It is easier to press one of the 3 voltages buttons to give you a base to work on
- The suggested voltages is mostly -20mV on all frequencies (from stock voltages) except for 1.4ghz and 1.3ghz which have been raised ever so slightly
- 'Save on Boot' creates an init.d script called proton_voltage_control with your entered values, so don't be alarmed if you see an extra init.d script
- Press Menu and Emergency Boot Zip to download a flashable update.zip to remove any 'Save on Boot' files in case you can't boot up due to setting the voltages too low. Boot into Recovery and flash like any other update.zip
Enjoy! Please ask if you have any questions, I will try to help with them. Standard disclaimer applies, I claim no responsibility for anything that goes wrong with your phone due to misuse of this app.
Also on the Market! https://market.android.com/details?id=com.jonathongrigg.proton.voltagecontrol
Proton Voltage Control is fully open sourced
Source is available at my Github, https://github.com/jonathongrigg/ProtonVoltageControl
Credits
Jonathon Grigg
Spiicytuna [New UI overhaul]
Xan [Original Galaxy S app which gave me inspiration to write my own from scratch for the Nexus S]
'Serge' (from MarketEnabler I believe) [ShellInterface code]
Donators
Tord Persson
Should work on all Nexus S models (including the 4G)
Sent from my Nexus S
Can I request custom settings save profile? In case something doesn't work you might want to go back to a profile and change things around.
Using it, and loving it so far
Sent from my Nexus S using XDA App
Good App. I will buy Pro Version if you publish one in the market.
Sent from my Nexus S using XDA Premium App
Had been using script manager with custom scripts to get settings loaded on boot, but have deleted them to use this
Really like the app, can't wait for UI improvements (even though it is fully working now).
Get this thing on the Market with a pro version!
Edit: Jonathon, maybe you could go in depth a tad more on usage , just for the moment because people new to UV may be confused what it does and how it works exactly
thanks dude, it's awesome! I've been waiting for an app like this to UV netarchy's kernels!
i'm running CM 7.0.3 with netarchy's 1.3.2, just did a -50mV across all frequencies and it has been working very well.
Please forgive my ignorance... but what exactly can be obtained by altering voltages??
Better battery life etc?
Thanks for the UI for UV'ing! It makes life so much more easier than typing on terminal.
One concern though, my settings are not saving on reboot. I'm running SuperAOSP 8.0 with Netarchy 1.3.0.12 CFS 2.3.4 Universal and after entering my desired values and checking Save on Boot, upon restart the app reads back the default voltages again (1450 etc...).
The program does state that it saves it to init.d but other than that it doesn't save it. Am I doing something wrong or am I supposed to re-enter values everytime i make changes to my phone that requres a reboot, which is a lot considering i try out a lot of the ROMs out there often.
Dario777 said:
Please forgive my ignorance... but what exactly can be obtained by altering voltages??
Better battery life etc?
Click to expand...
Click to collapse
Better battery life and lower temperatures.
Sent from my Nexus S using XDA Premium App
jello24 said:
Thanks for the UI for UV'ing! It makes life so much more easier than typing on terminal.
One concern though, my settings are not saving on reboot. I'm running SuperAOSP 8.0 with Netarchy 1.3.0.12 CFS 2.3.4 Universal and after entering my desired values and checking Save on Boot, upon restart the app reads back the default voltages again (1450 etc...).
The program does state that it saves it to init.d but other than that it doesn't save it. Am I doing something wrong or am I supposed to re-enter values everytime i make changes to my phone that requres a reboot, which is a lot considering i try out a lot of the ROMs out there often.
Click to expand...
Click to collapse
Do you have super user set up properly? Clear permissions from the app and try again
Sent from my Nexus S using XDA App
Thanks for this. Great app, makes it very easy.
Sent from my Nexus S running NSCollab, Cyanbread Theme and OC'd to 1.2ghz (Perfection)
Great app! Definitely saves time when tinkering with the voltages.. Thanks!
Has anyone tried this with default kernel from superaosp 8.2? It looks very similar to netarchy....
Also any recommendations for voltage levels?
Sent from my X10i TripNMiUI-IRIS using XDA App
can you add support for trinity kernels?
shubu000 said:
Has anyone tried this with default kernel from superaosp 8.2? It looks very similar to netarchy....
Also any recommendations for voltage levels?
Sent from my X10i TripNMiUI-IRIS using XDA App
Click to expand...
Click to collapse
Voltage levels will depend on individual phones, some will go lower while others would bootloop so low (good idea to not use set on boot to start with until you've tested it for a bit). There is a suggested voltages button in the app which is -25mV across all 8 frequencies as a starting point. Most phones should be able to handle this, but there are a few exceptions.
Sent from my Nexus S
The only two reasons why you would want to decrease or under volt (UV) set your frequencies is to save battery and extend your processor life expectancy.
The only reason to to increase or over volt (OV) your frequencies is to get a higher clock speed on your processor. Some phones will not handle the default setting and need extra voltage for transistors to get a better and cleaner signal.
This is very much the same principle as in any desktop PC. You increase voltage to be able to overclock but if you have a good quality fabrication, ie later production processor or maybe manufactured in a different fabrication facility you might be able to get away with less voltage which in effect lowers your battery usage. You could also achieve the same by better cooling, but unless you expect to keep ice on your phone, this doesn't really make sense.
To dig deeper into the matter, as far as I understand, when higher clock speeds are requested of a processor, transistors give away more heat. This in turn will also swell them up and they will start to short from one to another and/or loose current flowing through them. Another effect is the slowing down of the transistor gate on/off. All these conditions may trigger an error and in some cases a major freeze of the processor.
There... a quick explanation to have this app available.
BTW, we should also thank Netarchy for making such settings available in his kernel. Cheers
jello24 said:
Thanks for the UI for UV'ing! It makes life so much more easier than typing on terminal.
One concern though, my settings are not saving on reboot. I'm running SuperAOSP 8.0 with Netarchy 1.3.0.12 CFS 2.3.4 Universal and after entering my desired values and checking Save on Boot, upon restart the app reads back the default voltages again (1450 etc...).
The program does state that it saves it to init.d but other than that it doesn't save it. Am I doing something wrong or am I supposed to re-enter values everytime i make changes to my phone that requres a reboot, which is a lot considering i try out a lot of the ROMs out there often.
Click to expand...
Click to collapse
bringonblink said:
Do you have super user set up properly? Clear permissions from the app and try again
Sent from my Nexus S using XDA App
Click to expand...
Click to collapse
yeah SU was set up to allow the UI to work, but I cleared that permission and ran the program again allowing it to go but it still won't save on boot. Existing voltages always show the default, instead of my desired settings.
I even tried it where i'd have to keep clicking allow on SU to get it running but it still won't save.
any other suggestions?
jello24 said:
yeah SU was set up to allow the UI to work, but I cleared that permission and ran the program again allowing it to go but it still won't save on boot. Existing voltages always show the default, instead of my desired settings.
I even tried it where i'd have to keep clicking allow on SU to get it running but it still won't save.
any other suggestions?
Click to expand...
Click to collapse
Can you try the 'cat' command to list the voltages in Netarchys thread and see if its the same as the existing voltages shown in Proton.
Sent from my Nexus S
jello24 said:
Thanks for the UI for UV'ing! It makes life so much more easier than typing on terminal.
One concern though, my settings are not saving on reboot. I'm running SuperAOSP 8.0 with Netarchy 1.3.0.12 CFS 2.3.4 Universal and after entering my desired values and checking Save on Boot, upon restart the app reads back the default voltages again (1450 etc...).
The program does state that it saves it to init.d but other than that it doesn't save it. Am I doing something wrong or am I supposed to re-enter values everytime i make changes to my phone that requres a reboot, which is a lot considering i try out a lot of the ROMs out there often.
Click to expand...
Click to collapse
I think I might know what your problem is. You have to hit apply after you select set on boot, otherwise it won't save the changes.
I didn't realise this the first time either!!!
Tired of Keep loading every time you open a program ? ex. I open AppMonster wait for Loading ...... and I press home button make open another program and when I come back >>>>> LOADING ! OMG Should I have to wait again for loading to finish?
To fix this problem Do the following(YOU Will Need A Task Manager to Close Your Opened Apps or U will have low RAM Available) :
1.Install Auto Memory Manager from Market Auto Memory Manager-Market
2.open it it will ask for superuser permission -Allow
3.it should be something like 6-8-16-20-32-40
change it to 6-8-16-20-22-24 or by pressing default or Manually.
4.Click Apply
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
this screen shot with many open Apps
MarlboroAzrag
Here's already a thread about this: http://forum.xda-developers.com/showthread.php?t=1104399
And yes, multi-tasking is extremely improved after lowering the values! I use 6-8-10-14-22-22, works great, you can do own testing to find the best values.
(YOU Will Need A Task Manager to Close Your Opened Apps or U will have low RAM Available)
Click to expand...
Click to collapse
You don't need a task manager to close apps at all!
By changing the values you make Android close apps at a certain amount of free RAM.
Example: In my case "empty applications" that are in RAM but are not used, are closed as free RAM gets to 22mb, standard is 40mb on SwiftDroid.
Does it really bad? I use swap partition and activate swap with terminal emulator can run sygic aura while listening to poweramp and when back to home launcher, my spb shell 3d doesn't have to reload whatsoever.
I try autokiller mem, and found out that it eats around 6 MB of ram to run, I don't really think it's good. I don't know about v6 supercharger.
Sent from my GT540 using Tapatalk
Autokiller doesn't use any RAM, it just changes the values in a file, and then is closed again.
And it is way better for me after changing the values.
Too much free RAM is wasted RAM.
And about SWAP: I tried it earlier (with swap-file, no partition) and it didn't seem to do anything, although it was activated.
But let's keep this thread about minfree values.
m1st3r1 said:
Does it really bad? I use swap partition and activate swap with terminal emulator can run sygic aura while listening to poweramp and when back to home launcher, my spb shell 3d doesn't have to reload whatsoever.
I try autokiller mem, and found out that it eats around 6 MB of ram to run, I don't really think it's good. I don't know about v6 supercharger.
Sent from my GT540 using Tapatalk
Click to expand...
Click to collapse
Its just a one time Run so what 6mb! DA!
It used to load app menu for me every time I open it
From launcher :S
I can set this at default ... please send me pm boot.img
Ok well post the setting that is working better for you guys. I want numbers for test
Veronica
Sent from my GT540 using XDA App
patryk95juve said:
I can set this at default ... please send me pm boot.img
Click to expand...
Click to collapse
Put It Manually .
lavero.burgos said:
Ok well post the setting that is working better for you guys. I want numbers for test
Veronica
Sent from my GT540 using XDA App
Click to expand...
Click to collapse
Thats the default setting for This phone (or for android)
EazyLuke said:
Autokiller doesn't use any RAM, it just changes the values in a file, and then is closed again.
And it is way better for me after changing the values.
Too much free RAM is wasted RAM.
And about SWAP: I tried it earlier (with swap-file, no partition) and it didn't seem to do anything, although it was activated.
But let's keep this thread about minfree values.
Click to expand...
Click to collapse
i use autokiller memory optimizer and it always stays at foreground. taking 6 mB of ram with oom = 0.
imo 6 mB is pretty big.
i wonder is there any app, or script that just change that and can be close after that (taking no ram)?
Autokiller Memory Optimizer does that! It doesn't use any RAM. It changes the values and closes then. In theory, you should even be able to change the values with this app, and then uninstall it and settings are kept.
@lavero.burgos: My settings: 6-8-10-14-22-22
Works perfectly! You could go lower, I had it set to like 4-6-8-10-14-16. You really need to try yourself and see what you like.
EazyLuke said:
Autokiller Memory Optimizer does that! It doesn't use any RAM. It changes the values and closes then. In theory, you should even be able to change the values with this app, and then uninstall it and settings are kept.
@lavero.burgos: My settings: 6-8-10-14-22-22
Works perfectly! You could go lower, I had it set to like 4-6-8-10-14-16. You really need to try yourself and see what you like.
Click to expand...
Click to collapse
Thank you
Sent from my GT540 using XDA App
Does it make change if I put the values like this:
6; 8; 12; 18; 20; 20?
I followed a tutorial on [email protected]
fdespotovski said:
Does it make change if I put the values like this:
6; 8; 12; 18; 20; 20?
I followed a tutorial on [email protected]
Click to expand...
Click to collapse
yes it does.
marlboroazrag said:
yes it does.
Click to expand...
Click to collapse
So,what's better,your values or the ones I've set?
You need to try it yourself and find out if you like it! Just do some experiments, try your values, his or mine and see what's better for you.
So how am I supposed to change those values. Where do I have to make the modification , what file?
Veronica
Sent from my GT540 using XDA App
/sys/module/lowmemorykiller/parameters/minfree
That's the file.
Also, here's a little explanation: http://www.androidcentral.com/fine-tuning-minfree-settings-improving-androids-multi-tasking
There they say if you only edit this file, the changes are not kept after a reboot. You would also have to edit init.rc
EazyLuke said:
/sys/module/lowmemorykiller/parameters/minfree
That's the file.
Also, here's a little explanation: http://www.androidcentral.com/fine-tuning-minfree-settings-improving-androids-multi-tasking
There they say if you only edit this file, the changes are not kept after a reboot. You would also have to edit init.rc
Click to expand...
Click to collapse
Hmm sound complicated, oh well that's why I love linux lol. Thanks
Sent from my GT540 using XDA App
fdespotovski said:
So,what's better,your values or the ones I've set?
Click to expand...
Click to collapse
You just set it the way you prefer.
I've FINALLY managed to compile smartassV2 module for SGS3's stock kernel.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The trouble is that the stock kernel does not accept modules...
Every attempt I made ended up with an error about the version of module_layout. I even wrote to Samsung asking for clarification, but I have no reply yet (after about 24 hours).
I will write a post on my blog describing all the investigations; I had to go the hard way and patch /dev/kmem to skip the validation. I've created a small executable which does this.
The good part about it ? It is already included in the .tar.gz below and once executed, it allows any modules to be installed on stock!
I am almost sure that Samsung did not provide the up to date .config file (I am using the Update 1 .tar file) since I had to disable flags in .config to get rid of "unknown symbol" errors. And another proof, the validation errors related to the version of the module_layout symbol.
Thus, the install procedure is a one step longer, patchs3k needs to be executed once, and then any module can be inserted.
Installation procedure:
a) mount your /system in RW mode.
b) create folder /system/xbin/lib
c) copy the contents of the archive to that folder.
d) execute the provided load_smartassV2.sh script (which already does all the steps: calls patchs3k, inserts the module and sets it as current governor).
That's it!
Observations:
a) only for stock kernel.
a1) repeat after me: I will not attempt to run patchs3k if I already flashed a different kernel!
b) load_smartassV2.sh script is made so it is also runnable by Script Manager at boot as super user using the paths in the Install procedure.
c) if you have another way of loading things, you need to figure out how to execute the patchs3k file before inserting the module - I found that the easiest is with the method above.
d) smartassV2 supports lots of configuration options. The only think I made default is the ramp up increment, which is in 500MHz so you don't have to wait forever until the phone gets to max speed. The ramp down I left it at 100MHz increments. All these are configurable and you can echo values in the files found in the list below.
A brief description of each field (but with different values since back then I did it for Sony X10) is found in the Settings part of this post: http://forum.xda-developers.com/showthread.php?t=1212012
Code:
[[email protected]]/sys/devices/system/cpu/cpufreq/smartassV2# ls -1
awake_ideal_freq
debug_mask
down_rate_us
max_cpu_load
min_cpu_load
ramp_down_step
ramp_up_step
sample_rate_jiffies
sleep_ideal_freq
sleep_wakeup_freq
up_rate_us
Download:
Update: download disabled until hotplug issues will be fixed! Please check 4th post below, thanks AndreiLux!
Use it at your own risk!
cpufreq_smartass2_sg3_1.0.tar.gz
Enjoy!
Im really interested in the part regarding the patch to use any module without validation...
Waiting for kernel patch
Sent from my Desire HD using Tapatalk 2
The patchs3k is already bundled in the .tar.gz file above - is this what you meant ?
There's absolutely no point in having smartass on this device, especially on a stock kernel since there is no remaining hotplug logic on it to be used, if that would be even possible. It has major detrimental effects on battery life.
However, we would be interested in what you are doing inside of patchs3k to make it load the module properly and to see if we can use any of that to load Samsung's exFat driver module on custom kernels. Sources please?
viulian said:
The patchs3k is already bundled in the .tar.gz file above - is this what you meant ?
Click to expand...
Click to collapse
AndreiLux said:
There's absolutely no point in having smartass on this device, especially on a stock kernel since there is no remaining hotplug logic on it to be used, if that would be even possible. It has major detrimental effects on battery life.
However, we would be interested in what you are doing inside of patchs3k to make it load the module properly and to see if we can use any of that to load Samsung's exFat driver module on custom kernels. Sources please?
Click to expand...
Click to collapse
That's what i mean
Sources for patchs3k please
Sent from my Desire HD using Tapatalk 2
About the sources - I will create the article these days but I believe it doesn't matter; if you already have control over the custom kernel then you can just make it accept everything and see how things behave.
The trouble with what exFat (which I could also investigate if I have time) is that the CRC checks are thorough and if ANY of the structs used by exFat are different that what the kernel is build with, then there could be big issues with corruption of data and so on. Only Samsung (or sheer luck) could solve this issue. But I did not investigate so these are just assumptions..
@AndreiLux
Then it means I was extremely tired thanks for the explanations with hotplug. I have disabled the download so people won't take it without reading below.
One other thing, the kernel (3.0) like all other kernels has the posibility to create high priority work queues - alloc_workqueue with WQ_HIGHPRI as flag. It means that the work queue that rises the frequency should have higher priority so you don't notice any lag for example.
What I don't like about pegasusq is that it doesn't appear to create high priority work queues. I did not study carefully, but a quick search on the cpufreq_pegasusq.c doesn't show the high priority flag. Maybe the phone one has it ?
They also keep a history of the CPU usage (probably used with hotplugging also).
So I believe the two factors above might contribute to the lag I notice when waking up the phone.
I did notice this weird fact with the cores of the CPU not turning on or off with smartass2 - or remain in the state that pegasusq left them. I was checking test results and it appear to behave normally and have all 4 cores ON during stress test. It was late in the night and I did not check that they are not also shut down.
Maybe I should work on a smartass3 since I can add hotplug logic to smartass - but it is tedious you have to use locks and so on - and I don't have much time.
I think I have more success here with just building ROMs and not digging deep since you just take what everybody does and put a small thanks in a corner then you get all the Thanks and donations.
viulian said:
So I believe the two factors above might contribute to the lag I notice when waking up the phone.
Click to expand...
Click to collapse
The wake up lag is irrelevant to priorities or anything, it's caused by a) if you are referring to the wake up delay then it is because of the kernel is waiting for the modem to wake up which takes an eternity. b) if you are referring to unresponsiveness at the lockscreen, it was due to something in the Wifi drivers.
@AndreiLux Ok cool the modem interaction worths an additional look then!
BUT I have good news!
cpufreq_smartass2.c will be able to have hotplugging! I did a test module that activates cores and shuts them down and there it works.
In few days I will release the smartass2 with hotplug support for stock kernel.
One thing I saw, the pegasusq does NOT have a high priority work queue to bring the frequency up meaning that other work queues could interfere and actually introduce delays. It also has a complex logic to decide when to bring another core back online and it brings them back one by one.
I would like to have feedback from the community on what should be the bringing up / down behavior for each core for the new smartass2 governor.
I am tempted that upon waking up, to actually bring back all 4 cores at once. It is easier for me, FASTER to be executed (instead of going through heaps of samples to decide if one more core is needed) and is also on the same track with the initial smartass concept, FAST AND QUICK or go slow.
The delicate thing is how to handle shutting down cores. I can make it go back to 1 core and if loaded then bring back all again.
What do you guys think ?
I like this new way in customizing phones design by the community, not by what the rom cooker / kernel builder decides and that's it.
I find it fine and dandy, but the most critical point is why you would want to port such a feature to smartass when you already have pegasus with much more optimal frequency scaling. Also the frequency of which the cores are being hotplugged is incredibly high with runqueue sample rate/times of 50 milliseconds and time of bringing up the cores of only a couple of microseconds, all several orders of magnitudes below usual frequency scaling latencies. We've ported it to the S2 with magnificent results and ditched interactive based governors a long time ago, there is no benefit to it. Exynos is relying on aggressive and optimal DVFS scaling for power efficiency and interactive governors do not suit that too well.
It means that the work queue that rises the frequency should have higher priority so you don't notice any lag for example.
Click to expand...
Click to collapse
This is fine in theory but does it hold up in practice? The S3 is already considered as the smoothest running device running Android or even the smoothest device bar the iPhone.
Not trying to critique your work but I think your approach into improving things here is a bit flawed and viewing it from an odd angle.
Excellent constructive feedback! Thank you,
Let me explain my point of view:
1. First, there are many users that do not feel comfortable putting a custom kernel on the phone. Personally, I do not trust custom kernels even if they come with source code. Theoretically is correct to have the open; but I save a lot of time customizing what I trust (Samsung's stock kernel) than checking all the patches of custom kernels to start trusting them. And is not about privacy and so on, but I need the phone to work and I can't really tell if the custom kernel won't decide to play tricks when I mostly need it to work. So I stick with defaults and try to customize here and there.
2. Second, I have no idea how pegasusq compares with smartass2 unless I see them running - also, since I do debugging and so on, the phone uses different frequencies (mostly plugged and running stuff) and so I can't say if pegasusq matches the time_in_state pattern that smartass2 shows. Too early to tell.
And if it can be done why not ? It gives me more experience, it gives people alternatives. Plus, S3 is better than 4s, for sure, but what about the next phones appearing in the next half of year ?
This is just warm up for me to the phone, I have other ideas to dig and hopefully something will come up out of them (at least until the new big market killer comes around and we all jump ship to that one )
Any progress on this
None as it doesn't support multicore correctly...
Sent from my GT-I9300 using xda app-developers app
That was what he was trying to accomplish.andreilux and Simone gave him some new pointers.that's why I ask.
I had no time to take care of it but I am curious to do at least a bare metal version that will wake up with all 4 core at once instead of one by one which I believe pegasus does.
With the default one, the phone is sluggish for half a second when unlocking - I can see it because the launcher struggles for a bit.
But is true, smartass doesn't support cores activation/deactivation.
Hello.
Here is something I've made for myself, but I think it might be useful for someone else.
Here are some major features list:
Based on T700ANG2
CPU - 1900-250MHz, voltage control
Simple hotplug governor integrated into Interactive governor
GPU - 677-100MHz (default to 480-100), governor control, voltage control
BFQ I/O governor
FIOPS I/O governor (default)
Async fsync, dynamic fsync, dynamic read-ahead, dynamic vfs_cache_preassure
- /proc/sys/vm/[dynamic_dirty_writeback | dirty_expire_centisecs | dirty_writeback_centisecs | dirty_writeback_suspend_centisecs | dirty_writeback_suspend_centisecs]
- /sys/kernel/dyn_fsync/Dyn_fsync_active
New Google's POWERSUSPEND driver
SELinux disabled (still present in ROM)
mDNIe tunning profiles moved to /data partition to make them stick across screen off/on cycles
mDNIe brightness dependency correction mechanism (it's complicated, will be explained later in this post)
Wolfson Audio Control (thanks to AndreiLux and UpInTheAir)
- stereo DRC
- stereo EQ for both headphones and stereo speakers
- controlling EQ frequency bands explained next in this post
Init.d
Frandom random number generator
Haveged - even faster then Frandom
printk and logcat on/off interfaces (/sys/kernel/...)
Alot of debug noise removed
hundreds of performance and battery saving patches
Changelog in 2-nd post
Attention! Kernel has SELinux disabled, so you might have trouble with installed user apps if returning to kernel with SELinux enabled from this one. Thus, as always it's a good idea to make a backup.
Downloads in attachment
Source here
Now the tricky parts
Color correction
If you are not interested in waisting your life fighting for color correction, just skip this part
There are two features regarding mDNIe color correction gonna need explanation:
First one is about profiles themselves. It was explained here, but the difference now is that profiles folder was moved from /sdcard/mdnie to /data/mdnie to make loaded tunning profile stick across screen off/on cycles, so it needs to be loaded only once on boot.
To work, profile need to be copied to /data/mdnie folder and loaded as follows:
echo 1 > /sys/devices/platform/s5p-mipi-dsim.1/lcd/panel/mdnie/tuning
echo "CUSTOM1" > /sys/devices/platform/s5p-mipi-dsim.1/lcd/panel/mdnie/tuning
It's explained in details in aformentioned thread.
The second one is really tricky. It is related to non-linear color distortion. I've seen it on my previous Tab 7.7, now I see it here, so I guess true for all AMOLED screens (or maybe only Samsung's, or even maybe only SuperAMOLED). Anyway, on low brightness levels screen goes really green. It can be seen clearly on grayscale images.
So the "solution" implemented here is another one profile, which gets loaded ontop of the primary one. Assuming that the primary profile is made for maximum brightness condition, when colors are most correct, this "secondary" profile contains not actual, but shift values, the corrections, need to be applied to primary profile in lowest brightness conditions.
Example:
Suppose you have a value 0x05(5) in line 151 (red in black) of your primary profile, and you figured out that for lowest brightness you need to set that value to 0x14(20) to keep the tint visually same or close to the one in highest brightness condition. So now you just need to substract base value from corrected value and you'll get the shift:
0x14(20) - 0x05(5) = 0x0F(15)
So the value 0x0F is the one you need to have at line 150 in your secondary profile. And when you'll have the implemented algorithm can calculate corrected color values for all brightness levels in between.
Now make deep breath and please be patient a couple of minutes more. Since that mDNIe thing only supports a positive values in profiles, when it comes to addition correction value to the base value you can't just set something like -0x0F or 1x0F. So I've had to use another dirty trick.
Thus, shift values from 1 to 127 are added to base value, like in example above -- base 0x05 + shift 0x0F = corrected value 0x14.
While shift values from 128 to 255 are lowered by 127 and then substracted from the base value like this -- base 0xFD - (shift 0x8A - 0x7F(127)) = 0xF2 corrected value for lowest brightness condition.
I'll attach my personal profiles to help you understand all this better. TUNNING is for primary profile, CORRECTION is for secondary.
Script to load them on boot:
Code:
sleep 40;
echo 1 > /sys/devices/platform/s5p-mipi-dsim.1/lcd/panel/mdnie/tuning
echo "TUNING" > /sys/devices/platform/s5p-mipi-dsim.1/lcd/panel/mdnie/tuning
sleep 5;
echo "CORRECTION" > /sys/devices/platform/s5p-mipi-dsim.1/lcd/panel/mdnie/tuning_correction
PS: you can use Windows(c) calculator for hexadecimal calculations, just switch it to "Programmer" mode - Alt+3.
Parametric equalizer settings
For people not aware of what parametric equalizer is, here is a plain explanation:
It's like any regular graphic equalizer you can see in any consumer audio player or application with a difference that in regular graphic equalizer you have predefined bands like 100Hz - 400Hz - 1kHz - 6kHz - 14kHz, while for parametric equalizer you can set those bands manually.
Default values here are might be alright for external speakers, but not quite useful for a headphones.
Now, to the point.
We have a folder /sys/devices/virtual/misc/wolfson_control/ with the following EQ-related attributes:
Code:
/sys/devices/virtual/misc/wolfson_control/switch_eq_headphone
/sys/devices/virtual/misc/wolfson_control/eq_hp_freqs
/sys/devices/virtual/misc/wolfson_control/eq_hp_gain_1
/sys/devices/virtual/misc/wolfson_control/eq_hp_gain_2
/sys/devices/virtual/misc/wolfson_control/eq_hp_gain_3
/sys/devices/virtual/misc/wolfson_control/eq_hp_gain_4
/sys/devices/virtual/misc/wolfson_control/eq_hp_gain_5
Code:
/sys/devices/virtual/misc/wolfson_control/switch_eq_speaker
/sys/devices/virtual/misc/wolfson_control/eq_sp_freqs
/sys/devices/virtual/misc/wolfson_control/eq_sp_gain_1
/sys/devices/virtual/misc/wolfson_control/eq_sp_gain_2
/sys/devices/virtual/misc/wolfson_control/eq_sp_gain_3
/sys/devices/virtual/misc/wolfson_control/eq_sp_gain_4
/sys/devices/virtual/misc/wolfson_control/eq_sp_gain_5
And while it's all pretty simple with switch_eq_headphone and switch_eq_speaker, you just set 1 to on, 0 to off, so as for eq_[hp/sp]_gain_[1-5] you can set values from -12 to 12 dB.
But eq_[hp/sp]_freqs attribs are showing us some weird hex values.
So the bad news is we don't have the algorithm to generate custom values for this. The official documentation states "use WISCE software to get..." those magic values. So be brave, it's not that terrifying as you might imagine.
First you have to download that WISCE software, thankfully it's free:
http://www.wolfsonmicro.com/products/software-licence-agreement/?dl=WISCESetup.zip
http://www.wolfsonmicro.com/products/software-licence-agreement/?did=5273
Install them both.
Than start it from WM5102 shortcut.
There you'll see an "Add new system" dialog (do as on screenshots):
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
In the opened window from the tree on left select Tuning->EQ1 (or any of four EQs)
There you'll see an equalizer window
You can setup bands as you prefer
Now select "Registers" from tree on left and scroll right pane till Address RE12h.
There you'll see the values we are looking for:
You need to wright them down and you are ready load them to tablet:
Code:
echo "0x0fc6 0x03ff 0x00e8 0x1ed9 0xf11a 0x040a 0x045d 0x1e60 0xf150 0x040a 0x64cc 0x0b46 0xfed3 0x040a 0x3ab5 0xfc8f 0x0400 0x323c" > /sys/devices/virtual/misc/wolfson_control/eq_hp_freqs
.
That's pretty much it.
I'll attach a script for speaker to make them sound more bassy and sample for headphones with settings from tutorial above.
For speakers
Code:
#!/system/bin/sh
echo 1 > /sys/devices/virtual/misc/wolfson_control/switch_eq_speaker
echo 6 > /sys/devices/virtual/misc/wolfson_control/eq_sp_gain_1
echo 10 > /sys/devices/virtual/misc/wolfson_control/eq_sp_gain_2
echo -2 > /sys/devices/virtual/misc/wolfson_control/eq_sp_gain_3
echo -1 > /sys/devices/virtual/misc/wolfson_control/eq_sp_gain_4
echo -2 > /sys/devices/virtual/misc/wolfson_control/eq_sp_gain_5
For headphones
Code:
#!/system/bin/sh
echo 1 > /sys/devices/virtual/misc/wolfson_control/switch_eq_headphone
echo "0x0fc6 0x03ff 0x00e8 0x1ed9 0xf11a 0x040a 0x045d 0x1e60 0xf150 0x040a 0x64cc 0x0b46 0xfed3 0x040a 0x3ab5 0xfc8f 0x0400 0x323c" > /sys/devices/virtual/misc/wolfson_control/eq_hp_freqs
echo 5 > /sys/devices/virtual/misc/wolfson_control/eq_hp_gain_1
echo 3 > /sys/devices/virtual/misc/wolfson_control/eq_hp_gain_2
echo 0 > /sys/devices/virtual/misc/wolfson_control/eq_hp_gain_3
echo 1 > /sys/devices/virtual/misc/wolfson_control/eq_hp_gain_4
echo 3 > /sys/devices/virtual/misc/wolfson_control/eq_hp_gain_5
That's pretty much it for now.
Special thanks to
Faux123
Yank555
Halaszk
Changelog
1.5
- Updated to Samsung's ANJ5 source drop
- Stability fix
1.4
- Stability and performance improvements
1.3
- Stability and performance improvements
1.2
- Hotplug integrated into Interactive governor
- Interactive governor performance optimizations
- Stability fixes
1.1
- Disabled Intelli-Plug (luggy and unstable)
- Latest Interactive governor source from Google
- Interactive governor short circuits to optimize for IKCS cluster
- Simple hotplug governor
1.0
- Initial release
Click to expand...
Click to collapse
Tried this kernel last night, am running twrp which could be the reason, but installed fine but the OS wouldn't hold long enough to get a catlog as to why crashing.
As I say could well be twrp issue as the download says cwm... Nice to see some fresh deving in the thread though. Need to get my nose into the xda university pages
Edit: Am running Super Samsung V2, Not that TW is that super!
chrispgibbs81 said:
Tried this kernel last night, am running twrp which could be the reason, but installed fine but the OS wouldn't hold long enough to get a catlog as to why crashing.
As I say could well be twrp issue as the download says cwm... Nice to see some fresh deving in the thread though. Need to get my nose into the xda university pages
Edit: Am running Super Samsung V2, Not that TW is that super!
Click to expand...
Click to collapse
Can you please describe, how did that crash looked like?
And also have you tried to clear the dalvik-cache?
heyjoe66 said:
Can you please describe, how did that crash looked like?
And also have you tried to clear the dalvik-cache?
Click to expand...
Click to collapse
I installed it but had a screen lock issue (would not unlock-simple swipe unlock) (phone had been charging for some time with screen off). After some pressing home and power buttons, it rebooted (have taken it off for now..was using the Synapse kernel earlier..no mods or anything in kernel was being used either on Synapse or your kernel) thanks will use in future (using the Devious SuperSamsung v2 ROM on T705 LTE, rooted and flashed through twrp 2.8.0.1...did I need to do any dalvik and/or cache wipe after installation before rebooting?)
(resolved)
heyjoe66 said:
Can you please describe, how did that crash looked like?
And also have you tried to clear the dalvik-cache?
Click to expand...
Click to collapse
Hi, yes I always wipe dalvik/cache as a matter of habit...
I was experiencing crash almost as soon as android booted up, I barely had time to open the app drawer, then device just died and reboot... When I think it could be a trickster MOD conflict? I have that apply settings on boot! Will do a full backup tonight and remove to check... If that doesn't help I shall try those packages to see if they make any differences.
Cheers
Thanks! will try them
Sent from my SM-T705 using XDA Free mobile app
Have reinstaled the original file with Trickster uninstalled and all appears to be running smoothly, will try to reinstall Trickster and see how I go with that. Hopefully it was just a setting conflict...
Good work
Edit: Seemingly there was a setting conflict in trickster from stock kernel to yours which caused the system to choke! All running smooth as a touch wiz system can be expected to run... roll on AOSP rollout for this device, as I said earlier in a post, need to get the xda university pages out to try to get my own head around such a feat!
Again, nice work heyJoe66!
So for the mentally codely challenged, can we just flash each zip you have one by oneand should be awesome? Lol. And will this work for the Cyanogenmod port?
TehJorge said:
So for the mentally codely challenged, can we just flash each zip you have one by oneand should be awesome? Lol. And will this work for the Cyanogenmod port?
Click to expand...
Click to collapse
It's not necessary, if build from the first post works for you. If it's not, feel free to try, but please make a backup.
I'm pretty sure that TW kernels don't work with CM.
Thanks..it was the dalvik+cache wipe....runs well. One question..do not know if this requires kernel work but was wondering if the task manager hard key could be remapped to a menu key instead. Asked this on general forum as have seen this done for like camera and power button. Thanks (anyone)
mac231us said:
Thanks..it was the dalvik+cache wipe....runs well. One question..do not know if this requires kernel work but was wondering if the task manager hard key could be remapped to a menu key instead. Asked this on general forum as have seen this done for like camera and power button. Thanks (anyone)
Click to expand...
Click to collapse
Indeed, remaping it through /system/usr/keylayout/gpio-keys.kl file is magically useless, but if you're using Xposed Framework, there is a nice little extension called Xposed Additions, with which you can easily accomplish what you're looking for.
remapped app switcher to menu
heyjoe66 said:
Indeed, remaping it through /system/usr/keylayout/gpio-keys.kl file is magically useless, but if you're using Xposed Framework, there is a nice little extension called Xposed Additions, with which you can easily accomplish what you're looking for.
Click to expand...
Click to collapse
Well I did it...remapped
Key 254 is the app switcher...reassigned to menu and wake
commented out the original
dusted off some from n7000 days (forgotten it)
won't let me attach the .kl files but anyway
in generic.kl
# samsung
#key 254 APP_SWITCH
key 254 MENU WAKE
in gpio-keys.kl
just added
key 254 MENU WAKE
not sure if both needed that statement
now I am happier (gg)
Note..the xposed mod needed the codes anyway so I went into the system keylayout files and thought well I can just do it here
mac231us said:
Well I did it...remapped
Key 254 is the app switcher...reassigned to menu and wake
commented out the original
dusted off some from n7000 days (forgotten it)
won't let me attach the .kl files but anyway
in generic.kl
# samsung
#key 254 APP_SWITCH
key 254 MENU WAKE
in gpio-keys.kl
just added
key 254 MENU WAKE
not sure if both needed that statement
now I am happier (gg)
Note..the xposed mod needed the codes anyway so I went into the system keylayout files and thought well I can just do it here
Click to expand...
Click to collapse
Ha! So generic.kl still does something. When I was playing with HOME button remaping, I was doing it in gpio-keys.kl, so as people over web think that gpio-keys.kl does the actual mappings.
Anyway, good to know that you have what was looking for.
Hello!
I wonder if you can include the kexec-hardboot patch into your kernel?
That would be great if you could do it.
svardman said:
Hello!
I wonder if you can include the kexec-hardboot patch into your kernel?
That would be great if you could do it.
Click to expand...
Click to collapse
No problem, but gonna have to test recent changes for stability. After that will try to add this one.
I know this says its for t705 but will it work on a t700? Are the kernels compatible?
svardman said:
Hello!
I wonder if you can include the kexec-hardboot patch into your kernel?
That would be great if you could do it.
Click to expand...
Click to collapse
I've investigated this topic deeper and it couldn't find a patch for Exsynos.
So, alas, I guess I can't add it for now. Sorry.
NerdFurgison said:
I know this says its for t705 but will it work on a t700? Are the kernels compatible?
Click to expand...
Click to collapse
I can try to build it for T700, but I have no any chance to test it, so if you can try this and say if it's working, I would much appreciate that.