WARNING
Overclocking/undervolting could cause crashes with loss of data, or even damage hardware including the CPU or GPU.
Voodoo support included since 1.5, remove all non-Voodoo lagfixes before installing.
This works for me, but you are ultimately responsible for what happens to your device and your data - have backups, preferably on an external SD that you remove for initial testing.
These are unsigned and will not flash via stock recovery. Use ROM Manager to flash, with ROM Manager you also don't need to rename them as it can select any zip file from internal storage.
Features:
Voodoo lagfix support - should work correctly flashed over other Voodoo beta4 kernels, remove non-Voodoo lagfixes before installing.
BLN support to allow use of touch-button lights to indicate pending notifications when screen is off. The lights will light for all statusbar notifications, unless disabled in the app producing the notification (not all apps will have an option to do this, I don't think any stock Samsung apps do).
Stock voltages/clocks at boot, runtime configuration of clocks and voltages via sysfs, nilfs2 and ext2/3/4 filesystem support, two-stage user init - early scripts for mounting filesystems, late ones for running services. Default I/O scheduler is BFQ, BFQ/CFQ/anticipatory all perform roughly the same in benchmarks with multiple threads competing for I/O. Typical wakeup between instant and about one second, built with the binutils 2.19.1 / gcc 4.3.4 toolchain.
User clock/voltage configuration can be read from/written to /sys/devices/system/cpu/cpu0/cpufreq/freq_volt_table. Copy this file to get the defaults, edit your copy and write back over the original to update, or save your new file in /sdcard/sd/config, /sdcard/config, or /system/etc/config to have it applied on boot. The first column is CPU clock, the second GPU clock, the third CPU voltage, the fourth internal voltage. Changing values besides CPU clock/voltage is not recommended. You must keep 100MHz as the lowest speed. Clocks are in KHz, voltages in mV. Modify at your own risk, I find that my phone runs 1.2GHz @ 1.3V just fine, but yours may vary.
Be aware that your phone might appear to run fine with overclock/undervolt at first but crash later due to some error in calculation or data transfer - i recommend a good number of runs on something like Quadrant, and at least five minutes or so of SetCPU stress test for each frequency you add or change.
User inits must be placed in /system/etc/init.d, and properly named - names starting with "E" will run before /data and /dbdata are mounted, names starting with "S" will run right before startup is completed and normal Android services start. Inits are sorted by name, so you can follow the initial E or S with a number to change the order in which they will run. Scripts need not be executable, and will be run with the shell provided in initramfs for Voodoo support (busybox ash). If either /data or /dbdata is not a mount point after E scripts are completed, /user_early_init.sh will attempt to mount an rfs filesystem there from the usual location. If you want to mount a filesystem that is some other type, you will need to do so in a user script. If you want to format /data with another filesystem, you must edit the partition table to change the partition number - I have disabled the code in /sbin/init that rewrites the partition table, but if it finds something on standard /data partition that does not look like a valid RFS filesystem, it will reformat it.
If you want to build yourself, see the toolchains thread for known-working tools. Run
Flash captivate_zimage.tar as PDA in Odin - see other threads for how to use Odin and where to get it. Use menuconfig to select a different initramfs source if you wish, by default an included one at usr/initrd_files will be used.
Starting with v1.4, create a .build_config file to change any variables and run build_kernel.sh to build tar flashable with Odin or update.zip. As of v1.5.2 you can also use .build_config to inject commands and files into update.zip builds.
CREDITS
v1.7
v1.6
v1.5.3
v1.5.2
v1.4.1
v1.4
v1.3.1
v1.2
v1.1
v1.0
Overclocking/undervolting could cause crashes with loss of data, or even damage hardware including the CPU or GPU.
Voodoo support included since 1.5, remove all non-Voodoo lagfixes before installing.
This works for me, but you are ultimately responsible for what happens to your device and your data - have backups, preferably on an external SD that you remove for initial testing.
These are unsigned and will not flash via stock recovery. Use ROM Manager to flash, with ROM Manager you also don't need to rename them as it can select any zip file from internal storage.
Features:
Voodoo lagfix support - should work correctly flashed over other Voodoo beta4 kernels, remove non-Voodoo lagfixes before installing.
BLN support to allow use of touch-button lights to indicate pending notifications when screen is off. The lights will light for all statusbar notifications, unless disabled in the app producing the notification (not all apps will have an option to do this, I don't think any stock Samsung apps do).
Stock voltages/clocks at boot, runtime configuration of clocks and voltages via sysfs, nilfs2 and ext2/3/4 filesystem support, two-stage user init - early scripts for mounting filesystems, late ones for running services. Default I/O scheduler is BFQ, BFQ/CFQ/anticipatory all perform roughly the same in benchmarks with multiple threads competing for I/O. Typical wakeup between instant and about one second, built with the binutils 2.19.1 / gcc 4.3.4 toolchain.
User clock/voltage configuration can be read from/written to /sys/devices/system/cpu/cpu0/cpufreq/freq_volt_table. Copy this file to get the defaults, edit your copy and write back over the original to update, or save your new file in /sdcard/sd/config, /sdcard/config, or /system/etc/config to have it applied on boot. The first column is CPU clock, the second GPU clock, the third CPU voltage, the fourth internal voltage. Changing values besides CPU clock/voltage is not recommended. You must keep 100MHz as the lowest speed. Clocks are in KHz, voltages in mV. Modify at your own risk, I find that my phone runs 1.2GHz @ 1.3V just fine, but yours may vary.
Be aware that your phone might appear to run fine with overclock/undervolt at first but crash later due to some error in calculation or data transfer - i recommend a good number of runs on something like Quadrant, and at least five minutes or so of SetCPU stress test for each frequency you add or change.
User inits must be placed in /system/etc/init.d, and properly named - names starting with "E" will run before /data and /dbdata are mounted, names starting with "S" will run right before startup is completed and normal Android services start. Inits are sorted by name, so you can follow the initial E or S with a number to change the order in which they will run. Scripts need not be executable, and will be run with the shell provided in initramfs for Voodoo support (busybox ash). If either /data or /dbdata is not a mount point after E scripts are completed, /user_early_init.sh will attempt to mount an rfs filesystem there from the usual location. If you want to mount a filesystem that is some other type, you will need to do so in a user script. If you want to format /data with another filesystem, you must edit the partition table to change the partition number - I have disabled the code in /sbin/init that rewrites the partition table, but if it finds something on standard /data partition that does not look like a valid RFS filesystem, it will reformat it.
If you want to build yourself, see the toolchains thread for known-working tools. Run
Code:
make ARCH=arm i897_defconfig
make ARCH=arm menuconfig [COLOR="blue"]optional[/COLOR]
make CROSS_COMPILE=/path/to/toolchain/arm-none-eabi- zImage [COLOR="blue"]change if using a different toolchain[/COLOR]
tar c -C arch/arm/boot/zImage >captivate_zimage.tar
Starting with v1.4, create a .build_config file to change any variables and run build_kernel.sh to build tar flashable with Odin or update.zip. As of v1.5.2 you can also use .build_config to inject commands and files into update.zip builds.
CREDITS
- raspdeep - the original OC code
- curio - Voodoo lagfix original concept and script
- neldar - BLN support
- atinm - BLN port for Captivate
- BusyBox, buildroot, crosstool-ng, nilfs2 - see respective projects for original contributors and source
v1.7
ClockworkMod Recovery
flashable binary: mediafire mirror | github mirror
github source
flashable binary: mediafire mirror | github mirror
github source
- BETA ClockworkMod Recovery replaces stock recovery
- BETA support for backup/restore with Voodoo enabled
v1.6
BLN Support
flashable binary: View attachment i897-unhelpful-v1.6.zip | mediafire mirror | github mirror
github source
flashable binary: View attachment i897-unhelpful-v1.6.zip | mediafire mirror | github mirror
github source
- BLN support - use the touch-button lights to alert of pending notification when screen is off.
- Disable check for SGH-I897 device, since this can fail on Captivate hardware if an alternate ROM is flashed.
v1.5.3
Bugfix release
flashable binary: View attachment i897-unhelpful-v1.5.3.zip | mediafire mirror | github mirror
github source
flashable binary: View attachment i897-unhelpful-v1.5.3.zip | mediafire mirror | github mirror
github source
- Revert from the config based on kepler_rev02_defconfig, suggested by the 9/6 code drop, to aries_rev02_defconfig. The config change appears to have been responsible for the power drain problems seen in v1.5.1 and v1.5.2.
v1.5.2
Bugfixes and Voodoo lagfix support
flashable binary: View attachment i897-unhelpful-v1.5.2.zip | View attachment i897-unhelpful-v1.5.2.tar.7z | mediafire mirror | github mirror
github source
flashable binary: View attachment i897-unhelpful-v1.5.2.zip | View attachment i897-unhelpful-v1.5.2.tar.7z | mediafire mirror | github mirror
github source
- Odin-flashable tar file (inside 7z to allow upload to XDA), please use only to recover from bad flash of v1.5.1, the update.zip contains scripts that are important if you're running SRE.
- Voodoo lagfix support
- Restore correct stock voltage (1.275V) for 1GHz
- Update sources and config from Captivate 9/6 source drop
- Update modules from JH7 OTA
- LZMA initramfs compression to reduce compressed kernel size / allow larger initramfs
- Enhanced update.zip support allows developers to easily inject their own commands and files into update.zip on build, and allows run_programs scripts to produce screen output and can flash kernel/modem partitions directly.
v1.4.1
BUGFIX for SRE users
flashable binary: View attachment i897-unhelpful-v1.4.1.zip | View attachment i897-unhelpful-v1.4.1.tar.7z | mediafire mirror | github mirror
github source
flashable binary: View attachment i897-unhelpful-v1.4.1.zip | View attachment i897-unhelpful-v1.4.1.tar.7z | mediafire mirror | github mirror
github source
- Bug with SRE + 1.4 causing storage to become unavailable should be fixed by this kernel, fix works on my phone but some have reported problem spontaneously ifxing itself.
v1.4
Load OC/UV config from file, system early init (for developers).
downloads removed due to bugs
github source
downloads removed due to bugs
github source
- Built with gcc-4.4.3
- build_kernel.sh reads variables from .build_config, or from config file specified by $BUILD_CONFIG, so you can keep the script file clean.
- Early system init - E* scripts in /sbin/init.d run before user early init, for developers to include startup scripts.
- System init loading of OC/UV table - searches for config/freq_volt_table on external SD, then internal SD, then in /system/etc.
- ADB checks uses the first shell found from the list bash, ash, /system/xbin/sh, /system/bin/sh, sh.
- Correctly set cpufreq policy on table change - should fix resets of maximum clock to 1GHz after new tables are loaded.
v1.3.1
OC/UV configuration
flashable binary: View attachment i897-unhelpful-v1.3.1.zip | mediafire mirror | github mirror
github source
flashable binary: View attachment i897-unhelpful-v1.3.1.zip | mediafire mirror | github mirror
github source
- Stock clocks/voltages at boot, user can add new clocks and change voltages at runtime - see above for details.
- Modify stock init to avoid rewriting partition table at boot - change the partition table for internal SD, resize partitions or remake /data with a different partition number so it can be safely formatted with another filesystem.
v1.2
Bugfix / update.zip / dev features
flashable binary: View attachment 389189 | mediafire mirror | github mirror
github source
flashable binary: View attachment 389189 | mediafire mirror | github mirror
github source
- Fix scaling bug, performance level was set past end of table on sleep
- Scaling enhancement, selectable clock source for GPU
- GPU clocked at 222MHz for all speeds except 100MHz, where it matches CPU clock
- Basic build_kernel.sh script, edit to change configuration - builds unsigned update.zip with default kernel config by default
- Add interactive CPU governor - enabled in build but conservative is still configured as the default
v1.1
Bugfix release
flashable binary: mediafire mirror | github mirror
github source
Rework of user init, resolves lost-settings-on-boot issue for me.
flashable binary: mediafire mirror | github mirror
github source
Rework of user init, resolves lost-settings-on-boot issue for me.
v1.0
Initial release for Captivate I897
flashable binary: mediafire mirror | github mirror
github source
nilfs2, ext2/3/4 filesystems
separate early and late user init
600MHz and 1.2GHz speeds, use SetCPU to enable 1.2GHz
fast scaling from low speed, skipping from 100MHz to 800MHz
Other Downloadsflashable binary: mediafire mirror | github mirror
github source
nilfs2, ext2/3/4 filesystems
separate early and late user init
600MHz and 1.2GHz speeds, use SetCPU to enable 1.2GHz
fast scaling from low speed, skipping from 100MHz to 800MHz
Attachments
-
5.7 MB Views: 467
Last edited: