Related
Sorry for disappearing guys, I wasn't in the mood for posting or working on the kernel: unfortunately it looks like I bricked my phone.
I couldn't believe it myself but as soon as I restarted it phone after CWM-flashing my usual JPO rom, going back from official JPU+803.pit, the screen went black and never came up again, no matter the key combination. No signs of life besides warming up slightly after pressing power or connecting the USB cable. No luck with a JIG cable aswell, tried all the way from 290K to 315K Ohm and nothing happens... I guess there's nothing I can do.
The problem is, I came back to Europe last month and official Samsung centers around here are refusing to offer repair services on US phones because of some kind of freak policy they have, even if I pay myself.
Update Dec 13:
I have no words to explain how thankful I am: PAulyhoffman offered to donate a spare phone he had, and promptly shipped it on the same day.
A special mention goes to Patrick Richter, Pauly's father in law, who just passed away on Saturday: a most generous man in honor of whom he would like to dedicate the donation.
I've already covered the shipping fee myself but customs will add a variable amount in taxes (most definitely 20% of original value as they usually do, although the specified value is just $100).
Hoping customs won't hold the package over the holidays, untested version versions will have to do for now.
HUGE thanks go to every single one who offered help, I really am moved by the affection demonstrated by this wonderful community.
Click to expand...
Click to collapse
I've compiled a Kernel based on Sztupy's ULF and xcaliburinhand's re-oriented kernels, including OC/UV support, 340Mb RAM and compiling optimizations.
Being based on the i9000 JPM source, it comes with every issue xcaliburinhand's kernel might have.
As I have absolutely no kernel programming knowledge, all credit goes to the respective coders: I've merely copied, pasted and compiled things, so I won't be able to offer much additional support or modify any of the function unless they provide source.
THIS IS A FROYO KERNEL, USE ONLY WITH A 2.2 ROM, PREFERABLY AN I9000 ONE
DO NOT USE SETCPU
Features:
- Sztupy's Ultimate Lag Fix V. pre-0.4https://github.com/sztupy
Multiple configurable Lagfix options:
Ext4 No-Journal DATA: /data converted to Ext4 with no journaling, everything else stays RFS
Ext4 No-Journal ALL: /data, /cache and /dbdata converted to Ext4 with no journaling
Ext4 DATA: /data converted to Ext4, everything else stays RFS
Ext4 ALL: /data, /cache and /dbdata converted to Ext4
Ext2 DATA: /data converted to Ext2, everything else stays RFS
Ext2 ALL: /data, /cache and /dbdata converted to Ext2
Advanced options: lets you specifically configure each partition and eventually add an Ext2 loop on top of them
Ext3/4 mount options: enables writeback journaling mode
(Using BIND_DATA_TO_DBDATA you might run out of space with many apps installed)
Suggested configuration (Ext4 ALL):
DATA_FS=ext4
CACHE_FS=ext4
DBDATA_FS=ext4
DATA_LOOP=false
CACHE_LOOP=false
DBDATA_LOOP=false
BIND_DATA_TO_DBDATA=false
Use FAST mount opts
You will get a "Configuration has changed" recovery screen at the first reboot after setting lagfix options, it's perfectly normal. If you wish to keep your current data, select the first option and wait (a separate backup is recommended).
- Modded CWM integrated
- CWM pre-installed (no more install from update.zip)
- reboot to 2e recovery
- reboot to download mode
- tweaking options
- root from recovery
- configure lagfix
- raspdeep's OC/UVhttp://forum.xda-developers.com/showthread.php?t=822027
If you do not want to mess with commands, use Xan's Voltage Settings app
- do note that you're subtracting voltage from the default setting, which varies with frequency:
Code:
1600MHz CPU 200MHz GPU 1400mV
1552MHz CPU 194MHz GPU 1375mV
1488MHz CPU 186MHz GPU 1350mV
1440MHz CPU 205MHz GPU 1325mV
1400MHz CPU 200MHz GPU 1300mV
1344MHz CPU 192MHz GPU 1300mV
1288MHz CPU 184MHz GPU 1300mV
1200MHz CPU 200MHz GPU 1300mV
1000MHz CPU 200MHz GPU 1275mV
800MHz CPU 200MHz GPU 1200mV
400MHz CPU 200MHz GPU 1050mV
200MHz CPU 200MHz GPU 950mV
100MHz CPU 100MHz GPU 950mV
the lastest Voltage Settings version includes voltage calculation
- 345Mb available RAM with 720p and JPU support
And improved minfree memory management
- Hardcore's SpeedModhttp://forum.xda-developers.com/showthread.php?t=822756
- jhash3
- Kernel HZ
- startup tweak scripts (available from cwm)
- ext4 kernel patches from http://www2.kernel.org/pub/linux/kernel/people/tytso/ext4-patches/
- compiling optimizations:
(thanks to laststufo)
-O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mthumb -fno-gcse -fprefetch-loop-arrays --param l2-cache-size=512 --param l1-cache-size=64 --param simultaneous-prefetches=6 --param prefetch-latency=400 --param l1-cache-line-size=64
- config optimizations: (XT variant only)
CONFIG_UACCESS_WITH_MEMCPY=y
CONFIG_KSM=y
# CONFIG_CGROUP_DEBUG is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
additional config settings found in other kernels are pointless or even counterproductive for performance/stability
- BFQ I/O schedulerhttp://lwn.net/Articles/306641/
Set as default, you may change it using Xan's Voltage Settings app
- supercurio's Voodoo Color&Sharpnesshttps://github.com/project-voodoo
- HSUPA support (with i9000 modems)
Enable WCDMA 850Mhz by dialing *#2263# (COMBI BANDS -> choose WCDMA 850)
- neldar's v2.2 BackLight Notifications supporthttps://github.com/neldar/backlightnotification
Configure with BacklightNotification settings app
To enable BLN it is necessary to flash a CWM zip or enable BLN in CWM from ULK advanced options
- Boot animations support
http://forum.xda-developers.com/showthread.php?t=819686
http://forum.xda-developers.com/showthread.php?t=822955
http://forum.xda-developers.com/showthread.php?t=623960
Once again, none of it comes from me and all credit goes to the original developers, especially xcaliburinhand, raspdeep and hardcore
Nevertheless, if you're feeling particularly generous and have already provided for the developers, I'll gladly accept a token of gratitude (after all, being so ignorant I did have to invest quite a bit of time into it).
Everything comes at your own risk, I offer no support at all.
Thank you aleadam, ReedX50v, junktzu, shaolin95, Shane, krl66, Smokestack76, Henry, Xstop, lpsi200, Arffer, newter55, Lertets, txRangerXDA, id10terrordfw and Bedwa for your donations.
Code:
- v1.5.6
fixed boot-up and CWM instability
updated modules from JPX kernel
new frequency table
full compatibility with Voltage Control 3 (lowering frequency with it seems to cause freezes)
removed update_frequency, making changes to the freq table immediately applies them
- v1.4.7
fixed boot animation issues
fixed init.d script execution
fixed CIFS support
- v1.5.5
lowered default freq to 1000MHz
updated ram disk to late 1.4.x versions
improved wi-fi performance
fixed internal SD mount as CD-ROM on JPU
- v1.4.6
improved wi-fi performance
fixed internal SD mount as CD-ROM on JPU
Changelog:
- v1.4.5
Frequencies/battery fix
- v1.4.4
added workaround script inside the update.zip to execute voltage control boot settings directly from the program's data dir, eliminating the necessity to remount /system
gained an additional MB of RAM thanks to kernel size optimization
implemented Xcaliburinhand's wired headset fix
optimized RAM utilization (minfree tweaks)
updated CWM to include Hardcore's latest additions
slight menus reorganization
updated optimization scripts (now including battery optimizations, GPS tweaks, CIFS support)
built-in support for ext2, ext3 and ext4 no-journaling (you will see a "configuration changed" screen if you manually disabled journaling - select "No, enter recovery mode" and switch ext4 to ext4nj)
built-in support for ext4 mount optimizations (writeback mode)
HZ=500, PREEMPT_VOLUNTARY
JPU variant with modules and mem config extracted from samsung's JPU kernel: DO NOT USE IT ON FIRST BOOT OR YOU'LL GET AN ENDLESS VIBRATING BLACK SCREEN, BOOT ON SAMSUNG JPU AND ONLY THEN FLASH THIS KERNEL
v1.5.4
initial boot and recovery frequency lowered from 1200MHz to 800MHz
reduced voltage change delay
frequency jumps set up more like 1.4 in order to improve performance
v1.5.3
/system mounts as RO
added workaround script inside the update.zip to execute voltage control boot settings directly from the program's data dir, eliminating the necessity to remount /system
corrected frequencies script, should now work on every ROM
only available as a CWM update.zip to make sure everyone has working init scripts
increased default voltages for 1456-1464MHz to 1325mV, 1504-1544MHz to 1375mV and 1600MHz to 1400mV, regulate your UV settings BEFORE upgrading
gained an additional MB of RAM thanks to kernel size optimization
v1.5.2
DELETE USER GENERATED SCRIPTS IN /system/etc/init.d/ BEFORE UPGRADING
(remember it's necessary to unlock higher frequencies from both freq_table and Xan's app)
implemented Xcaliburinhand's wired headset fix
mount /system R/W - could be dangerous, but solves script creation issues
optimized frequency jumps for better battery life
optimized RAM utilization (minfree tweaks)
workaround for the highest frequency step being sometimes briefly used during bootup and recovery operation
effectively set 1200MHz as the default frequency
corrected wrong display of highest frequency in Quadrant
added frequencies scheduler script in the CWM zip package with a visual aid
reorganized performance levels with a few additions
- v1.5.1
skipped, integrated in 1.5.2
- v1.5
updated raspdeep's OC/UV to v300
multiple performance levels:
100
200
400
800
1000
1200
1360 (GPU downclocked, don't worry performance improves anyway)
1400
1440 (GPU slightly overclocked)
1460 (GPU downclocked)
Default clock at 1200MHz, additional frequencies can be enabled by editing /sys/devices/system/cpu/cpu0/cpufreq/states_enabled_table
in order to update the states table it's necessary to edit to 1 /sys/devices/system/cpu/cpu0/cpufreq/update_states (echo from terminal or by manually editing the file, just like the states table)
added compatibility with Xan's voltage app v2.0 (please update, v1.9x wouldn't work correctly)
reduced 14xxMHz default voltage to 1.3v
updated CWM to include Hardcore's latest additions
slight menus reorganization
updated optimization scripts (now including battery optimizations and CIFS support)
built-in support for ext2, ext3 and ext4 no-journaling (you will see a "configuration changed" screen if you manually disabled journaling - select "No, enter recovery mode" and switch ext4 to ext4nj)
built-in support for ext4 mount optimizations (writeback mode)
- v1.4.3
fixed 2e recovery, now completely functional
added 1350Mhz, 1400MHz and 1450MHz variants, only available as ODIN packages. The latter two have a default voltage of 1350mV. Keep using Xan's Voltage App v1.98b's 1200MHz setting to undervolt, higher frequencies replace the 1200MHz step, bear in mind the app doesn't show the updated frequency/voltage. Remember to reset said setting before upgrading and please realize how 14xxMHz will only run on few lucky devices
from now on there won't be a CWM version for 1350MHz+ and XT variants as well as a release integrating the modem, just install it on its own if necessary
- v1.4.2
implemented Tiny RCU
re-enabled Samsung's bootanimation when there's no bootanimation.zip
re-added -noatime optimization script
XT variant: 1280MHz, config optimizations: HZ=500, PREEMPT_VOLUNTARY, UACCESS_WITH_MEMCPY, KSM (possibly unstable, slightly higher performance and battery drain, might be necessary to lower UV)
- v1.4.1
fixed BLN (flashing as update.zip or re-enabling it from CWM might be necessary)
- v1.4
raspdeep's OCUV updated to v217
implemented fastscaling for 100-400MHz frequencies
added 1280MHz variant (UV setting for 1200MHz applies to 1280MHz, so reset it)
ULF updated to pre-0.4, modified to support bootanimations
fixed potential /system corruption
integrated JK3 modem in CWM flash package
kernel version updated to reflect frequency variant (#140-1280 / #140-1200)
BLN has issues
- v1.3.5
removed config optimizations
removed -noatime remount script
(should provide stability for those experiencing hangups/reboots/charging issues)
- v1.2.6
removed config optimizations (should provide stability for those experiencing hangups/reboots/charging issues)
HZ=300
- v1.3.4
rebuilt from scratch
even more stability fixes
build # updated according to version (#134->v1.3.4)
- v1.2.5
rebuilt from scratch
additional FS optimization script to remount partitions with -noatime included in the I/O Scheduler script
fixed script execution
kernel HZ back to default
build # updated according to version (#125->v1.2.5)
- v1.3.3
fixed screen lock issue
kernel HZ lowered to 300
more stability fixes
supposedly fixed charging issues (oneclick to JF6, reset battery stats and masterclear)
- v1.3.2
stability fixes
- v1.3.1
included ext4 patches from [url]http://www2.kernel.org/pub/linux/kernel/people/tytso/ext4-patches/[/url]
additional FS optimization script to remount partitions with -noatime included in the I/O Scheduler script
- v1.3
Corrected a small bug that was preventing scripts from running
updated raspdeep's OC/UV to v2.1
update [url=http://forum.xda-developers.com/showthread.php?t=829731]Xan's app[/url] to undervolt
- v1.2.1
hopefully fixed script execution on Captivate ROMs aswell
fixed CWM option for enabling BLN
fixed 500hz setting
enabled CONFIG_UACCESS_WITH_MEMCPY and CONFIG_PREEMPT_VOLUNTARY as they apparently make no difference in battery use
- v1.2
increased available RAM to 343Mb
updated BLN to v2.2
- v1.1.1
enabled init.d script execution on boot (Xan's app voltage settings are now being kept)
- v1.1
added BFQ I/O scheduler
updated Voodoo color&sharpness
BLN reverted to v2.0, now working (flashing from an update.zip is required to install the Library)
- v1.0.1
fixed JFS filesystem support, added bootanimations, BLN still not working (no clue why not, waiting for xcaliburinhand's upcoming update)
- v1.0
initial release
RESET ALL UV SETTINGS (DELETE INIT.D SCRIPTS) BEFORE UPGRADING TO HIGHER VERSIONS
IF YOU'RE HAVING SLEEP DEATH ISSUES, REVISE UV SETTINGS
Modules and mem config extracted from samsung's JPU kernel: DO NOT USE THIS KERNEL ON JPU FIRST BOOT OR YOU'LL GET AN ENDLESS VIBRATING BLACK SCREEN, BOOT ON SAMSUNG STOCK AND ONLY THEN FLASH THIS KERNEL
The XT variant is slightly faster but can cause instability (which might require higher voltage) and charging death.
Voltage Control 3 supports enabling higher frequencies from the freq table, but doesn't yet let you disable selective ones.
To disable a certain frequency its corresponding value in /sys/devices/system/cpu/cpu0/cpufreq/states_enabled_table has to be set to '0'.
Changing update_states is no longer necessary. That file can either be manually edited or modified through an 'echo' command, which is much more convenient if you're in front of a PC and able to use ADB.
It's a volatile RAM file, which means changes made to it won't stick through reboots; I've included a script that reapplyies settings on boot in the CWM package (also attached to this post).
Let's say you wish to overclock to 1400MHz and disable 1288-1344:
1344MHz corresponds to the 6th value, 1288 to the 7th:
Code:
#!/system/bin/sh
#SET OC - below are GHz decimals (i.e. 1.60GHz, 1.55GHz, 1.50GHz and so on)
#60 55 48 44 40 34 28 20 00 .8 .4 .2 .1
[color=red]#[/color]echo 0 0 0 0 1 [color=blue]0[/color] [color=blue]0[/color] 1 1 1 1 1 1 > /sys/devices/system/cpu/cpu0/cpufreq/states_enabled_table
REMEMBER TO REMOVE # FROM THE LAST LINE
jk3_modem_update.zip
SetiroN_v1.4.7xt_1600.tar.7z [email protected] frequency - 200MHz GPU
SetiroN_v1.4.7_1600.tar.7z [email protected] frequency - 200MHz GPU
SetiroN_v1.4.7xt_1552.tar.7z [email protected] frequency - 194MHz GPU
SetiroN_v1.4.7_1552.tar.7z [email protected] frequency - 194MHz GPU
SetiroN_v1.4.7xt_1488.tar.7z [email protected] frequency - 186MHz GPU
SetiroN_v1.4.7_1488.tar.7z [email protected] frequency - 186MHz GPU
SetiroN_v1.4.7xt_1440.tar.7z [email protected] frequency - 205MHz GPU
SetiroN_v1.4.7_1440.tar.7z [email protected] frequency - 205MHz GPU
SetiroN_v1.4.7xt_1400.tar.7z [email protected] frequency - 200MHz GPU
SetiroN_v1.4.7_1400.tar.7z [email protected] frequency - 200MHz GPU
SetiroN_v1.4.7xt_1344.tar.7z [email protected] frequency - 192MHz GPU
SetiroN_v1.4.7_1344.tar.7z [email protected] frequency - 192MHz GPU
SetiroN_v1.4.7xt_1288.tar.7z [email protected] frequency - 184MHz GPU
SetiroN_v1.4.7_1288.tar.7z [email protected] frequency - 184MHz GPU
SetiroN_v1.4.7xt_1200.tar.7z [email protected] frequency - 200MHz GPU
SetiroN_v1.4.7_1200.tar.7z [email protected] frequency - 200MHz GPU
setiron_v1.5.6.tar.7z
setiron_v1.5.6_cwmupdate.zip
setiron_v1.5.6xt.tar.7z
setiron_v1.5.6xt_cwmupdate.zip
Voltage Control 3 alpha3
FINALLY! Going back to 2.2 so i can try this out. Can't wait for the link.
Sent from my Cappy using mental telepathy, *****ezz.
SetiroN said:
- neldar's v2.2 BackLight Notifications support
coming in the next release
Click to expand...
Click to collapse
Awwww that's a deal breaker for me, need bln badly. But yes finally, sztupy ulf on the cappy.
BLN now included, untested.
Awesome. I've been trying to figure out the how to do all this as well. I edited the code this morning at work and I just thought I'd check XDA while CodeSourcery finished installing...and what do I see?
I'll be flashing this immediately. FWIW, I've actually been running raspdeep's OC/UV 2.0 since Monday. I have it set at -100UVLF, -75UVHF, and I've had absolutely no problems with it at all, but it seems to be a YMMV situation. I don't think all processors can handle the UV. Even with (I think) unhelpful's, JAC's, and kingklick's kernels for the Galaxy S, phones handle the UV fine, some don't. Battery life is amazing with this though.
Also, I've had problems with screen off settings with setCPU. You probably don't want to use them at all.
SetiroN said:
BLN now included, untested.
Click to expand...
Click to collapse
that's some fast support...
Yes please. Link?
DOAlaboratories said:
that's some fast support...
Click to expand...
Click to collapse
Can I get this uploaded in Shep's rom since he is "unavailable" until tomorrow Since you are so fast at making peoples dreams come true
/sarcasm
so has anyone run this yet? it seems pretty alpha and my phone just went into download mode to test it
By the way everyone - the UV is still what I think raspdeep considers alpha. You will probably want to stress your system a bit to ensure it can handle it. I found that with -100UVLF/-75UVHF flash video was a little bit choppier than with the settings at -75UVLF/-50UVHF.
That said, it has been steady for me over the last couple days, no problems at all with it. I can watch flash video and my CPU temps still stay under 100.
Also, link to xan's UV GUI seems to be missing - so here is another one.
And having alogcat installed and knowing how to use it would probably be the best practice if you want to help raspdeep make this even better.
Athailias said:
Can I get this uploaded in Shep's rom since he is "unavailable" until tomorrow Since you are so fast at making peoples dreams come true
/sarcasm
Click to expand...
Click to collapse
Just get in download mode and flash it over
SetiroN said:
I've compiled a Kernel based on Sztupy's ULF and xcaliburinhand's re-oriented kernels
Click to expand...
Click to collapse
Which version of reorient is this based on?
Thanks!
Since I see the compass patch works, it is at least version 2.1.1...
watch out, i think this may have master cleared me...
simething did at least.
no worries though, i have a whole SDCARD backup, so it's all good
This is freaking sweet. I am undoing voodoo at the moment and then will flash and give it a try. I am on the memory version of reorient at the moment so I will post back when results
it keeps booting intoa recovery loop on me after applying a lagfix
DOAlaboratories said:
it keeps booting intoa recovery loop on me after applying a lagfix
Click to expand...
Click to collapse
What lagfix are you trying to install? I got that with trying to use all=jfs, switching to all=ext4 worked.
BLN doesn't seem to be working. Yes I did enable it in the custom recovery menu, and yes I'm using a version of Mms.apk that supports "led notifications."
Has anyone tried with cogs new b2.3 rom yet? How is the battery life?
glitterballs said:
What lagfix are you trying to install? I got that with trying to use all=jfs, switching to all=ext4 worked.
Click to expand...
Click to collapse
JFS overkill was what did it me and obsessing over having the best ****.
i'll try RFS overkill and see if that works. also, after i got it to boot back up, it wouldn't install any apps
Can I flash this over Tayutama's Tom using ODIN? What slot do I put the file in?
Improve your battery life tenfold by PureMotive
tested and working at: SGS, Xperia Play, HTC Inc S, the battery life has increased significantly
Original link: http://forum.xda-developers.com/showthread.php?t=1621808http://forum.xda-developers.com/showthread.php?t=1621808
PureMotive said:
Okay guys, I just thought I'd give you my mod for achieving good-great battery life. This is the mod I use in Anthem™ which has given me 50+ hours on a single charge. Feel free to include it in your own ROM or whatever. Please give credit or thanks or both
First: Here is a flashable .zip of the mod that may or may not work with your ROM. I'd still advise doing it manually.
Sysctl.conf - Outdated as of 4/29/2012
Step 1
Open up your ROM.zip (or whatever it's called) in 7zip (Windows) or Betterzip (OSX) and locate
sysctl.conf in /system/etc
If it's not in this directory, create it.
Step 2
In your sysctl.conf file, paste the following code and save it.
Code:
#sysctl.conf file
fs.nr_open=1053696;
fs.inotify.max_queued_events=32000;
fs.inotify.max_user_instances=256;
fs.inotify.max_user_watches=10240;
fs.lease-break-time=10;
fs.file-max=165164;
kernel.threads-max=525810;
kernel.random.write_wakeup_threshold=256;
kernel.random.read_wakeup_threshold=128;
kernel.panic=5;
kernel.sched_compat_yield=1;
kernel.panic=0;
kernel.panic_on_oops=1;
kernel.msgmni=2048;
kernel.msgmax=64000;
kernel.shmmni=4096;
kernel.shmall=2097152;
kernel.shmmax=268435456;
kernel.sem='500 512000 64 2048';
kernel.sched_features=24189;
kernel.hung_task_timeout_secs=30;
kernel.sched_latency_ns=18000000;
kernel.sched_min_granularity_ns=1500000;
kernel.sched_wakeup_granularity_ns=3000000;
kernel.sched_shares_ratelimit=256000;
kernel.sched_child_runs_first=0;
fs.lease-break-time=10;
fs.file-max=65536;
net.core.wmem_max=524288;
net.core.rmem_max=524288;
net.core.rmem_default=262144;
net.core.wmem_default=262144;
net.core.optmem_max=20480;
net.unix.max_dgram_qlen=50;
net.ipv4.tcp_keepalive_time=900;
net.ipv4.tcp_keepalive_probes=5;
net.ipv4.tcp_keepalive_intvl=156;
net.ipv4.tcp_timestamps=0;
net.ipv4.tcp_sack=1;
net.ipv4.tcp_fack=1;
net.ipv4.tcp_window_scaling=1;
net.ipv4.tcp_tw_recycle=1;
net.ipv4.tcp_tw_reuse=1;
net.ipv4.tcp_congestion_control=cubic;
net.ipv4.tcp_syncookies=1;
net.ipv4.conf.all.rp_filter=1;
net.ipv4.conf.default.rp_filter=1;
net.ipv4.tcp_synack_retries=2;
net.ipv4.tcp_syn_retries=2;
net.ipv4.tcp_max_syn_backlog=1024;
net.ipv4.tcp_max_tw_buckets=16384;
net.ipv4.icmp_echo_ignore_all=1;
net.ipv4.icmp_ignore_bogus_error_responses=1;
net.ipv4.tcp_no_metrics_save=1;
net.ipv4.tcp_fin_timeout=15;
net.ipv4.tcp_keepalive_intvl=30;
net.ipv4.tcp_keepalive_probes=5;
net.ipv4.tcp_keepalive_time=1800;
net.ipv4.ip_forward=0;
net.ipv4.conf.default.accept_source_route=0 ;
net.ipv4.conf.all.accept_source_route=0;
net.ipv4.conf.all.accept_redirects=0;
net.ipv4.conf.default.accept_redirects=0;
net.ipv4.conf.all.secure_redirects=0;
net.ipv4.conf.default.secure_redirects=0;
net.ipv4.udp_rmem_min=6144;
net.ipv4.udp_wmem_min=6144;
net.ipv4.tcp_rfc1337=1;
net.ipv4.ip_no_pmtu_disc=0;
net.ipv4.tcp_ecn=0;
net.ipv4.route.flush=1;
net.ipv4.tcp_rmem='6144 87380 524288';
net.ipv4.tcp_wmem='6144 87380 524288';
net.ipv6.conf.default.use_tempaddr=2;
net.ipv6.conf.all.use_tempaddr=2;
net.ipv6.conf.all.temp_prefered_lft=3600;
net.ipv6.conf.default.temp_prefered_lft=3600;
vm.dirty_ratio=90;
vm.dirty_background_ratio=80;
vm.oom_kill_allocating_task=1;
vm.overcommit_memory=1;
vm.page-cluster=3;
vm.drop_caches=3;
vm.min_free_kbytes=4096;
vm.panic_on_oom=0;
vm.dirty_expire_centisecs=1000;
vm.dirty_writeback_centisecs=2000;
vm.oom_kill_allocating_task=0;
vm.vfs_cache_pressure=10;
vm.min_free_order_shift=4;
vm.laptop_mode=0;
vm.block_dump=0;
PureMotive said:
I updated the OP with a new code (Thanks to Tiny). I just removed the semicolons. Use this version if the other does not work for you.
Click to expand...
Click to collapse
If the above code does not work for you, try this one. It has the semi-colons removed. Thanks Tiny
Code:
#sysctl.conf file
fs.nr_open=1053696
fs.inotify.max_queued_events=32000
fs.inotify.max_user_instances=256
fs.inotify.max_user_watches=10240
fs.lease-break-time=10
fs.file-max=165164
kernel.threads-max=525810
kernel.random.write_wakeup_threshold=256
kernel.random.read_wakeup_threshold=128
kernel.panic=5
kernel.sched_compat_yield=1
kernel.panic=0
kernel.panic_on_oops=1
kernel.msgmni=2048
kernel.msgmax=64000
kernel.shmmni=4096
kernel.shmall=2097152
kernel.shmmax=268435456
kernel.sem='500 512000 64 2048'
kernel.sched_features=24189
kernel.hung_task_timeout_secs=30
kernel.sched_latency_ns=18000000
kernel.sched_min_granularity_ns=1500000
kernel.sched_wakeup_granularity_ns=3000000
kernel.sched_shares_ratelimit=256000
kernel.sched_child_runs_first=0
fs.lease-break-time=10
fs.file-max=65536
net.core.wmem_max=524288
net.core.rmem_max=524288
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.optmem_max=20480
net.unix.max_dgram_qlen=50
net.ipv4.tcp_keepalive_time=900
net.ipv4.tcp_keepalive_probes=5
net.ipv4.tcp_keepalive_intvl=156
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_sack=1
net.ipv4.tcp_fack=1
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_congestion_control=cubic
net.ipv4.tcp_syncookies=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.tcp_synack_retries=2
net.ipv4.tcp_syn_retries=2
net.ipv4.tcp_max_syn_backlog=1024
net.ipv4.tcp_max_tw_buckets=16384
net.ipv4.icmp_echo_ignore_all=1
net.ipv4.icmp_ignore_bogus_error_responses=1
net.ipv4.tcp_no_metrics_save=1
net.ipv4.tcp_fin_timeout=15
net.ipv4.tcp_keepalive_intvl=30
net.ipv4.tcp_keepalive_probes=5
net.ipv4.tcp_keepalive_time=1800
net.ipv4.ip_forward=0
net.ipv4.conf.default.accept_source_route=0
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
net.ipv4.udp_rmem_min=6144
net.ipv4.udp_wmem_min=6144
net.ipv4.tcp_rfc1337=1
net.ipv4.ip_no_pmtu_disc=0
net.ipv4.tcp_ecn=0
net.ipv4.route.flush=1
net.ipv4.tcp_rmem='6144 87380 524288'
net.ipv4.tcp_wmem='6144 87380 524288'
net.ipv6.conf.default.use_tempaddr=2
net.ipv6.conf.all.use_tempaddr=2
net.ipv6.conf.all.temp_prefered_lft=3600
net.ipv6.conf.default.temp_prefered_lft=3600
vm.dirty_ratio=90
vm.dirty_background_ratio=80
vm.oom_kill_allocating_task=1
vm.overcommit_memory=1
vm.page-cluster=3
vm.drop_caches=3
vm.min_free_kbytes=4096
vm.panic_on_oom=0
vm.dirty_expire_centisecs=1000
vm.dirty_writeback_centisecs=2000
vm.oom_kill_allocating_task=0
vm.vfs_cache_pressure=10
vm.min_free_order_shift=4
vm.laptop_mode=0
vm.block_dump=0
Step 3
Now we need to enable it. So, navigate to /system/etc/init.d and create a file with the following code:
Code:
#!/system/bin/sh
# grep sysctl /etc/init.d/*
# Load /sys/etc/sysctl.conf
sysctl -p
sysctl -p is what initializes the code.
Just FYI: You don't actually need these lines:
Code:
# grep sysctl /etc/init.d/*
Code:
# Load /sys/etc/sysctl.conf
So this would have just sufficed.
Code:
#!/system/bin/sh
sysctl -p
If the above code does not work for any reason, try this:
Code:
#!/system/bin/sh
sysctl -p /system/etc/
Name your file something like this 10sysctl
Save your file.
NOTE: Your ROM must support init.d. You can do this by using dsixda's android kitchen
Step 4
Save your ROM and install it via recovery
OR
you could just push the files into your current ROM and try them out.
Step 5
For operating the script enter the following code in terminal emulator
Code:
su
sysctl -p
is all that is really needed to run the script. So here are some more options:
If you think that init.d is being faulty, enter in terminal emulator
Code:
su
sysctl -p
and then
Code:
sysctl -a| grep vm
What this does is manually start up sysctl.conf and then verify it with the succeeding code.
OR
Ignore what
Code:
sysctl -a| grep vm
is outputting and just see if you experience better battery life (you should)
----------- For knowledge -----------
Credits to imoseyon for portions of the info
Ok, so what exactly is sysctl.conf?
The sysctl.conf is a configuration file for "sysctl" which is an interface for dynamically changing kernel parameters in the Linux OS. The configuration file contains the following elements, vm.min_free_kbytes, vm.dirty_ratio, vm.dirty_backgroud_ratio, vm.vfs_cache_pressure, vm.oom_kill_allocating_task. There are many other elements within the file, but we will be primarily focusing on these specifically (the vm prefix stands for virtual memory). The sysctl.conf file should be located in /etc (/system/etc) by default. To enable it you need your ROM to execute "sysctl -p" somewhere during the boot process (or shortly afterward). We will also be discussing how to enable it if it is not already done so. You can also run sysctl -p manually to enable it any time after the OS is started.
Now, let’s get down to what sysctl.conf does and how it works.
min free kbytes (vm.min_free_kbytes)
This is used to force the Linux VM to keep a minimum number of kilobytes free. The VM uses this number to compute a pages_min value for each lowmem zone in the system. Each lowmem zone gets a number of reserved free pages based proportionally on its size. Default is 2048kb.
dirty ratio (vm.dirty_ratio) and dirty background ratio (vm.dirty_background_ratio)
This controls how often the kernel writes data to "disk" (in our case the internal microSD system card, not the removable microSD card). When your apps write data to disk, Linux actually doesn't write the data out to the disk right away, it actually writes the stuff to system memory and the kernel handles when and how the data is actually going to be flushed to the disk. These values represent a percentage, the higher the percentage, the longer it waits to flush, the lower the percentage, the more often flushes will occur. Now remember, we are dealing with solid state storage, not the traditional disk platter and spindle. So we are actually able to delay flushes a little longer with solid state versus a traditional hard drive disk.
VFS Cache Pressure (vm.vfs_cache_pressure)
Now here is where it gets interesting! File system cache (dentry/inode) is really more important than the block cache above in dirty ratio and dirty background ratio, so we really want the kernel to use up much more of the RAM for file system cache, this will increas the performance of the system without sacrificing performance at the application level. The default value is 100, as a percentage, and what you want to do is lower the value to tell the kernel to favor the file system cache and not drop them aggressively.
oom allocating task (vm.oom_kill_allocating_task)(enable or disable, generally in Linux this value is either a "1" or a "0," representing as on or off.)
This enables or disables killing the OOM-triggering task in out-of-memory (oom) situations. If this is set to zero, or disabled, the OOM killer will scan through the entire task list and select a task based on heuristics to kill. This normally selects a rogue memory-hogging task that frees up a large amount of memory when killed. If this is set to non-zero, or enabled, the OOM killer simply kills the task that triggered the out-of-memory condition. This avoids the expensive task list scan, which can take mass amounts of time and "hang" or freeze the system.
block_dump (vm.block_dump)
This enables block I/O debugging when set to a nonzero value. If you want to find out which process caused the disk to spin up (see /proc/sys/vm/laptop_mode), you can gather information by setting the flag.
When this flag is set, Linux reports all disk read and write operations that take place, and all block dirtyings done to files. This makes it possible to debug why a disk needs to spin up, and to increase battery life even more. The output of block_dump is written to the kernel output, and it can be retrieved using "dmesg". When you use block_dump and your kernel logging level also includes kernel debugging messages, you probably want to turn off klogd, otherwise the output of block_dump will be logged, causing disk activity that is not normally there.
overcommit_memory (vm.overcommit_memory)
This controls overcommit of system memory, possibly allowing processes to allocate (but not use) more memory than is actually available.
0 - Heuristic overcommit handling. Obvious overcommits of address space are refused. Used for a typical system. It ensures a seriously wild allocation fails while allowing overcommit to reduce swap usage. root is allowed to allocate slighly more memory in this mode. This is the default.
1 - Always overcommit. Appropriate for some scientific applications.
2 - Don't overcommit. The total address space commit for the system is not permitted to exceed swap plus a configurable percentage (default is 50) of physical RAM. Depending on the percentage you use, in most situations this means a process will not be killed while attempting to use already-allocated memory but will receive errors on memory allocation as appropriate.
page-cluster (vm.page-cluster)
This controls the number of pages which are written to swap in a single attempt. The swap I/O size.
It is a logarithmic value - setting it to zero means "1 page", setting it to 1 means "2 pages", setting it to 2 means "4 pages", etc.
The default value is three (eight pages at a time). There may be some small benefits in tuning this to a different value if your workload is swap-intensive.
panic_on_oom (vm.panic_on_oom)
This enables or disables panic on out-of-memory feature. If this is set to 1, the kernel panics when out-of-memory happens. If this is set to 0, the kernel will kill some rogue process, by calling oom_kill().
Usually, oom_killer can kill rogue processes and system will survive. If you want to panic the system rather than killing rogue processes, set this to 1.
The default value is 0.
Panic is a system error that is detected by the kernel.
dirty_expire_centisecs (vm.dirty_expire_centisecs)
How old "dirty" data should be before the kernel considers it old enough to be written to disk. It is expressed in 100ths of a second.
dirty_writeback_centisecs (vm.dirty_writeback_centisecs)
This is the interval of when the writeback daemons periodically wake up and write "old" data out to disk. It is expressed in 100ths of a second.
Click to expand...
Click to collapse
Woah.!!
Sent from my GT-S5830 using Tapatalk
Flashable ZIP
Tenfold huh? should give it a try..
EDIT (updated):
Heres a flashable zip to make things a little easier:
Instructions:
1. Reboot to CWM
2. Mount system
3. Flash
DOES IT WORK?
See for yourself
v2-04/30/2012 [without semi-colons of sysctl.conf (refer Step 2) & removed extra lines of 10sysctl (refer step 3)]
pure AWESOMENESS
Sent from my GT-I9100 using xda premium
Is it working. For ace?????
Sent from my GT-S5830 using Tapatalk 2
Anyone comfirm this working?
added to my future rom
Sure.. after 30min from the first post someone definitely will answer if it extends battery life
Let's see who'll be the first to notice that his bettery last longer
Thanks for sharing this
Is it compatible with CM9?
I installed this on my 2.3.6 based ROM and everything is smooth so far. I also ran the supercharger scripts and all 3 had no errors just in case anyone was wondering if they'd conflict with eachother.
/me Flashed,charging Batt ... ->Start
Testing ...edit with notes follows in 24h ...
Thx 4 sharing
(Edit) for me the battery jumps stopped,its more accurate...but i dont have more battery life.
Verstuurd va men ace via Tapatalk
Installed on 2.3.6 based ROM. Everything went smoothly installing. I ran the V6 turbocharger scripts and it didnt cause any errors to come up in case anyone was wondering.
Sent from my VS910 4G using xda premium
Just installed now, on CM9, Beta 8 by the GalaxyICS team.
Currently charging, and I will show a battery life screenie tomorrow and report on the performance
Downloaded, short term testing looks promising, played angry bird for 30mins, that use to drain like 10% battery, now it's only 6%. Not ten fold but still, improvement from just a file, i'll take that any day, this should come standard on all roms now
Does it works on Lewa rom?
Yes i think it was we need It appears to save battery ... Tomorrow i will do full test with full charge
ok installed 5 minutes back on Lk's I two Rom aka cyanogenmod. no problem but I notified a significant change in speed.. phone feels faster. battery backup dropped two percent in 3 minutes of edge usage. ll update this post after 5 hours.. those who want to install do it without fear its installing no bootloops no errors...
thanks for the share
---------- Post added at 08:01 AM ---------- Previous post was at 07:38 AM ----------
kohrangi said:
Does it works on Lewa rom?
Click to expand...
Click to collapse
Yes it works...
Mmm... testing... im at hospital for 2 days without my charger so... It will come handy if works.
Thanks!
Enviado desde el hospital usando Tapatalk con la mano derecha (soy surdo pero tengo suero)
A question, though: is this version of the mod any different from the original? Because the flashable zip of the original mod is bigger than the one posted here. Just curious. Anyway, I'm going to install the original. I'll come back later with answers.
AlterJack said:
A question, though: is this version of the mod any different from the original? Because the flashable zip of the original mod is bigger than the one posted here. Just curious. Anyway, I'm going to install the original. I'll come back later with answers.
Click to expand...
Click to collapse
Files sysctl.conf are the same. Original sysctl.conf contains one empty line at the end of file - that is all.
Current release: Version 2.0 (stable) [09/08/2012]
SOURCE CODE: Available at GitHub
*WARNING PLEASE USE AT YOUR OWN RISK*
DISCLAIMER
FIRST OF ALL THIS IS NOT AN OFFICIAL KERNEL, IT IS NOT SUPPORTED BY OFFICIAL CM10 ROMS OR ANY PREVIEW ROMS.
ONCE YOU INSTALL THIS KERNEL YOU WILL NOT BE SUPPORTED IN THE CM10 / CM9 OFFICIAL/UNOFFICIAL DEVELOPMENT THREADS
OF ANY FORUM i.e XDA, SLATEDROID, etc.. THIS MEANS THAT YOU MUST NOT REPORT ANY ANDROID / CM BUGS TO THE ORIGINAL
COMMUNTIY THREADS FOR THE ROM YOU USE! YOU MAY HOWEVER REPORT ANY CM/ANDROID/KERNEL RELATED ISSUES TO THIS THREAD ONLY!
Click to expand...
Click to collapse
Features
CPU Overclocking up to 1500mHz (default is set at stock 1000mhz)
Stable GPU Overclock @ 450mhz (scales from 300 - 450)
Userspace CPU undervolting support
Brick prevention/precaution - disabled MMC_CAP_ERASE function from kernel
I/O Schedulers: BFQ, CFQ, SIO, DEADLINE, NOOP, V(R) (Default VR as of v1.3 - prior to 1.2 default = deadline)
Autogroup Scheduler patched to work with Android via User ID task grouping
CPU Governors: Lionheart, SavagedZen, Lazy, Scary, Intellidemand, LagFree, Wheatley, Lulzactive, SmartAssv2, Interactive, Ondemand, Powersave, Userspace, Performance (depending on ROM - interactive governor is usually set as default gov from userspace during init)
ARM libs from Linux 3.x (v2.0+)
Android Drivers from Linux 3.x (v2.0+)
Linux Security from Linux 3.x (v2.0+)
Cleancache + Zcache Support (v2.0+)
Working Zram - to enable see instructions below (v2.0+)
Fixed Video driver glitches (v1.4+)
Cleaned up tons dmesg errors and warnings (v2.0+)
Memory management fixes and patches from 3.x (v2.0+)
Alsa SoC Tiny HAL patch for better compatibility with Jelly Bean and ICS (reduces/eliminates popping sounds)
Plus various other improvements to kernel configuration and code.
Downloads
Current Release:
v2.0
Previous Releases:
v1.6
RC3
RC2
RC1
Tools:
Code:
[URL="https://github.com/downloads/godmachine81/Acer-A100-JellyBean-Custom-Kernel/toggle-ag.sh"]toggle-ag[/URL] Tool to Enable/Disable Autogroup and check the status.
'toggle-ag' now included with kernel zip as of 1.3a and is located at /system/xbin/toggle-ag - You may run from a terminal or create Script Manager widgets for each of the script arguments:
Code:
toggle-ag status
toggle-ag on
toggle-ag off
toggle-ag help
Please remember that this script has to be ran as root if you plan to enable/disable autogroup, however you may run as regular user to check the status or get the help dialog.
Important info on toggle-ag script usage (from the script comments):
#**Please note that toggling back and forth the scheduler will
#produce undesired effects, as it takes the system a few minutes
#to switch the process scheduler each time effectively. Imagine
#all processes that run in the backround are rearranged each time
#you switch the process scheduler. In other words you shouldn't
#toggle back and forth to make comparisons as they WILL NOT be
#effective immediately!!
Click to expand...
Click to collapse
Goo Manager Support (NEW!)
You can now download my custom kernels, tweaks, etc from Goo Manager, available on the Play Store. Goo Manager is similar to ROM Manager, except it works very well with TWRP 2.x
First time use instructions:
Set Download path to: /sdcard/goomanager/ in "Settings" (This is important as the location on Android and TWRP need to both be exact same!)
Go back to the main screen in Goo Manager and click Browse Compatible Roms
Choose 'godmachine81'
For kernels choose a500_kernel (you are welcome to look around in my other directories)
Choose the release you wish to download
Choose 'begin download'
You will see a notification for 'Download Finished' - Tap on it
It will prompt you to Select Zip(s) to flash, you may choose more than 1!
After you have selected all the zips you want to flash, go to the option 'Order and flash selected' or if you want to add a zip from a custom location, choose the 'Add zip from another location option'
Once in the Order and flash menu, it is important that you set the order to flash in the proper order, when you are sure it is right, then click Flash (First time you use Goo Manager, it will prompt you that an OpenRecovery is needed, choose that you already have one)
After You click flash, the system will reboot to TWRP, flash your .zip files, and reboot back to android without any user interaction.
ZRAM
What is it?
Zram was developed so that systems with a limited amount of physical ram may allocate a percentage of that to a system swap device using compression. By compressing the data that is in the swap space you can fit more data into the same amount of ram. For example App#1 is consuming 500mb of a total 725mb ram, this leaves you with 225mb free. If you have Zram enabled then App#1 may begin to swap to the zram device, when doing this you will have an advantage, because any amount of data from App#1 that gets swapped out to Zram will be compressed meaning it is actually using less physical ram. So instead of only 225mb free of 725mb you may now end up with something more like 400mb free because data from App#1 is compressed in Zram, in this example thanks to compression you cut the 500mb memory usage of App#1 to 325mb. Zram should have a minimal impact on performance while giving you the benefit of fitting more data into the amount of physical ram your device has.
HOWTO
This kernel includes functional ZRAM support, however to take advantage of it you must enable it from userspace (Android). Cyanogen Mod has an option in Settings > Performance > Memory to enable Zram, however it doesn't properly work - I'm not sure exactly how it is coded in the cm sources, but when you enable zram it doesn't create the zram swap device like it should. To work around this I wrote the following flashable .zip files that contain a script to automatically create the zram swap device at boot, please download and flash the size you wish to allocate to zram:
Zram - 100MB (14% ram)
Zram - 150MB (20% ram)
Zram - 200MB (28% ram)
Zram - 250MB (34% ram)
Zram - 300MB (41% ram)
Zram - 350MB (~50% ram)
To Disable/Remove Zram
In the event that you want to disable Zram then just remove the file(s) at:
/system/etc/init.d/50zram-*
After the 50zram- file has been removed, just reboot your device and you will no longer have Zram enabled. To re-enable just reflash one of the above files.
ChangeLog:
2.0
Backport several bits mainline code from Linux 3.5 - including Security, ARM Libs, MM, and Android specifics
Zcache + Cleancache added
Ability to concatenate kernel cmdline configuration to Bootloader's cmdline without breaking compatibility with any bootloaders ( needed for zcache/cleancache to work)
Zram patches and updates
Clean up dmesg logs
Deadline IO Sched tweak (1:1 ratio writes/fifo) - VR remains default IOsched
CONFIG: turn off some verbose logging/debugging to reduce overhead, enabled Load Lens Correction Data to smooth out camera operation
TweakIO init script included by default to optimize disk read/write performance
Several other small patches and tweaks to underlying sources
1.6
Minor update adds support for USB-DVB devices, provided in two separate files for convenience to users who do not wish to use DVB-USB all that is needed is the kernel package, for users who wish to use DVB please flash both the USB-DVB and the Kernel pkgs. **Warning please only install the USB-DVB package if you have the matching kernel pkg installed. This may require you download firmware for your DVB device to work, also for the modules to load automatically you will need an init script that loads the needed modules for the device - reason I didn't do this is because there are 79 different modules for universal support, it would be crazy to load them all for everyone all the time, so if you want this feature please do some research on how to get the proper modules (and firmware if needed) to load properly automatically via init script. For help join #iconia-dev on irc.freenode.net and look for godmachine81.
1.5
Add support for USB devices [USB Audio, game controllers, mice, keyboards, etc]
Adjust GPU/CPU voltages and frequencies - should have impact on GPU performance
Interactive governor default again and backported from Nexus 7 / NVidia Grouper kernel v 3.1
1.3a
Script: toggle-ag now included in zip, installs to /system/xbin/toggle-ag
Default IO Scheduler V(R)
Default CPU Governor Lulzactive
1.2b
Bug Fix release for 1.2 - BFQ randomly causing "black screen" issue immediately after boot animation, preventing full boot - reboot resolved issue in most cases, but comes back at random on boot - Setting default I/O scheduler to NOOP until BFQ issue is resolved.
1.2
Autogroup per UID instead of TTY task (huge improvement to autogroup on android)
Set BFQ as default I/O Scheduler
Allocator: Switch to SLUB from SLAB
Remove verbose debugging symbols
Set proper firmware/calibration paths for WiFi in configuration
1.1
Add userspace support for undervolting
GPU OC (400mHZ) on CPU OC > 1000mHZ
Fix "Recent Apps" bug - The glitchy behavior when loading an app cached in the "Recent Apps" menu. Pointed out by DarkNight
Tune SmartassV2 for better behavior and ideal freq set at 760mHZ
Add the following CPU Governors: Lionheart, SavagedZen, Lazy, Scary, Intellidemand, LagFree, Wheatley
Deprecated the non-autogroup release also known as (default)
various other improvements to CPU, voltage, video.
1.0.1b
Add SmartAssv2 CPU Governor
Fix LOCALVERSION
1.0.1
Patched MMC_CAP_ERASE as precautionary to avoid hard brick
1.0-pre
V(R) I/O scheduler Added
SIO I/O scheduler Added
Zram sources backported from 3.0 resolved compile issue
Alpha (First public download)
Overclock added: Min Freq: 216 Max Freq: 1504
CPU Governors: Lulzactive, Ondemand, Interactive, Conservative, Userspace, Performance, Powersave
IO Schedulers: Noop, Deadline, CFQ, BFQ
Autogroup or Default Kernel available
Patch for Tiny HAL - resolves popping in audio on JB/ICS
Click to expand...
Click to collapse
To cut down on general discussion in this thread please note that I have been in the Freenode IRC Dev channel a lot lately. server: irc.freenode.net channel: #iconia-dev My IRC handle is godmachine81 Join me there for general discussion if you don't mind. Thanks!
If you would like to help out with the continuance of kernel development for your Acer Iconia Tab A500 please consider a small donation to help out with bills, baby formula, wipes, diapers, etc. All donations are very appreciated by my family and I! Thanks
Well,
I'm always looking to flash things. I suppose it doesn't include 3g and GPS for the 501?
Should be a simple merge to use ICS 501 source from Acer.
However, I'll throw in a flash just to check install. Will report back later. Supermarket trip first.
MD
EDIT: I am to assume this is for ICS. Also, I noticed in your install script, there is no provision to delete current module files. I would suspect this would cause an issue if you already have an OC/UV kernel with modified ko files?
Probably is best to modify the IS to delete current lib/module files, and replace them with the required ones.
Hi,
I flashed the kernel over cm10 preview with TWPR and it boots up fine.
I found one bug yet:
when selecting lagfree governor the tablet freezes and reboots.
Moscow Desire said:
Well,
I'm always looking to flash things. I suppose it doesn't include 3g and GPS for the 501?
Should be a simple merge to use ICS 501 source from Acer.
However, I'll throw in a flash just to check install. Will report back later. Supermarket trip first.
MD
Click to expand...
Click to collapse
PSensor3G the appropriate driver for what you are wanting? It isn't a default in the A500 config, but I can definitely recompile it with it turned on.
**Edit - I had already merged in the A501 code drop, so if those things are not working it should be as simple as altering the config. I build simdetect in static instead of a module - it was a new feature in the 501 code drop, if it has issues being built in statically please let me know, as far as gps goes, it is included and *should* work, however I have no way of testing these things first to make sure.
GPS should work, don't see why it wouldn't.
KennyWuLee said:
Hi,
I flashed the kernel over cm10 preview with TWPR and it boots up fine.
I found one bug yet:
when selecting lagfree governor the tablet freezes and reboots.
Click to expand...
Click to collapse
Interesting as that isn't happening with the A100. I'll check into it or maybe remove lagfree, it's kind of misleading anyway, because imho it produces more lag than any of the other governors..
linuxsociety said:
PSensor3G the appropriate driver for what you are wanting? It isn't a default in the A500 config, but I can definitely recompile it with it turned on.
**Edit - I had already merged in the A501 code drop, so if those things are not working it should be as simple as altering the config. I build simdetect in static instead of a module - it was a new feature in the 501 code drop, if it has issues being built in statically please let me know, as far as gps goes, it is included and *should* work, however I have no way of testing these things first to make sure.
GPS should work, don't see why it wouldn't.
Click to expand...
Click to collapse
Thanks Mate. Will check it out in a few hours. The issue with GPS, is 501 uses a different radio than the 500.
But I'll check it out as soon as I can. Thanks!
MD
Moscow Desire said:
Well,
I'm always looking to flash things. I suppose it doesn't include 3g and GPS for the 501?
Should be a simple merge to use ICS 501 source from Acer.
However, I'll throw in a flash just to check install. Will report back later. Supermarket trip first.
MD
EDIT: I am to assume this is for ICS. Also, I noticed in your install script, there is no provision to delete current module files. I would suspect this would cause an issue if you already have an OC/UV kernel with modified ko files?
Probably is best to modify the IS to delete current lib/module files, and replace them with the required ones.
Click to expand...
Click to collapse
The script will remove modules from system/lib/modules and replace them with 1 module which is the wifi module, everything else is built into this kernel, it WILL NOT cause an issue at all, when you reflash a different kernel it should overwrite the modules installed by mine. Aside from that nothing in the ramdisk will be touched. And this is for HC/ICS/JB, it should run on any of roms you have as this entire kernel is built static, except for the wifi module.
Moscow Desire said:
Thanks Mate. Will check it out in a few hours. The issue with GPS, is 501 uses a different radio than the 500.
But I'll check it out as soon as I can. Thanks!
MD
Click to expand...
Click to collapse
Recompiled with the Psensor3G support built in, you may download here and give it a test: https://github.com/downloads/godmac...ustom-Kernel/gm-a500-v1.5-alpha-3g-signed.zip
I would like to see extreme edition and yes lagfree makes it freeze, also smartassV2 made it freeze ones , I use SavagedZen and it is very smooth.
So cif and other are build in kernel.
civato said:
I would like to see extreme edition and yes lagfree makes it freeze, also smartassV2 made it freeze ones , I use SavagedZen and it is very smooth.
So cif and other are build in kernel.
Click to expand...
Click to collapse
Thanks for reporting, I will check into what the differences would be between how the A500 and A100 boards handle the cpufreq transistions between gov. Not sure why they are causing issues with A500 and not with A100/A200 since they are all tegra2 and the cpufreq drivers are all tuned for the same processor, that's a bit weird, but thanks for reporting they are having issues, I will take note of that with A500 and may remove them or may patch whatever is necessary causing the lockup on gov change. Thanks again
**edit: yes all the FS supports are built in - if you have need for them being modules due to problems being built in statically let me know and I can just rebuild them as .ko instead of static. - Not had issues with any of the SMB/CIFS connections with A100 and static CIFS. Also NTFS is built in for whoever might have a weird sd card that is formatted with ntfs instead of fat32, or if they need to mount NTFS partition in any other manor
**edit2: haven't built A500 Xtreme edition yet, A100/A200 are working with xtreme until 100% load is reached for a duration of around 2-3 minutes and then freq nose dives to 216-456 and never raises back, has to do with the voltages clocks in dvfs / tegra2_clocks It's on my todo list of things to fix, and if I get it fixed I'll compile for A500. Kinda doing the A500 work in the blind, but doing the best I can to not have the device present.
Gotta clear something, not smartass V2 made it freeze it is caused by switching from interacriveX to SavageZen.
civato said:
Gotta clear something, not smartass V2 made it freeze it is caused by switching from interacriveX to SavageZen.
Click to expand...
Click to collapse
Thanks, that makes more sense now, as I just added interactiveX into my sources today and I haven't fully tested it. That's why there isn't a new release to the A100/A200 guys yet and I have done a few more things also as tests. If interactiveX is an issue it can be removed, I can just build again out of a 1.3 / 1.4 tag and eliminate that issue. I will be testing on my a100 to try to reproduce the problem. appreciate the info
**Edit and yes I can reproduce that bug on my A100 - I greatly appreciate the info civato! It isn't just switching to smartassv2 from interactiveX it is when switching to any other governor from interactiveX - I will check the sources for how interactiveX is handling the handoff right now
**Here is what I have concluded on: interactiveX has a serious bug when switching to another governor, I have looked at the sources and tried to debug dmesg/logcat info while the switch occurs and can't come up with any relevant information needed to pin point what the exact cause is with interactiveX - I made a few modifications on how the governor gets disabled when switching to another governor - didn't help... Still happens. Good news is: The regular 'interactive' driver that we have is backported from the nv grouper 3.1 kernel and should be much better at powersave/performance ratio than the older 2.6.3x interactive governors we have been using. So what I am going to do for you guys is the same thing I'll do for the A100/A200 guys (which never had this problem because interactiveX was never released to their devices - A500 kernel got compiled before I have pushed anything upstream to github or made other flashables.) I am going to take out interactiveX completely, keep the backported interactive assuming that you guys aren't experiencing any issues with 'interactive', and we'll make the release 1.5. Hopefully that will clear up any bugs you may have with this alpha test and people can begin to use this as a daily driver on their tabs. I appreciate all the help you guys have given me with this alpha release, not only have you helped me to find a bug with the A500 but also with A200/A100 before I released the downloads of 1.5. Thanks guys!
ntfs usb stick is not recognized , if I switch back to ezterry's oc kernel it works again. Even adding ufsd.ko acer ntfs module doesn't work.
civato said:
ntfs usb stick is not recognized , if I switch back to ezterry's oc kernel it works again. Even adding ufsd.ko acer ntfs module doesn't work.
Click to expand...
Click to collapse
Of course that wouldn't work since the ntfs module is built in (would conflict). I will make it module and recompile, need to see what is in the user land that depends on ntfs being a module and not static.
Civato: see how this works please.. InteractiveX has been removed, and NTFS is a module. thanks
download: https://github.com/downloads/godmac...Custom-Kernel/gm-a500-v1.5-alpha-2-signed.zip
I did not add the ufsd.ko to the modules. If you could tell me if the mainline ntfs.ko is not working, could you get me dmesg output on the ufsd.ko when trying to load it. Thanks in advance!
linuxsociety said:
Civato: see how this works please.. InteractiveX has been removed, and NTFS is a module. thanks
download: https://github.com/downloads/godmac...Custom-Kernel/gm-a500-v1.5-alpha-2-signed.zip
I did not add the ufsd.ko to the modules. If you could tell me if the mainline ntfs.ko is not working, could you get me dmesg output on the ufsd.ko when trying to load it. Thanks in advance!
Click to expand...
Click to collapse
No , no luck , ntfs is not working , I did 2 tests . One without modding the ramdisk and one where I added the following line "insmod system/lib/modules/ntfs.ko" .
Did you try with the ufsd.ko module that comes with the acer A500 stock kernel?
If you download the kernel from my flexreaper thread , see my sig you can find it there.
civato said:
No , no luck , ntfs is not working , I did 2 tests . One without modding the ramdisk and one where I added the following line "insmod system/lib/modules/ntfs.ko" .
Did you try with the ufsd.ko module that comes with the acer A500 stock kernel?
Click to expand...
Click to collapse
if you have that handy can u stick it in /system/lib/modules and reboot to see if it loads, not sure why there is a problem as i have module support for other versions enabled.
Civato: not exactly sure why this would be any different if you have the same .ko file and have already placed it in system/lib/modules/ and rebooted, but here is a download that contains the ntfs.ko and ufsd.ko in the modules if you don't mind testing it:
https://github.com/downloads/godmac...Custom-Kernel/gm-a500-v1.5-alpha-3-signed.zip
Just an initial look see. 3g and GPS work for the 501.
A little sluggish on first boot for a minute, but settled down. Will take a couple days to do battery rundown, and to check on 3g screen freeze and SOD. These issues haunted the 501 when it came to UV kernels. It's a lot less tolerant to UV than the 500 due to the 3g.
MD
linuxsociety said:
Civato: not exactly sure why this would be any different if you have the same .ko file and have already placed it in system/lib/modules/ and rebooted, but here is a download that contains the ntfs.ko and ufsd.ko in the modules if you don't mind testing it:
https://github.com/downloads/godmac...Custom-Kernel/gm-a500-v1.5-alpha-3-signed.zip
Click to expand...
Click to collapse
sorry , still no go
This custom kernel is base on diego-ch's TWRP kernel.
I call it CoCore.
( Responsibility )
I'M IN NO WAY RESPONSIBLE OF ANY DAMAGE CAUSED BY USING THIS CUSTOM KERNEL.
( Compatibility )
This kernel works well on i9070.
I am sorry that it causes high cpu load on i9070P!
( What is needed )
* An I9070 (Andorid 2.3.6)
* Some Android experience
* Know some knowledge of how to use Android Terminal
* More patience
( Features )
TWRP Recovery 2.2.1
28 CPU Governers
8 I/O Schedulers
IO Unlocked (increased a bit speed)
Init.d Script
Custom Bootanimation
Deeper Sleep Mode
zRAM, SWAP Supported
NTFS(Read Only)
CIFS
ARM ThumbEE
ARM VFP with neon
Optimized RWSEM Algorithm
Mali GPU Tweakes/Controls
LZO Kernel Compression ( for faster boot )
Removed Useless Drivers ( for faster boot )
SLUB Memory Allocator
Automatic readahead cache size
Audio Boost*
Linaro GCC Toolchain
And many miscellaneous tweaks, it's hard to make a list for them.
Maybe i also forgot them.
A ton of new features in my updates,please Check the updated version.( See below )
( Detailed explanation )
CPU Governers Supported:
Code:
Performance, OnDemand(default), Lionheart, Powersave, Userspace,
Conservation, OndemandX, SmartassV2, Interactive, Scary, Sakuractive,
PegasusQ, Intellidemand, Lazy, Wheatley, HotPlug,
SmartAss, LagFree, BrazilianWax, InteractiveX, MinMax, SavagedZen,
Aggressive, AggressiveX, Gallimaufry, GallimaufryX, AbyssPlug, Skywalker
* To get stable scores, please use Performance to run benchmarks.
* For daily using, i recommend PegasusQ.
* Please test the governors by yourself.
* And the PegasusQ will hotplug the second cpu when screen turns off,that might cause music skip when system load is heavy.
* If unsure,please use ondemand(default)
IO Schedulers Supported:
Code:
NOOP, Deadline, CFQ, BFQ(default), SIO, VR, anticipatory, ZEN
* To get more information about governers/io schedulers, here:
http://forum.xda-developers.com/showthread.php?t=1369817
* For daily using, i recommend SIO/BFQ/ZEN
* Please choose a best io scheduler by yourself.
Init.d Script:
* Please make sure there is a latest busybox in your system.I found that init.d didn't work properly on some devices which have old version busybox.
* The init.d folder (/system/etc/init.d) must have 0755 permissions.
* If the scripts dont have execution permissions,it wont be execute automatically.
Custom Bootanimation:
* Please put the bootanimation.zip in /system/media with right permissions(0644).
* If there isn't any custom bootanimation, kernel will load Samsung official bootanimation.
DeepSleep Mode:
* Default mode is State4, i changed it to State5. Increased standby life time.
* If you use a hotplug governor,it might be unstable when you use the deepest sleep mode.
* Some users reported that ondemand works well with deepest sleep mode.
* If you mind the standby time of the phone,please give it a try.
* You can get information about CPU sleep states:
Code:
cat /d/cpuidle/stats
* To change the allowed deepest sleep mode: (e.g. Allow State6)
Code:
#echo 6 > /d/cpuidle/deepest_state
zRAM & SWAP:
* zRAM must be enabled by script/command.
Code:
mkswap /dev/block/zram0
swapon /dev/block/zram0
* SWAP must use with a SWAP partition in sdcard.
Code:
mkswap /dev/block/mmcblk1p2
swapon /dev/block/mmcblk1p2
* Because we have a large memory, the zRAM/SWAP is low activity.
* Some users said that zRAM/SWAP wont help the performance of games,they might drop more battery.
NTFS:
* Need a binary called "ntfs-3g" to read/write ntfs sdcard. Built-in NTFS feature only can read.
* Stock Android 2.3 cannot mount NTFS sdcard automatically.
Mali GPU:
* Allowed larger memory.
* Allowed larger OS memory for buffer. ( 6m -> 10m )
* L2 cache max reads tweakable
* Enabled some features in Makefile.
* Disable a big debugging checking
Audio Tweaks:
* Enabled directly rendering
* Enabled 32k_clk ( a feature of AB8500 )
* Volume Boost! ( v3.6-3.8rc,optional in v4.0 )
* Dynamic Range Enhanced! ( v3.6-3.8rc,optional in v4.0 )
( Installation )
Method 1
1. Flash the kernel which has TWRP via Odin. You can flash diego-ch's TWRP kernel, or flash "GT-I9070-Kernel-CoCore.tar.md5" in attachments.
Here diego-ch's TWRP kernel: http://forum.xda-developers.com/showthread.php?t=1873119
( flash custom kernel will increase binary counter!! )
2. Run Odin, Put the md5 files in PDA, Pit files doesn't need.
3. Only check "Auto Reboot" and "F.Reset Time"
4. Click Start to flash, wait for phone reboot.
5. Boot into TWRP, Tap Install, Select i9070_kernel_CoCore_TWRP.zip, Flash it.
And, if you have TWRP kernel already, flash the zip via TWRP directly.
Method 2 (Experienced users only)
This method will not increased binary counter, but ROOT permission is needed.
1. Get kernel.bin.md5 from i9070_kernel_CoCore_TWRP.zip
2. Put kernel.bin.md5 in sdcard
3. Run your favourite terminal app, type these codes
Code:
$su
#dd if=/sdcard/kernel.bin.md5 of=/dev/block/mmcblk0p15
4. Reboot
If you typed a wrong patition number, perhaps it will brick your phone!!!
Think twice before you hit Enter.
( Updates )
01/03/2013 Update: CoCore v4.1
Hmm,This is BETA version.
Block: Added ZEN io scheduler (Bases on noop,deadline and sio)
CPUFreq: Added Skywalker governor (FreqTable tweaked)
Mali: Increased the default l2 max reads 28kb -> 48kb
Mali: Disabled a big debugging tracking
RCU: jRCU -> TreeRCU (For better CPU/RAM throughput!)
NWFPE: Enabled ex-nwfpe
Please remove the mali l2 init.d script tweaks,guys
CoCore-mini 1.4 is at #842 post.
12/23/2012 Update: CoCore v4.0
Mali: Driver updated, re-tweak the parameters
ASoC/ab8500: Driver updated
NET/conf: Enable HSTCP(high-speed tcp),Westwood+,Veno,Hybla,YeAh configs. Cubic(stock) conf is default.
Block: Set BFQ as default io scheduler
Block: Automatic readahead cache size limit (depend on the size of your sdcard)
Block: Re-tweak SIO/VR/Deadline for flash nand devices
MM: SLQB -> SLUB
SCHED: Remove fair_sleepers, revert the parameters back to stock
MISC: Remove a ton of juck!!!, Highest complie optimization level, boot faster(compare to old versions,8800ms~9100ms now)
PS.
The cifs.ko and smbfs.ko have been put out ramdisk.They will be installed to /system/lib/modules (for faster boot)
And i forgot the changes,see my source on my github.There is a changelog.
To change the net configs:
Create a new init.d script:
Change the 'highspeed' to other confs.
Use `sysctl -a | grep cubic` to know what conf you can change to.
`ping` is the simple way to test whether the conf you use fix you or not.
For me,i am using highspeed now. If unsure,keep default(Cubic)
Code:
#!/system/bin/sh
sysctl -w net.ipv4.tcp_congestion_control=highspeed;
I have set the mali l2 cache back to 28kb by default.
To set it to 48kb(max).Use an init.d script.
Code:
#!/system/bin/sh
echo 0x00000030 > /sys/module/mali/parameters/mali_l2_max_reads;
The game fps should be improved a bit,
The values you `echo` must be HEX
BUT,if it doesnt or feels lagged,remove this script.
For me,48kb works well.
The volume++ version is volume boosted. (Someone requires this)
The lagged sound will be increased,too!
12/09/2012 Update: CoCore v3.9Beta8
This is BETA VERSION!!
CpuFreq: Added AbyssPlug (Base on OnDemand+Hotplug)
Mali: Increased the priority of OSMEM (5 -> 1) (See the dmesg)
Mali: Unlocked mali_l2_max _reads in sysfs (You can tweak this parameter now) (Dont set over 48)
(If you find a good value,please share with us!)
Mali: Misc tweaks
Kernel/hz: Fix the defconfig issue (Thanks! @hafidzduddin)
Net/SCH: Reverted back to stock (To experiment the latency of enabling mobile data)
Makefile: More optimization flags
PS.
The Mali parameters are in /sys/module/mali/parameters/
Use scripts/terminal to set them.
12/07/2012 Update: CoCore v3.9Beta3
This is BETA VERSION!
J4FS: J4FS driver works! Bugfree now!
CpuIdle: Revert the ApDeepSleep to stock,and added ApSleep++ custom state
(ApSleep++ and ApDeepSleep only works with non-hotplug governors,e.g: ondemand)
(New sleep state is disabled by default.You can enable them by yourself,if you prefer longer battery.)
CpuFreq: Added Aggressive, AggressiveX, Gallimaufry and GallimaufryX (These are optimazed version of Conservation/OnDemand)
CpuFreq: Fix a hotplug bug of PegasusQ
FS/SYNC: Removed Dynamic Fsync Control,added Ezekeel FSync Control
ASoc/ux500: Raise the pcm buffer size to MAX
NET/Scheduler: Re-tweaked, to experiment the latency of mobile data
Unknown: Fix the touchscreen sudden lost response (According to my using these days,it has been happended again!)
PS.
The FSYNC is enabled by default.Disabling FSYNC can improve IO performance.
In AnTuTu IO Test: Enabled: 350-400 Disable: 540-560
But disabling FSYNC can cause losing data!! It is at your own risk!!
Check the TIPS part to get how to disable it.
12/02/2012 Update: CoCore v3.9Beta1
This is BETA version, at #344 post.
12/02/2012 Update: CoCore v3.8.6rc
ASoC/ab8500: Use another gain mode in order to fix the terrible audio issue.
Sched: Reduce the latency of CFS Scheduler
PS.
The dyn_fsync will casue screen lag when you turn off the screen and there is a heavy io load.
If there isnt any heavy io load,it goes normally.
If you hate this,see the Tips part (#2 post) to get HOW TO disable dyn_fsync.
12/01/2012 Update: CoCore v3.8rc
CpuFreq: Tweaked the freq table of PegasusQ
Blcok: Updated BFQv1 -> BFQr2-1,Fixed the latency of BFQ issue. (BFQv5 is incompatible with Linux 2.6.35)
Sched: Tuned the patamerters of CFS scheduler (Use ThunderBolt's)
Sched_features: Enable Fair_Sleepers,Disable HRTICK
Mali: L2 cache max reads -> 48kb,Fix the mem leak issue.
NET: Set WestWood+ as default CONFIG
fs/sync: Added Dynamic FSync Control
(Improve IO performance greatly.When the screen is on,fsync is off.When the screen is off,fsync is on.)
ASoc/ab8500: Fixed the FMRadio volume balance issue. (Thanks @shut_down)
MISC: Removed a TON of JUNK!!!,And added a workaround to flash kernel quickly.
PS.
The benchmark screenshot is in the #304 post.
How to disable DYN_FSYNC? Check the TIPS part. (#2 post)
What is the flash kernel workaround?
In TWRP,use the Terminal fucntion,SELECT the folderr which has a kernel named "kernel.bin.md5",Start the Terminal,
And just type "fkernel"(No quotes),it will flash the kernel.bin.md5 automatically.
And i found that V(R) is a good io scheduler too.
The BFS CPU Scheduler is incompatible with our kernel.I am about to introduce this in the JellyBean kernel.
11/25/2012 Update: CoCore v3.7
RamDisk/TWRP: Added a temporary workaround to mount emmc(internal memory)
Block: SIO io scheduler updated. (2012 version) (Thanks @hafidzduddin)
CpuFreq: Fixed the name issues of governors (SetCPU cannot tune the parameters of governors, now fixed)
CpuFreq: Added LagFree, BrazilianWax, InteractiveX, MinMax and SavagedZen governors
(New governors havent been tested fully!If unsure, PegasusQ is recommended.)
I have tweaked the freq tables of most governors.
Mali: L2 cache max reads: 48kb -> 44kb , FPS increases (1-8fps) in simple scenes.
(Reserved 4kb for buffering, perhaps it will fix the sudden lag in games)
Sched: Fix SAMSUNG source code errors
Sched: Added AutoGroup Scheduler v4
Net/Sched: Re-changed the scheduler of net
android/logger: Reduced the logger size
ASoc/ab8500: Headset Volume adjusted, Dynamic Range enhanced! (i recommend using PowerAMP/RockBox)
PM(PowerManagement): Added a new feature, Operating Performance Point (OPP) Layer library
MISC: Disabled something useless(for faster boot),
Added GenLock API, MM&DMA hacked,
Added a new feature DM_CACHE,
more GCC optimizations in MakeFile
PS.
Dont use high volume to listen to music over 1 hour, it it not good for your ears.
Just reduce some volume.And i havent gained the speaker volume, dont worry.
The TWRP has some grapics issues when entering the emmc folder(it happends soemtimes, not always),
if it happended just tap back button and enter again.
(Some guys required this becaues them havent an external sdcard! )
And about the SetCPU issues. If you cannot tweak the parameters of some governors,
go to /sys/devices/system/cpu/cpufreq/(governor_name)/, you can tweak them here.
Make a script to tweak them quickly.
I think there is no point in updating to 2.6.35.14, because it updates a lot of useless drivers.
11/18/2012 Update: CoCore v3.6
Block: Added anticipatory io scheduler
CpuFreq: Added HotPlug and SmartAss governors
CpuFreq: Tweaked SmartAss and SmartAssV2 freqtable in order to match our device
Kernel: Adjusted many parameters
Lernel: Built with optimized compiler options
Sched: Added Fair_Sleepers feature,
disabled Gentle_Fair_Sleepers feature,
enabled HRTICK feature
MM: Increased Min readahead 16k -> 32k
JHash: Added JHash v3 speed tweak
Mali: Use another timestamp mode
ab8500/asoc: Headset volume gain boosted! (Sounds perfectly.My ears will be satisfied with i9070+Edifier H850. )
11/11/2012 Update: CoCore v3.5
Kernel: Revert LZO compression ( LZO is the fastest, but it makes kernel largest )
Kernel: Removed some bad tweaks
Kernel: Compile with Linaro GCC 4.4.5 ( The final version of Linaro GCC 4.4 series )
Ramdisk: For power saving, cifs.ko and smbfs.ko will not be loaded by default
Block: SIO, V(R) and Deadline io scheduler tweaked ( Better IO throughput )
FS: EXT2, EXT3 and EXT4 speed up
JHash: Updated to JHash v3
Sched: Enabled HRTICK
RCU: Added and use JRCU
TCP: Change TCP_Config to VENO ( Faster on wireless network ), and enabled HSTCP ( High-speed TCP )
NET: Net schedulers tweaked, in order to work with VENO config
NET: Introduce u64_stats_sync infrastructure
MM: Added vzalloc() and vzalloc_node() helpers
MM: Added and use SLQB memory allocator
MM: Added fudgeswap
SYNC: Added synchronization framework
BCM4330(WLAN): Enabled PM_FAST mode in standby
CGroup: Enabled FREEZER feature
PS. And many misc tweaks.
And i added some modules in /lib.
I tweaked mali parameters again (MEM -> 48MB OSMEM -> 8MB).
Because i find that when the memory is too big, it feels lag.
According to my test, in simple scence, fps increases (1-2fps); in complex scence, fps reduces (1-2fps).
But UI is faster in low frequencies! ( i often use signle core at 800Mhz )
10/28/2012 Update: CoCore v3.1
Mali: Fixed the fps issue.
RCU: Use Tiny-PREEMPT RCU (To reduce memory footprint, and feel more smooth)
Kernel: Removed some bad tweaks.
10/28/2012 Update: CoCore v3.0
Bug Fixed: Rolled back to old ramdisk (TWRP 2.2.1) in order to fix wifi hotspot issue.
MM: Increased sdcard max read ahead to 2048kb. (It's nice to work with my class-4 sdcard)
FS: Added AUFS,AutoFS4 support.
FS: Improved a bit perfromance of ext4.
RCU: Added Tiny-PREEMPT RCU.
RCU: Boosted. (Prefered real-time response)
CFS: Boosted.
Log: Reduced the log buffer size.
TCP: Enabled some features, optimized.
Net: Removed some schedulers.
Kernel: Removed some bad tweaks.
CGroup: Boosted.
CGroup: Added timer slack subsystem feature.
CpuIdle: ApDeepSleep(State6) worked! (Experimental,enable by yourself. Default is State5.)
LIB/CRC32: Added optimized CRC32 algorithm.
And lots of misc tweaks.
10/23/2012 Experimental Update
CpuIdle: State6( ApDeepSleep ) works!! Added "ARM_OFF" to State5!!
10/21/2012 Small Update
Update: TWRP 2.3.1.1 ( Thanks! @diego-ch )
Mali: Increase OS memory for buffer ( 8M -> 16M )
init.d: Make it as service
LIB: Add memcopy macoros and functions
ARM: Add optimized AES and SHA1 routines
ARM: Add optimized SHA1 implementations ( boot faster )
ARM: Enable ICache feature
ARM: Enable BPredict feature
ARM: VFP hard+neon float flag
ARM: JIT network Compiler ( experimental )
CPUIDLE: Add a custom sleep state ( state6,experimental )
Kernel: Use LZMA compresstion ( boot faster )
Kernel: Add XZ compresstion support
CFS: Tweaked
Revert: Gentle_Fair_Sleepers ( for smooth UI )
Compatible with JetMOD now
( Old versions downloads )
*** These have j4fs bug! ***
CoCore v3.1 http://d-h.st/1Q5
CoCore v3.5 http://d-h.st/qKY
CoCore v3.6 http://d-h.st/wvi
CoCore v3.7 http://d-h.st/48k
CoCore v3.8rc http://d-h.st/Eui
CoCore v3.8.6rc http://d-h.st/XEf
( Thanks )
Thanks to everyone who helped me.
Special Thanks:
@diego-ch
@varun.chitre15
@hafidzduddin
@shut_down
@hackbob
@Adi_Pat
@JackStow
The source code is available on my github now.
If there are any issues, please report.
And if you like my work, Press THANKS Button Please. It encourages me.
( Tips )
1. For performance, please remove libGLES_android.so in /system/lib/egl to disable weak CPU rendering.
2. Flash your kernel quickly via Ternimal.
Creat a new file (named `ddkernel`) with RootExplorer.
Write these codes:
Code:
#!/system/bin/sh
source=`busybox realpath kernel.bin.md5`;
echo "DD: Flashing $source";
busybox dd if=kernel.bin.md5 of=/dev/block/mmcblk0p15;
Save , and set right permissions (0777), put it in /system/xbin
Now, you can `cd` to the folder where stores `kernel.bin.md5`, and use `ddkernel` command to flash kernel.
3. Mount your NTFS sdcard
Firstly, you need a binary called "ntfs-3g". Put this binary in /system/xbin
Open your terminal app.
Code:
mkdir sdcard-ntfs
ntfs-3g /dev/block/mmcblk1p1 /sdcard-ntfs
4. My sysctl.conf
Code:
vm.dirty_expire_centisecs=3000
vm.dirty_writeback_centisecs=500
vm.dirty_background_ratio=40
vm.dirty_ratio=80
vm.vfs_cache_pressure=1
vm.highmem_is_dirtyable=1
To use this file,you must have installed busybox,and put this file in /system/etc
Go to /system/etc/init.d/,create a new file(Any name you like),write this(Remember to set right permissions(rwxrwxrwx) of new file):
Code:
#!/system/bin/sh
busybox sysctl -p;
Now your sysctl.conf will be loaded automatically in every boot.
5. How to disable Dynamic FSync Control? (CoCore v3.8-v3.8.6 ONLY)
In your /system/etc/init.d/,create a new file
Code:
#!/system/bin/sh
echo 0 > /sys/kernel/dyn_fsync/Dyn_fsync_active;
Now,this function will be disabled in every boot.
6. How to Control the FSYNC? (CoCore v3.9+)
In your /system/etc/init.d/,create a new file(any name you like)
Code:
#!/system/bin/sh
# Disable FSYNC
echo 0 > /sys/class/misc/fsynccontrol/fsync_enabled;
# Enable FSYNC
#echo 1 > /sys/class/misc/fsynccontrol/fsync_enabled;
Or you can control the FSYNC via terminal realtime.
Good work!
Just I have a request
Can you try this on JetMOD and tell me if Power menu options of Reboot, and Reboot recovery works?
I am planning to ship this kernel in next update of JetMOD
varun.chitre15 said:
Good work!
Just I have a request
Can you try this on JetMOD and tell me if Power menu options of Reboot, and Reboot recovery works?
I am planning to ship this kernel in next update of JetMOD
Click to expand...
Click to collapse
ok, i will try today.
Sent from my GT-I9070 using xda premium
Looks nice. Got the I9070 today. Will test it out soon.
Btw, which users are working on CM ? I would like to contribute. I have already forked hackbob's source. Will look into it sometime later.
Edit : Removed. Double post.
Shaaan said:
Looks nice. Got the I9070 today. Will test it out soon.
Btw, which users are working on CM ? I would like to contribute. I have already forked hackbob's source. Will look into it sometime later.
Click to expand...
Click to collapse
If i got it right, @diego-ch @hackbob @Adi_Pat are working on CM.
cocafe said:
If i got it right, @diego-ch @hackbob @Adi_Pat are working on CM.
Click to expand...
Click to collapse
Thanks.
Is there any known method to reset the binary counter ? Does triangle away work ?
Shaaan said:
Thanks.
Is there any known method to reset the binary counter ? Does triangle away work ?
Click to expand...
Click to collapse
No, there isn't. Triangle Away only works on ICS/JB
When get JB source code, we can have a try.
Sent from my GT-I9070 using xda premium
tnx allot dude, i`m sad that i am at the office and can`t test your kernel :|
I have made CWM. Should i include it in the boot image and flash ?
I dont see any zip which includes the .img format..
after flashing it by TWRP, it stuck on boot logo :S
i was using jetmob rom before, and need to restore the backup.. i'v tries twice, and same boot logo stuck..
JackStow said:
after flashing it by TWRP, it stuck on boot logo :S
i was using jetmob rom before, and need to restore the backup.. i'v tries twice, and same boot logo stuck..
Click to expand...
Click to collapse
Yes this is incompatible for JetMOD.
Wait for next update of JetMOD
Shaaan said:
I have made CWM. Should i include it in the boot image and flash ?
I dont see any zip which includes the .img format..
Click to expand...
Click to collapse
Great, You have made CWM for i9070?
i9070 kernel format is zImage, not boot.img.
You can fork the kernel repo of diego, replace the recovery files, and complie kernel.
Put it in dev thread.
We will test it.
Sent from my GT-I9070 using xda premium
JackStow said:
after flashing it by TWRP, it stuck on boot logo :S
i was using jetmob rom before, and need to restore the backup.. i'v tries twice, and same boot logo stuck..
Click to expand...
Click to collapse
Try to delete/rename the init.d folder in /system/etc.
Some scripts of JetMOD stuck booting.
Please report me if it works.
Sent from my GT-I9070 using xda premium
i have flashed your kernel and i am happy to see that drop of fps is gone, the rest is working splendit as well, tnx again
installing these kernel?
hi cocafe.
your custom bootanimation work?
in my kernel custom bootanimation loops never stop.
i use diego-ch ramdisk
im a user of galaxy ace 2
What is that CPU/b2r2 rendering?
Is that audio tweak included without flashing " optional scripts? If I do not want to enable "Deepest Sleep" and "Mount" from optional scripts zip, is it enough to delete them from the zip?
hafidzduddin said:
hi cocafe.
your custom bootanimation work?
in my kernel custom bootanimation loops never stop.
i use diego-ch ramdisk
im a user of galaxy ace 2
Click to expand...
Click to collapse
Yes, several weeks ago, i fixed that loop bug.
You can check the ramdisk of my kernel. There is a small workaround in post_boot.sh.
Here the method:
in init.ux500.post_boot.sh, write these code
# fix custom bootanimation loop
sleep 4;
bootani=`ps | grep bootanimation | cut -b 10-16`;
kill $bootani;
Sent from my GT-I9070 using xda premium
I have recently implemented Samsung's Flash Friendly File System (F2FS) into my kernel for the Z1 (Pimped Kernel).
In order to see what this file system really brings to the table I decided to run some benchmarks, in a controlled environment, trying to eliminate as many fluctuation factors as possible.
The methodology is described below.
For this first round, only the /data & /cache partitions were formatted as f2fs, in order to see what kind of improvement we would be able to get out of formatting /system as f2fs too later on.
Benchmarks Used
CF-Bench
0xBenchmark
Androbench
RL Bench
AnTuTu
Quadrant
Methodology
Fully wiped and fresh install of the 26/03 CM nightly
PA Gapps installed (pa_gapps-modular-full-4.4.2-20140301-signed) & updated
Additionnal apps installed:
Pimp My Z1
Disk Info
Benchmark apps
No other app active in the background during benchmarks
Fresh reboot before running the batch of benchmarks
Airplane mode enabled (except for quadrant which requires an internet connection to show the results)
Order of the benchmarks:
RL Bench
Androbench
CF Bench
5 minutes pause with powersave governor to cool down the device
0xBenchmark
AnTuTu
Quadrant
Pimp My Z1 Settings:
CPU Governor: performance (in order to eliminate differences due to frequency scaling, as this governor just stays at max freq all the time).
GPU Governor: performance
GPU Max Freq: 600MHz
Intelliplug: disabled
Dynamic Fsync: enabled
I/O Scheduler: FIOPS for both emmc & sdcard
Readahead: 1024kb for both emmc & sdcard
Entropy contribution: disabled for both emmc & sdcard
PowerSuspend: disabled
KSM: enabled, 512 pages-to-scan, 500ms timer
Thermal throttling: disabled
Disk Usage
One thing I noted is that F2FS has a much higher usage of the /cache partition than ext4, which is to be expected coming from a log-based file system such as F2FS.
As you can see in the screenshots below (ext4 on the left & f2fs on the right), only 4mb out of the 192mb /cache partition is used by ext4, while f2fs uses 68% of that same partition with 114mb used.
Another thing to note is that under f2fs, the reported size of the /cache partition is apparently 2mb larger than on ext4, with 198mb.
EXT4 / F2FS
{
"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"
}
1. RL Bench
RL Bench is an SQLite benchmark, it only tests database read/writes with various SQL commands in various amounts.
As we can see in the results below, f2fs trumps ext4 with an overall time of only 14.417 seconds versus the 21.403 seconds of the latter.
EXT4
F2FS
2. Androbench
Androbench is supposedly an all-around I/O benchmark.
On this one, the results were so incredibly appart that I think we can safely assume a big part of these results are due to poor coding on the benchmark side.
Still, if we believe the results, f2fs provides slightly slower reads (51mbps vs 66mbps) but over 120x faster sequential writes & 300x faster random write speeds!
I had to reboot and run it a second time to make sure this wasn't an error, but the second run results were even a bit better, as you can see in the screenshots below.
EXT4
F2FS
1st Run
2nd Run
3. CF-Bench
CF-Bench is an overall benchmark by Chainfire which measure everything except graphics.
Here again, f2fs is the winner with a better overall score.
That being said, the native writes are a little inferior to the ext4 native write score with 529 vs 535, but has a higher native read score with 996 vs 913.
EXT4
F2FS
4. 0xBenchmark
This reliable open-source benchmark by 0xlab is an overall benchmark used by the Linaro android team during their famous toolchain demonstration.
It has the advantage to output the results in text, xml and json, which you can download below.
On the SunSpider javascript benchmark run, f2fs gets a better score with 744.5ms vs 792.0ms for ext4.
Strangely, on Linpack, ext4 gets a better score with 156mflops/s vs 122mflops/s for f2fs.
On the other hand, Scimark2 reports better mflops/s scores for f2fs in all 6 of its tests, as seen below:
EXT4 Scimark2
Results in Mflops/s
Code:
Scimark2
------------------------------------------------------------
Composite:
191.7992650532917
Fast Fourier Transform:
121.33004358991259
Jacobi Successive Over-relaxation:
431.85904395507
Monte Carlo integration:
10.79962368351458
Sparse matrix multiply:
132.34248411160723
dense LU matrix factorization:
262.6651299263541
F2FS Scimark2
Results in Mflops/s
Code:
Scimark2
------------------------------------------------------------
Composite:
195.01022812596952
Fast Fourier Transform:
125.55719947408143
Jacobi Successive Over-relaxation:
436.3575761486842
Monte Carlo integration:
11.192272530363814
Sparse matrix multiply:
138.67117163604067
dense LU matrix factorization:
263.27292084067756
EXT4 full results: http://d-h.st/iER
F2FS full results: http://d-h.st/iOf
5. AnTuTu Benchmark
No need for an introduction, it's probably the most popular benchmark these days.
On this one again, f2fs is the clear winner with a difference of over 1200 points.
EXT4
F2FS
6. Quadrant Benchmark
Another overall mainstream type of benchmark.
F2FS wins on this one too, with an advantage of 1100+ points.
EXT4 / F2FS
Conclusion, F2FS actually is an improvement over Ext4 for flash devices, and considering its very young age it will most likely be improved over time.
Nice review @Androguide.fr !
Looking forward to see F2FS being adopted.
How are you getting 600 Mhz on the GPU?
I have
PHP:
[email protected]:/sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0 # cat gpu_available_frequencies
450000000 389000000 320000000 200000000 27000000 320000000 320000000 200000000 200000000
[email protected]:/sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0 # echo 600000000 > max_gpuclk
[email protected]:/sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0 # cat gpu_available_frequencies
450000000 389000000 320000000 200000000 27000000 320000000 320000000 200000000 20000000
[email protected]:/sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0 # cat max_gpuclk
450000000
And its still showing 450 on Pimp and Trickster
Poesini said:
How are you getting 600 Mhz on the GPU?
I have
PHP:
[email protected]:/sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0 # cat gpu_available_frequencies
450000000 389000000 320000000 200000000 27000000 320000000 320000000 200000000 200000000
[email protected]:/sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0 # echo 600000000 > max_gpuclk
[email protected]:/sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0 # cat gpu_available_frequencies
450000000 389000000 320000000 200000000 27000000 320000000 320000000 200000000 20000000
[email protected]:/sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0 # cat max_gpuclk
450000000
And its still showing 450 on Pimp and Trickster
Click to expand...
Click to collapse
You're probably just not running Pimped Kernel, otherwise you'd have 389 & 600 too.
EDIT: weird, you do have 389, but not 600.
I am running Pimped Kernel and I have reflashed it also (I have /cache and /data with f2fs)
Poesini said:
I am running Pimped Kernel and I have reflashed it also (I have /cache and /data with f2fs)
Click to expand...
Click to collapse
That's really weird. Which rom are you running ?
I'm also running the last F2FS build and here's my output :
Code:
cat /sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0/gpu_available_frequencies
600000000 533333000 487500000 450000000 389000000 320000000 320000000 200000000 200000000
You have some messed-up steps, too, the 270MHz shouldn't be there, and certainly not after a 320MHz step, that's really weird.
I am using Omni 3/15 lol
Entropy512 said:
Some more information:
Beyond the anecdotal evidence above that f2fs has data integrity issues, I can now personally confirm that f2fs is far poorer than ext4 at data integrity.
In the process of bringing up omni, a bug was causing frequent reboots of the device during bootup. This caused a large number of "ghost files" on the filesystem. They would appear if you did "ls *" but spit out an error that they didn't exist. Not good when that happens on your dalvik cache.
These files couldn't be created, nor could their directory entries be deleted. An attempt to run fsck.f2fs would just crash with an assertion error. To fix the issue I had to completely reformat the /data partition. (Not just a typical wipe/factory reset which leaves the "sdcard" contents in /data/media)
With ext4, those files would have been deletable and fsck would've actually done something.
Click to expand...
Click to collapse
That's pretty worrisome.
Poesini said:
I am using Omni 3/15 lol
Click to expand...
Click to collapse
I made some changes to the GPU frequency table to try and fix that for next build, although I really don't see what caused this on your device.
Please report back after next build if the issue persists.
Let's take this discussion back to the kernel thread though, please.
Very thorough analysis, thanks! Just suggested it to be featured on the XDA Portal.
I would like to point out that CF-Bench does not take disk reads and writes into account for its final device score for one very important reason:
Android's base Linux kernel (at least when I wrote CF-Bench) does not respect the flag to turn off low-level buffering. As such, the measured results do not reflect actual performance, and it is unknowable how big the unreliability of the results is.
That being said, if one option benchmarks consistently and significantly faster than the other, on the same device with the same setup, then it is likely to actually be faster - you just don't know how reliable the produced benchmark index is, and I certainly wouldn't compare them to scores from other devices.
Chainfire said:
I would like to point out that CF-Bench does not take disk reads and writes into account for its final device score for one very important reason:
Android's base Linux kernel (at least when I wrote CF-Bench) does not respect the flag to turn off low-level buffering. As such, the measured results do not reflect actual performance, and it is unknowable how big the unreliability of the results is.
That being said, if one option benchmarks consistently and significantly faster than the other, on the same device with the same setup, then it is likely to actually be faster - you just don't know how reliable the produced benchmark index is, and I certainly wouldn't compare them to scores from other devices.
Click to expand...
Click to collapse
Thanks a lot for the heads-up, that's good to know.
I probably should have taken the time to do at least 4 or 5 runs of each benchmark and calculate the average score in order to get more reliable results.
As you said, I wouldn't give too much importance to these results, but the fact the the f2fs runs came ahead every time is at least a pointer that there is some kind of improvement.
I will do another round of benchmarks with the /system partition in f2fs as well soon, I'll try to do several runs this time around.
Maybe I'll also add this cross-compiled Bonnie++ to the mix (won't do full runs though, just test a few hundred mbs, takes way too long otherwise)
Androguide.fr said:
Maybe I'll also add this cross-compiled Bonnie++ to the mix (won't do full runs though, just test a few hundred mbs, takes way too long otherwise)
Click to expand...
Click to collapse
You might have a look at my f2fs tests with bonnie on the Nexus 5. http://forum.xda-developers.com/showthread.php?p=50947848 Posts number 102 & 124
Check out my notes.txt. It is easier to run the tests with the -x switch. Something I learned after the fact.
Also I recommend using bonnie2chart for presenting the test results. If you don't have access to a server you can upload the *.csv files to, I would be happy to process the results for you.
Feel free to pm me
Androguide.fr said:
That's really weird. Which rom are you running ?
I'm also running the last F2FS build and here's my output :
Code:
cat /sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0/gpu_available_frequencies
600000000 533333000 487500000 450000000 389000000 320000000 320000000 200000000 200000000
You have some messed-up steps, too, the 270MHz shouldn't be there, and certainly not after a 320MHz step, that's really weird.
Click to expand...
Click to collapse
I am on ext4 and my GPU clocks are also very different from yours. I tried to rewrite the file manually, but RootExplorer want overwrite the file.It was strict read-only. I changed that to rw-rw-r--, but not a chance. Not by creating a new file and copying into the folder, not by editing the original file. I will try to edit the file in the flashable zip and overwrite it hereby.
Edit:
Its in the boot.img, am I right? So no chance to correct it.
Edit 2:
Echo command in console (su) didn't work either.
->--- said:
I am on ext4 and my GPU clocks are also very different from yours. I tried to rewrite the file manually, but RootExplorer want overwrite the file.It was strict read-only. I changed that to rw-rw-r--, but not a chance. Not by creating a new file and copying into the folder, not by editing the original file. I will try to edit the file in the flashable zip and overwrite it hereby.
Edit:
Its in the boot.img, am I right? So no chance to correct it.
Click to expand...
Click to collapse
Like any file under /sys, it' a sysfs interface, those "files" permissions are handled by the kernel.
What you input into the sysfs interfaces is processed by the kernel, and it usually has safeguards in case the value is too high/low or invalid, same for the permissions, if a sysfs node is defined as read-only then you won't be able to change this unless you recompile the kernel and change this behaviour in the module/driver itself.
Either way you wouldn't be able to just modify it like that, there's a lot more to defining a GPU frequency than just the frequency itself.
This interface is simply here to expose which frequencies are available to userspace.
This isn't related to the filesystem type, I had the same freq table on ext4 before I implemented f2fs in the kernel. Can't seem to figure out what is the cause of this issue, as it seems to be different from a device to another on the same build, and isn't related to the CPU's pvs binning level.
Please keep discussion about this issue in the kernel thread.
Did you notice any performance difference in day to day use?
Just curious why you kept dynamic fsync enabled. To test the filesystem itself, and not just the in-memory buffering system, you'd want that disabled, so that writes go straight to the disk ASAP. No?
Still impressive overall. Thanks for testing!
Typos courtesy of my Liquified LG G2 (D803).
Why TRIM not work on f2fs??
It might also be interesting to see battery drain under each system. What do you think? Is the battery working harder for the faster f2fs system?
how to use f2fs on stock custom rom