[Captivate Android Development] SetiroN:
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://xdaforums.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:

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://xdaforums.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://xdaforums.com/showthread.php?t=819686

http://xdaforums.com/showthread.php?t=822955

http://xdaforums.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. :)

- 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://xdaforums.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:

#!/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 1400mV@top frequency - 200MHz GPU

SetiroN_v1.4.7_1600.tar.7z 1400mV@top frequency - 200MHz GPU

SetiroN_v1.4.7xt_1552.tar.7z 1375mV@top frequency - 194MHz GPU

SetiroN_v1.4.7_1552.tar.7z 1375mV@top frequency - 194MHz GPU

SetiroN_v1.4.7xt_1488.tar.7z 1350mV@top frequency - 186MHz GPU

SetiroN_v1.4.7_1488.tar.7z 1350mV@top frequency - 186MHz GPU

SetiroN_v1.4.7xt_1440.tar.7z 1325mV@top frequency - 205MHz GPU

SetiroN_v1.4.7_1440.tar.7z 1325mV@top frequency - 205MHz GPU

SetiroN_v1.4.7xt_1400.tar.7z 1300mV@top frequency - 200MHz GPU

SetiroN_v1.4.7_1400.tar.7z 1300mV@top frequency - 200MHz GPU

SetiroN_v1.4.7xt_1344.tar.7z 1300mV@top frequency - 192MHz GPU

SetiroN_v1.4.7_1344.tar.7z 1300mV@top frequency - 192MHz GPU

SetiroN_v1.4.7xt_1288.tar.7z 1300mV@top frequency - 184MHz GPU

SetiroN_v1.4.7_1288.tar.7z 1300mV@top frequency - 184MHz GPU

SetiroN_v1.4.7xt_1200.tar.7z 1300mV@top frequency - 200MHz GPU

SetiroN_v1.4.7_1200.tar.7z 1300mV@top 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