[KERNEL]Netarchy Nexus for NS + NS4G (22-Oct-2011) Testing: 1.4.1

Status
Not open for further replies.
Search This thread

netarchy

Retired Senior Recognized Developer
Jun 16, 2010
1,441
1,170
San Antonio, TX
github.com
Netarchy Nexus represents my foray into the world of kernel development for the Nexus S, having previously been working on kernel builds for the Evo 4g.


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 1.3.0.1) Thanks to work by Neldar.
- BLN on i9023 models (as of 1.3.0.8) Thanks to work by akent.
- Sysfs interface to custom-under/over volt in realtime (As of 1.3.0.4)
- Smartass Governor (as of 1.3.0.11)
- 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)

Kernel builds are currently tested against a stock rom and CM7, while they may work unchanged in other roms, your mileage may vary.

All source code is available on my github (see signature).

Be safe, -ALWAYS- make a backup before flashing!

*Standard Disclaimer: All packaged builds are provided with no guarantees as to their safety. By flashing, you assume any and all potential risks that running a custom kernel might entail.*

*A note to overclockers: If your phone is unstable when running an overclock speed, your particular phone probably can't handle that overclock and you should choose a lower clock.*

All kernel builds mirrored HERE.

*It is generally a good idea to wipe Cache and Dalvik-Cache when flashing a new kernel build to avoid certain problems usually related to Dalvik-Cache*

Downloads:

Experimental Version: 1.4.1 (These are testing builds that are more likely to have issues)

2.3.4+ based roms (Nexus-S AND Sprint Nexus-S 4G Phones):

CFS BUILDS:
Netarchy Nexus - 1.4.1-cfs (For stock 2.3.4 or higher roms)

Netarchy Nexus - 1.4.1-cfs-universal (Universal for non-stock 2.3.4 or higher roms)

BFS BUILDS:
Netarchy Nexus - 1.4.1-bfs (For stock 2.3.4 or higher roms)

Netarchy Nexus - 1.4.1-bfs-universal (Universal for non-stock 2.3.4 or higher roms)

"Stable" Version: 1.3.7

2.3.4+ based roms (Nexus-S AND Sprint Nexus-S 4G Phones):

CFS BUILDS:
Netarchy Nexus - 1.3.7-cfs-2.3.4 (For stock 2.3.4 roms)

Netarchy Nexus - 1.3.7-cfs-2.3.4-universal (Universal for non-stock 2.3.4 roms)

BFS BUILDS:
Netarchy Nexus - 1.3.7-bfs-2.3.4 (For stock 2.3.4 roms)

Netarchy Nexus - 1.3.7-bfs-2.3.4-universal (Universal for non-stock 2.3.4 roms)
 
Last edited:

netarchy

Retired Senior Recognized Developer
Jun 16, 2010
1,441
1,170
San Antonio, TX
github.com
Code:
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 1.3.0.12:
- 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 1.3.0.11:
- 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 1.3.0.10:
- Update kernel base to 2.6.35.13
- Excessive stuttering in apps such as Gun Bros should be resolved
   or significantly improved; some problems with memory handling 
   were introduced in 2.6.35.12 and are resolved in .13

Revision 1.3.0.9:
- 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 1.3.0.8a:
- Fix issue preventing USB debugging (and adb), and sdcard space from working

Revision 1.3.0.8:
- 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 2.6.35.12 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 1.3.0.7:
- Revert back to 2.6.35.11 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 1.3.0.6:
- Voodoo driver updated to v8
- Custom voltage sysfs interface has changed, 
   the method used in 1.3.0.4 and 1.3.0.5 is not compatible.
   See the guide in the 2nd post for details on the new method.

Revision 1.3.0.5:
- 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 1.3.0.4:
- 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 1.3.0.3

Revision 1.3.0.3:
- Update kernel base from 2.6.35.11 to 2.6.35.12
- 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 1.3.0.2:
- 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 1.3.0.1:
- Add initial BLN support (Currently only functional on SAMOLED models [i9020])
   Download the BLN control app from the market to use BLN functionality

Revision 1.3.0.0:
- 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 2.6.35.11
- 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 2.6.35.10

Custom Under/Over volting 101:
Code:
**As of 1.3.0.6 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.

Backlight Dimmer:
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.

FAQ:
Code:
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.
 
Last edited:

demo23019

Senior Member
Dec 9, 2007
2,216
613
Thanks

Just a heads up
Doesn't work with CyanogenMod 7 nightly
 
Last edited:

morfic

Inactive Recognized Developer
Aug 3, 2008
7,211
12,879
San Antonio
www.derkernel.com
To make it cm7 compatible he can split_bootimg the cm7 kernel.
I'm looking into making one kernel working on both Bionix and cm7.

Currently it's 3 builds, Bionix, cm7 and stock for me. If I can unify it, I'll let you know.

Sent from my Nexus S
 
  • Like
Reactions: avetny

willcpfc

Senior Member
Nov 8, 2010
240
7
Man this sounds good...tempted to flash my rom from nightly to try this :D thanks Dev for giving us more options.
 

netarchy

Retired Senior Recognized Developer
Jun 16, 2010
1,441
1,170
San Antonio, TX
github.com
To make it cm7 compatible he can split_bootimg the cm7 kernel.
I'm looking into making one kernel working on both Bionix and cm7.

Currently it's 3 builds, Bionix, cm7 and stock for me. If I can unify it, I'll let you know.

Sent from my Nexus S

Koush's anykernel can serve that purpose. It splits out the ramdisk from the current boot on the phone and combines it with the zImage of the new kernel (meaning no having to manually repack ramdisks to make various rom-compatible builds), then flashes the new boot image.

Once I have it playing nice with the NS I'll be able to post universal builds. One of the many things on my todo list ;D
 
  • Like
Reactions: avetny

kenvan19

Senior Member
Dec 7, 2010
3,562
540
Nice. Loved your work on my evo and stoked to try it here. More kernel devs means more choice and hopefully a richer collaborative spirit :D

Sent from my CM7 Nexus S!
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 143
    Netarchy Nexus represents my foray into the world of kernel development for the Nexus S, having previously been working on kernel builds for the Evo 4g.


    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 1.3.0.1) Thanks to work by Neldar.
    - BLN on i9023 models (as of 1.3.0.8) Thanks to work by akent.
    - Sysfs interface to custom-under/over volt in realtime (As of 1.3.0.4)
    - Smartass Governor (as of 1.3.0.11)
    - 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)

    Kernel builds are currently tested against a stock rom and CM7, while they may work unchanged in other roms, your mileage may vary.

    All source code is available on my github (see signature).

    Be safe, -ALWAYS- make a backup before flashing!

    *Standard Disclaimer: All packaged builds are provided with no guarantees as to their safety. By flashing, you assume any and all potential risks that running a custom kernel might entail.*

    *A note to overclockers: If your phone is unstable when running an overclock speed, your particular phone probably can't handle that overclock and you should choose a lower clock.*

    All kernel builds mirrored HERE.

    *It is generally a good idea to wipe Cache and Dalvik-Cache when flashing a new kernel build to avoid certain problems usually related to Dalvik-Cache*

    Downloads:

    Experimental Version: 1.4.1 (These are testing builds that are more likely to have issues)

    2.3.4+ based roms (Nexus-S AND Sprint Nexus-S 4G Phones):

    CFS BUILDS:
    Netarchy Nexus - 1.4.1-cfs (For stock 2.3.4 or higher roms)

    Netarchy Nexus - 1.4.1-cfs-universal (Universal for non-stock 2.3.4 or higher roms)

    BFS BUILDS:
    Netarchy Nexus - 1.4.1-bfs (For stock 2.3.4 or higher roms)

    Netarchy Nexus - 1.4.1-bfs-universal (Universal for non-stock 2.3.4 or higher roms)

    "Stable" Version: 1.3.7

    2.3.4+ based roms (Nexus-S AND Sprint Nexus-S 4G Phones):

    CFS BUILDS:
    Netarchy Nexus - 1.3.7-cfs-2.3.4 (For stock 2.3.4 roms)

    Netarchy Nexus - 1.3.7-cfs-2.3.4-universal (Universal for non-stock 2.3.4 roms)

    BFS BUILDS:
    Netarchy Nexus - 1.3.7-bfs-2.3.4 (For stock 2.3.4 roms)

    Netarchy Nexus - 1.3.7-bfs-2.3.4-universal (Universal for non-stock 2.3.4 roms)
    23
    Code:
    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 1.3.0.12:
    - 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 1.3.0.11:
    - 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 1.3.0.10:
    - Update kernel base to 2.6.35.13
    - Excessive stuttering in apps such as Gun Bros should be resolved
       or significantly improved; some problems with memory handling 
       were introduced in 2.6.35.12 and are resolved in .13
    
    Revision 1.3.0.9:
    - 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 1.3.0.8a:
    - Fix issue preventing USB debugging (and adb), and sdcard space from working
    
    Revision 1.3.0.8:
    - 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 2.6.35.12 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 1.3.0.7:
    - Revert back to 2.6.35.11 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 1.3.0.6:
    - Voodoo driver updated to v8
    - Custom voltage sysfs interface has changed, 
       the method used in 1.3.0.4 and 1.3.0.5 is not compatible.
       See the guide in the 2nd post for details on the new method.
    
    Revision 1.3.0.5:
    - 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 1.3.0.4:
    - 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 1.3.0.3
    
    Revision 1.3.0.3:
    - Update kernel base from 2.6.35.11 to 2.6.35.12
    - 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 1.3.0.2:
    - 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 1.3.0.1:
    - Add initial BLN support (Currently only functional on SAMOLED models [i9020])
       Download the BLN control app from the market to use BLN functionality
    
    Revision 1.3.0.0:
    - 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 2.6.35.11
    - 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 2.6.35.10

    Custom Under/Over volting 101:
    Code:
    **As of 1.3.0.6 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.

    Backlight Dimmer:
    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.

    FAQ:
    Code:
    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.
    9
    i think the developer left it to die.... too bad... it's a great kernel...

    Not abandoned, swamped with life atm.
    7
    Edit: Proton now lives in its own thread - http://xdaforums.com/showthread.php?t=1091382
    Please use it instead of this thread for app related posts.

    Here it is! Proton Voltage Control for Nexus S phones running a supported version of Netarchy kernels (1.3.0.6 and up) :D

    Download here: http://download.jonathongrigg.com/apps/ProtonVoltageControl.apk
    Or a mirror here (in case my server goes down under load...): http://dl.dropbox.com/u/9751350/ProtonVoltageControl.apk

    Edit: 0.1.1 fixes no space issue, download here: http://download.jonathongrigg.com/apps/ProtonVoltageControl-011.apk
    [Mirror] http://dl.dropbox.com/u/9751350/proton/ProtonVoltageControl-011.apk

    snap20110522_100242.png


    Usage
    Enter in the string of 8 voltages into the text box, then press apply (and optionally 'set on boot').

    - It is easier to press one of the 3 voltages buttons to give you a base to work on
    - The suggested voltages is a -25mV reduction across the board, similar to what is used in Ogdobber's Sabai Dee kernel I believe
    - 'Save on Boot' creates an init.d script called proton_voltage_control with your entered values, so don't be alarmed if you see an extra init.d script


    A better UI and more improvements are coming, but this is a fully working, stable UV app! :)
    Enjoy!
    6
    1.3.9 builds posted for testing.

    Changelog:
    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)