Current Change List vs the stock kernel:
- BFS (Courtesy of work by Con Kolivas) *In builds as marked*
- Overclocking up to 1.4ghz enabled *overclocking not active by default, use a tool such as SetCPU or CM7's cpu performance settings to overclock* (Remember kids, not all phones tolerate overclocking equally)
- BFQ (Courtesy of work by Paolo Valente)
- Voodoo Sound driver - Courtesy of Project Voodoo
- Voodoo Color (as of 1.2.4) - Courtesy of Project Voodoo
- CIFS support
- TUN support
- NFS support (as of 1.2.4)
- Updated kernel base
- Cpu policy fix to avoid crashes with SetCPU and screen off profiles (Courtesy of work by coolbho3000)
- EXT4 remount tweak
- Interactive Governor (Use a tool such as SetCPU to change governors if you want to use it *still in need of some tuning*)
- BLN on i9020 models (As of 22.214.171.124) Thanks to work by Neldar.
- BLN on i9023 models (as of 126.96.36.199) Thanks to work by akent.
- Sysfs interface to custom-under/over volt in realtime (As of 188.8.131.52)
- Smartass Governor (as of 184.108.40.206)
- SLQB (as of 1.3.1)
- Ezekeel's backlight dimmer sysfs interface (As of 1.4.0)
- Ezekeel's Deep Idle modifications (As of 1.4.1)
Changelog: Revision 1.4.1: - Updated Ezekeel's Touchkey Dimmer to version 3.0 bugfix 4 - Integrated Ezekeel's Deep Idle mod, current to bugfix 5 - 45,333 rabid naked bunnies were harmed during the making of this kernel Revision 1.4.0: - Revert a patch that caused random reboots in certain usage situations - Added Ezekeel's backlight dimmer sysfs interface (See instructions in second post on how to use) Revision 1.3.9: - Return to Deadline as default IO scheduler, using BFQ v2 could cause bugged encounters such as a never ending boot - Applied kernel tweaks from the recent 2.3.5 OTA (mostly relevant for sprint users) Revision 1.3.8: - BFQ updated to BFQv2-r1 - Some build options that may have contributed to random reboots have been modified Revision 1.3.7: - Voodoo Sound driver updated to v10 - Testing out tiny rcu - Touchscreen tweaks are no longer applied by default on boot. Users can still custom tweak touchscreen settings if desired by editing /system/etc/init.d/98touchscreen and rebooting as before. Revision 1.3.6: - Wifi driver changes, rolled back some code that was causing problems - Added Cyaniris' touchscreen tweaks back in the form of a user customizable sysfs interface (courtesy of work by Cyaniris). Users can set custom values by editing /system/etc/init.d/98touchscreen , followed by a reboot for the changes to take effect. Currently the default values are set, users that find the defaults not optimal might want to try some suggested settings by Cyaniris of 35 for touchthr, and 20 for noisethr. - Corrected a bug that would have caused reboots and/or other assorted badness when having the phone sleep at a frequency other than 800mhz (Confession: I was an idiot and forgot to move over this fix from my 2.3.3 kernel trees when making the new kernel trees for 2.3.4, woops!) Revision 1.3.5: - Wifi driver updates, bugfixes - JHash3 Added - Cpu cache clearing fixes - New compiler toolchain for builds, using gcc 4.5.2 - Interactive governor adjustments - IO scheduler set to Deadline, seems to have a nice balance in performance Revision 1.3.4: - Remove touchscreen adjustments for now, they were causing problems on some phones. Touchscreen tweaks will be revisited for a future build - Add auto group process scheduler for CFS builds Revision 1.3.3: - Touchscreen adjustments that may improve touch response - Update Voodoo Sound driver to version 9 Revision 1.3.2: - Update BFS builds to BFS404 - Add Simple IO Scheduler and set as default Revision 1.3.1: - Smartass screen-off speed adjusted to address unresponsive programs during screen-off - Smartass adjustments to improve responsiveness - SLQB slab allocator added to help optimize memory allocation performance - Some build configuration changes that may improve overall feel - Ondemand governor up threshold adjusted to improve battery usage while still maintaining responsiveness Revision 220.127.116.11: - Adjustments to smartass to improve performance (there is probably still room for improvement) - Default I/O Scheduler set to CFQ (previously BFQ), this may prove to be more stable in certain situations - Some adjustments made to the CFS scheduler that may result in a better overall feel to CFS builds Revision 18.104.22.168: - Added Smartass Governor (Not enabled by default, use setcpu or CM's cpu performance settings to change if you want to try it out) - Raised voltage cap to 1600mV for crazy people that want to turn their phone into a reactor ;D - Set config options in 2.3.4 kernel builds that should enable NS4G compatibility for our newly arriving sprint friends. Welcome to club nexus ;D Revision 22.214.171.124: - Update kernel base to 126.96.36.199 - Excessive stuttering in apps such as Gun Bros should be resolved or significantly improved; some problems with memory handling were introduced in 188.8.131.52 and are resolved in .13 Revision 184.108.40.206: - The cause of super-lag has been found (Big thanks to twitch153 for helping me test) - Introducing Universal builds! These universal builds are designed to be flashed on any non-stock rom of the series marked (ie; Universal 2.3.3) - Misc other tweaks to the kernel config that may result in an even smoother overall experience Revision 220.127.116.11a: - Fix issue preventing USB debugging (and adb), and sdcard space from working Revision 18.104.22.168: - Updated to support the 2.3.4 rom update - Lots of updates from upstream, including components needed to support the forthcoming nexus s 4g (yes that means that I will be supporting the ns4g) - Back to the 22.214.171.124 kernel base, the sdcard tweak has been scaled back as it appears to have been causing excess lag - BLN work for i9023 models from akent included (not tested), i9023 users may find they can now use BLN Revision 126.96.36.199: - Revert back to 188.8.131.52 base until I can track down the cause of ridiculous lag in the .12 base (Not that .11 was a bad performer by any means ;D) - BFS builds updated to BFS401 - BFS users should find that they have regained their bootanimation Revision 184.108.40.206: - Voodoo driver updated to v8 - Custom voltage sysfs interface has changed, the method used in 220.127.116.11 and 18.104.22.168 is not compatible. See the guide in the 2nd post for details on the new method. Revision 22.214.171.124: - Raised max voltage cap by 50 mV for people who want to try raising the voltage a little bit on 1.4ghz - More tweaks to try and address instances of "super-lag" Revision 126.96.36.199: - Corrected a bug that could cause a slightly higher voltage to be used at certain speeds (resulting in slightly faster battery drain) - Added a sysfs interface for manipulating voltage levels at various speeds, see 2nd post for details (read: this allows the possibility of custom under/over volting in realtime) - Used a different build configuration that may address the occasional "super-lag" that appeared in 188.8.131.52 Revision 184.108.40.206: - Update kernel base from 220.127.116.11 to 18.104.22.168 - Updated BFS version from BFS 363 to BFS 400 (BFS builds only) - Raised default read-ahead value from 128 to 2048 (read: sd speed tweak built-in, scripts not necessary) Revision 22.214.171.124: - Updated Voodoo Sound driver to version 7 - Fixed a bug that made the sysfs file "scaling_available_freqs" not exist Programs that must read this file for discovering/controlling available cpu speeds can now do so. (This also means that CM7 users can set their cpu speeds from the cyanogenmod performance settings instead of having to use SetCPU) Revision 126.96.36.199: - Add initial BLN support (Currently only functional on SAMOLED models [i9020]) Download the BLN control app from the market to use BLN functionality Revision 188.8.131.52: - More adjustments to the default colours to try and de-smurf the previous adjusted defaults while still avoiding "Yellow tint shock" - Voodoo sound updates (see github commit if you want more details) - Fixed a bug that caused boot times to take significantly longer than necessary Revision 1.2.9: - Voodoo Sound v5 driver update - Adjust default colours to avoid the initial "Yellow tint shock" Revision 1.2.8: - Voodoo Color gamma fix Revision 1.2.7: - Voodoo Color driver updates/fixes Revision 1.2.6: - Bring panel code up to date with official kernel - Update Voodoo Color driver to v2 - Release initial cm7 2.3.3 compatible builds Revision 1.2.5: - Add 2.3.3 compatible builds - Incorporate many updates from the newer 2.3.3 kernel sources, including wifi driver updates, touchscreen updates, drivers for future SLCD nexus-s variants, and more (far too many bugfixes and updates to list, review the commit list on my github if you want details) - Ext4 tweak should be working again in stock builds Revision 1.2.4: - Add NFS modules - Make TUN built-in rather than modular (this may address issues some have had loading the driver) - Add Voodoo Color Revision 1.2.3: - Update kernel base to 184.108.40.206 - Removed the ~56fps cap - Conservative governor tweaked to perform better for users that choose to use it - Greater rom compatiblity, particularly with roms that use specialized init scripts Revision 1.2.2: - 1.3ghz and 1.4ghz added to the frequency table for overclockers - Default cpu speed on boot is 1000mhz, use a tool such as SetCPU to overclock (No doubt I'll get some flack for this, but it's a very bad idea to boot into the max possible overclock when not all phones can tolerate it, so I consider it a necessary evil) - Interactive Governor added, use a tool such as SetCPU to change to it if you want to try it out (Probably needs a bit of tuning to avoid annihilating battery, we shall see) - CFS and BFS variants are now available - Infused with the power of 1000 rabid naked bunnies Revision 1.2.1: - Ext4 hack should be working properly now Revision 1.2: - Fixed a condition where limiting max speed to 1000 would result in potential underclocking to 800 (Thanks DebauchedSloth) - Set hi-res timer to 1000hz - Gave a little more power to the cpu at 1.2ghz, this may help those having trouble running at 1.2 be more stable - Integrated ext4 hack into the ramdisk builds (ext4 hack is not technically a kernel issue but worth pointing out) Revision 1.1: - 1.2ghz overclock *really* works now -Thanks for the help Morfic- - Cpu policy fix to avoid crashes with SetCPU and screen off profiles (Courtesy of work by coolbho3000) Revision 1.0: - Initial release - Add BFS scheduler - Add 1.2ghz overclock - Add BFQ - Add Voodoo Sound driver - Add CIFS support - Add TUN support - Update kernel base to 220.127.116.11
**As of 18.104.22.168 the method of custom voltage control has changed, read carefully!** It is now possible for users to define custom levels of under/over volting via a new interface in sysfs. The interface file in sysfs can be found at /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table By default, the custom values are all zeroed out, so a ` cat /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table ` will show: 1400mhz: 1450 mV 1300mhz: 1400 mV 1200mhz: 1350 mV 1000mhz: 1250 mV 800mhz: 1200 mV 400mhz: 1050 mV 200mhz: 950 mV 100mhz: 950 mV Modification of voltages is possible by echoing a string of 8 values to the sysfs interface via the console, where the order of values goes left to right from highest frequency affected to lowest. To adjust the mV for a particular higher or lower than the default, echo values divisible by 5 like in the following example from an adb shell (this is JUST an example, not guaranteed working values ;D): ` echo "1500 1400 1325 1275 1200 1050 900 850" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table ` Which has the following effect when examining UV_mV_table: 1400mhz: 1500 mV 1300mhz: 1400 mV 1200mhz: 1325 mV 1000mhz: 1275 mV 800mhz: 1200 mV 400mhz: 1050 mV 200mhz: 900 mV 100mhz: 850 mV Rom developers, you can conceivably create custom scripts to apply various under/over volt settings For reference, these are the default voltages: Default Frequency Voltage Table: 1400mhz: 1450 mV 1300mhz: 1400 mV 1200mhz: 1350 mV 1000mhz: 1250 mV 800mhz: 1200 mV 400mhz: 1050 mV 200mhz: 950 mV 100mhz: 950 mV Additionally, there is currently a safety cap of 1600mV for max voltage, setting a value higher than 1600mV will currently not have an effect greater than 1600mV. (Read: You can set a value higher than 1600, but it will get dropped to 1600 behind the scenes) This can be altered for future builds if I get feedback asking for it.
Based on the latest BLN version 9, I made some modifications to implement a backlight dimmer which does not need an external program (like cron) to trigger an off-switch.
To activate the dimmer, just echo the dim interval in ms (this is milliseconds; 1000ms = 1s) into /sys/class/misc/backlightnotification/in-kernel-dimmer. If you pass a value of 0, the dimmer will be deactivated.
Q: I'm getting a "Device or Kernel version not supported" error in Voodoo Control Plus! A:The error is referring to the generic modules that voodoo control plus comes with to support kernels that don't already have voodoo built-in (such as a completely stock kernel). You can safely ignore this error, as voodoo is already built into the kernel. Q: I'm getting SOD's (Sleep of Death) when undervolting! A: You are probably undervolting too far Q: OMG I'm getting a black screen (no boot animation) when booting a 2.3.3-based rom! A: This tends to happen mostly on BFS builds, though it *can* occur on cfs builds (and even on the stock kernel). The exact cause of this glitch is not known at this time, however, it is purely cosmetic. You will notice that the bottom buttons are lit, and if you were to run adb logcat, you will see that the phone is active. The phone is actually booting, just be patient. Q: What are BFS and CFS? A: They are task schedulers (they determine what processes get cpu time, how much, etc). CFS (Completely Fair Scheduler) is the default scheduler in the official mainline kernel. It's a tried, tested, stable scheduler. BFS (Brain **** Scheduler) is a third party scheduler written by Con Kolivas that must be patched into the kernel, and replaces the CFS scheduler. It tends to be faster in certain tasks, and is usually pretty stable, but sometimes there can be performance quirks.