[KERNEL][GPL]Genocide EC05 Kernel 2.0|1.4GhzOC|RomManager|CustomUV|DUALBOOT! 7/5/2011

Search This thread

Rodderik

Inactive Recognized Developer
Sep 8, 2010
1,300
1,295
devphone.org
Genocide EC05 Kernel 2.0 |1.4GhzOC|UV|VoodooSound10|VoodooColor|DualBoot
(Compatible with DK28, EB13, and EC05)

I am NOT responsible for any damages, fires, race-wars, riots, temporary blindness, killer bee attacks, or anything else that could be remotely tied to downloading this file. You have been warned!


Features:
Dual Boot Support!
Overclockable (1400MHz, 1300MHz, 1200MHz, 1120MHZ)
Undervolt via sysfs
ROM MANAGER compatible!
Working redirector
Root and busybox built in
Voodoo Sound v10
Voodoo Color
Cifs and tun modules (not loaded by default)
MANY patches and tweaks
Much much more!!!

REQUIRED READING: IF YOU DO NOT READ ALL OF THIS THEN I WILL NOT PROVIDE SUPPORT FOR YOU UNTIL YOU DO!!!!
1. This kernel is capable of 1.3 & 1.4GHz however the voltage required slightly exceeds (roughly 50mV) the manufacturer's recommended voltage. Enable these AT YOUR OWN RISK.
2. Just because the kernel is capable of higher clock speeds DOES NOT mean every device will handle them.
3. DO NOT gripe or complain and trash my thread if you're device doesn't support anything past 1.2GHz. I WILL NOT increase the voltages anymore past recommended specifications.
4. DO NOT get mad or get your feelings hurt if I tell you to read the original post (OP) instead of answering your question. It means I have already answered it here OR I felt your question(s) needed to be answered in the OP and updated it accordingly.
5. DO a complete nandroid backup in ClockworkMod BEFORE flashing the kernel or messing with the undervolt settings. Setting values too low CAN cause data corruption. Simply restore your backup that I know you just made. YOU HAVE BEEN WARNED!
6. BY DEFAULT the ONLY active frequencies are 100MHz, 200MHz, 400MHz, 600MHz, 800MHz, and 1000MHz. In order for the device to use higher frequencies they must be specifically enabled. If you install the kernel you will NOT be automatically overclocked.
7. The kernel should work with any rom EXCEPT Stock EC05 that is converted to EXT4 AND is NOT deodexed. This is a known issue I am looking into.
8. PLEASE PLEASE PLEASE take time to read and search this thread before asking questions. I am not a baby sitter and I should not have to spend my time answering the same questions over and over and over again as it takes time away from me improving the kernel or working on my other projects. If you see some one ask a question that has already been answered please do not flame them. It would help me greatly if you could take 5 seconds to answer them or link them to the post with the appropriate answer.


NOTE: If you are going to overclock I personally recommend you UNINSTALL SetCPU and set your max with Voltage Control or by hand.

Installation:

Download the kernel and flash with ClockworkMod.

How to Dual Boot:
Information on dual booting can be found here: http://xdaforums.com/showthread.php?p=15378860

Easy Overclock/Undervolt Method:
Setting up your frequencies:

Required software: Voltage Control by xan http://devphone.org/files/epic4g/kernels/VoltageControl_3.0.apk
1. Backup your device in ClockworkMod and flash the kernel. If you get messed up or confused just reboot your device to undo the changes.
2. After flashing the kernel, uninstall SetCPU and install Voltage Control (VC).
3. Open VC and hit 'States' at the bottom to open the States drawer.
4. Enable your desired frequencies and hit the menu button and 'Apply for now' (DO NOT 'Save as boot settings')
5. Hit 'States' to retract the States drawer.
6. Leave the Scheduler as 'cfq' and change Limit clock to your desired max frequency.
7. Hit the menu button and 'Apply for now' (DO NOT 'Save as boot settings' unless you are 110% sure the settings are stable and you have adequately tested)

Setting up your personal undervolt settings: (Caution: When figuring out your maximum undervolt settings there is a good chance you will get some data corruption so make sure your backup in ClockworkMod is up to date)
1. Open VC and select the desired frequency you wish to undervolt.
2. The green slider goes in increments of -25mV so select that first and take note of the frequency and value. (It is important when testing that you reduce the voltage ONE step at a time)
3. Hit the menu button and 'Apply for now'
4. Test the device's stability THOROUGHLY before you move the slider down any further. See the FAQ below for tips on testing stability.
5. If you feel it is stable then repeat this process and move the slider down one step, write it down, and THOROUGHLY test.
6. When your device freezes or starts acting weird then you know that value is too much and you should use your previously stable value.

Repeat this process for each of the other frequencies you wish to undervolt. When you feel you have the stable values that you are comfortable with, open VC and apply your stable values and THOROUGHLY test your device again. After you do all of this, make sure you are 110% certain of the stability before you 'Save as boot settings' and remember you may need to restore your ClockworkMod backup before setting up your final values to ensure no data corruption.

Advanced Overclock/Undervolt Method:
Required software: Working 'adb shell' or terminal emulator
There is NO hand holding here. Make sure you read the Easy Method to familiarize yourself with the process! If you don't know what you are doing then DO NOT attempt this method. If you get messed up or confused just reboot your device to undo the changes.

Enable active states: echo "0 0 1 1 1 1 1 1 1 1" > /sys/devices/system/cpu/cpu0/cpufreq/states_enabled_table
Accepted values are 0 and 1. All ten values must be set and this example enables 1200000 to 100000.

Set maximum frequency: echo "1200000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Accepted values are 1400000, 1300000, 1200000, 1120000, 1000000, 800000, 600000, 400000, 200000, and 100000.

Set minimum frequency: echo "200000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Accepted values are 1400000, 1300000, 1200000, 1120000, 1000000, 800000, 600000, 400000, 200000, and 100000.

Set undervolt values: echo "0 0 0 0 25 50 0 0 0 0" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table
Values are in millivolts. Accepted values are 25, 50, 75, 100, 125, 150, 175, 200. DO NOT USE NEGATIVE NUMBERS. All ten values must be set.

This example applies a -25mV at 1000000 and -50mV undervolt at 800000.

To set your values on boot once you find what is stable creat a file name S_volt_scheduler with the following contents and change the values accordingly:
Code:
#!/system/bin/sh
#set UV
echo "0 0 0 0 25 50 0 0 0 0 " > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table
echo 1200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
#select enabled states
echo "0 0 1 1 1 1 1 1 1 1 " > /sys/devices/system/cpu/cpu0/cpufreq/states_enabled_table
#set scheduler for stl, bml and mmc
for i in `ls /sys/block/stl*` /sys/block/bml* /sys/block/mmcblk*
do
echo "cfq" > $i/queue/scheduler
done
Put the file in /etc/init.d/ to apply the settings when the device boots.

FAQ (Frequently Asked Questions):
Q. Why isn't my device stable at higher clock speeds?
A. Many processors are cut at a time from one big wafer of silicon and other materials by the manufacturer. No two processors are exactly the same. From a cost stand point these chips are designed to yield a certain percentage of working chips at given specifications. These chips are made to withstand specific currents and voltages. When we exceed the currents and voltages the chips are designed to handle some will fail.

Q. What else can I try if I can't run the higher frequencies?
A. There is not a whole lot you can do. Some things I would suggest is make sure SetCPU is uninstalled. It has been reported SetCPU can cause some stability issues. Another option is to try different roms. Other than that there isn't much you can do. Sorry.

Q. Do you plan on pushing past 1.4GHz?
A. No. I do not plan to push any higher than 1.4GHz. Why? I am not going to push the higher voltages that would be required to go any higher. Please don't bother asking me to.

Q. What are some good ways to test stability while I am figuring out what undervolts my device can handle?
A. The best way to test stability is going to be setting your max frequency to the frequency you are testing and run benchmark programs like SmartBench that test multiple areas of your device. I recommend spending atleast 5-10 minutes running benchmarks and doing other tasks before you decide a given undervolt is stable.

Q. Help I was messing with the undervolts and now I get force closes (FC). What can I do?
A. This is why you made a backup in ClockworkMod. Setting voltage too low can corrupt your data and cause programs to FC. Typically you can reinstall the program or clear the applications data to fix it. As a last resort (and recommended to do anyway after you find your stable values) is to restore your backup from ClockworkMod.

Q. Why can't I use SetCPU?
A. You can use SetCPU, how ever I do not recommend it as it can cause conflicts. I am not going to support using it but if you get it working for you then by all means. I have no problems with the program or it's author and I think it is a great program but it just isn't needed and can make things tricky to get working correctly.

Q. How can I tell what frequencies I will benefit most undervolting or if they are even working?
A. There are two ways. The easy way is to install CPU Spy http://xdaforums.com/showthread.php?t=1011497. The advanced way is to 'cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state'

Q. What are the default voltages for the avialable frequencies?
A. 1400000 @ 1375 mV WARNING: above recommended voltage
1300000 @ 1325 mV WARNING: above recommended voltage
1200000 @ 1300 mV
1120000 @ 1300 mV
1000000 @ 1275 mV
800000 @ 1200 mV
600000 @ 1175 mV
400000 @ 1050 mV
200000 @ 950 mV
100000 @ 950 mV

Q. I have enabled 100MHz but I can not scale down to 100MHz. Why?
A. By default the kernel sets 200MHz minimum. In order to scale down to 100MHz you can flash this script to set 100MHz on boot http://devphone.org/files/epic4g/kernels/Genocide_set_min_100MHz.zip or add this line to /system/etc/init.d/S_volt_scheduler:
Code:
echo "100000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

Q. How do I change the governor with terminal emulator or adb shell?
A. See the answer here: http://xdaforums.com/showpost.php?p=13118624&postcount=1705

Q. This kernel has Voodoo Sound but I don't hear a difference. What gives?
A. There are indeed changes but to look at the settings and adjust the volume, download Voodoo Control App from the Market. I highly encourage people to donate to supercurio as he has done some awesome modification and more of his mods will find their way into this kernel soon!

Q. What is this flashing android on top of my boot animation now? How do I fix it?
A. On a stock rom, enabling boot animation support in the kernel plays the default boot animation (flashing android logo) over top of Samsung's own boot animation. Check out this thread to get rid of the flashing android or clear Samsung's animation for your custom animations.

Q. How do I enable CIFS support?
A. From 'adb shell' or a terminal emulator type 'insmod /lib/modules/cifs.ko'

Q. How do I enable TUN support?
A. From 'adb shell' or a terminal emulator type 'insmod /lib/modules/tun.ko'

Q. How come there is no frame rate increase?
A. The current method to increase the frame rate is by bumping up the LCD refresh rate. While I am told it should not break the LCD I decided it would be best to not mess with this setting for now until we find some proper documentation on the LCD in our devices. The documentation is kept under tight wraps and requires a signed non disclosure agreement for access.

Q. How do I set the timer delay for mkasick's keyboard patch?
A. Please refer to his post on more information about the keyboard patch http://xdaforums.com/showthread.php?t=975611
A2. theimpaler747 has suggested a lower default value for the keyboard patch and has provided flashable scripts to set it lower. Please refer to his post here: http://xdaforums.com/showthread.php?t=1025533 (If reports are good I will bump this down to the default value on my next release)

Q. I don't want to overclock or undervolt. Can I still use the kernel and will it automatically overclock/undervolt my device?
A. Yes you can absolutely still use the kernel. The default frequencies are 200MHz - 1000MHz at stock voltages. This will not change until you change it yourself.

Q. I flashed a different kernel and I lost root. What gives?
A. Root is now included in the kernel. If you flash a kernel that does not have root built-in then you will need to re-root.

Q. I didn't read or my settings became unstable after setting them on boot. Now my phone freezes when it boots up. What can I do?
A. You have two options. Option 1 is to restore your ClockworkMod backup that I KNOW you did before you started. Or option 2 flash this file with ClockworkMod to erase the boot settings: http://devphone.org/files/epic4g/kernels/Genocide_undervolt_recovery.zip

Q. Where are your sources?
A. Kernel sources can be found here: https://github.com/Rodderik/Genocide-Kernel

Q. Where can I find the link to download the kernel already?
A. After you have read everything, check the next post for links and changelogs. :)

If you like what I've done please consider a donation. I'm usually not one to ask for donations but it's pretty difficult finding a job for me right now so I'm doing what I can.
Please share your undervolt settings so I can compile and recommend a 'safe' starting point to help future flashers. Thanks.

Many thanks to DRockstar, nubecoder, gzub, supercurio, tanimn, mkasick, DevinXtreme, thomasskull666, nullghost, existz, rasdeep, and any other devs that I have forgotten. I apologize in advance. If you feel you deserve credit for something then please PM me and we will get the situation solved quickly.
 
Last edited:

Rodderik

Inactive Recognized Developer
Sep 8, 2010
1,300
1,295
devphone.org
Changelog: (Legend: "+" introduce addition/modification, "-" removed addition/modification, "*" changed addition/modification)

*updated su binary and Superuser.apk (if you still have the old Superuser installed either delete it from /system/app/ or simply update it via market)

Genocide2.0_superuser.zip

2.0
+dual boot support
+new boot logo for v2.0
*fixed typo in cpu code
*Voodoo Sound updated to v10

Genocide2.0_voodoosnd10.zip

1.1
*Tweaks to initramfs for root in adb
-Revert RNDIS patch due to breaking linux (wired tether still works) https://github.com/Rodderik/Genocide-Kernel/commit/b6b221bcb622ff369fa7c1c82543b3e75bb32748
+ClockworkMod 3.1.0.1 Purple Edition & working redirector (DRockstar https://github.com/DRockstar/Clean-Kernel-EC05/commit/ac713f90ec2a2560bc7fb05225341a4e4772a199)
*Busybox handled by recovery binary
*Moved superuser.apk location
*Swapped redbend_ua for bmlwrite
+Other scripts and tweaks from DRockstar into initramfs
+interactive governor + fixes
*ondemand governor fix to not scale below min frequency (nubecoder)
*Voodoo Sound updated to v9
+mountums & umountums added for USB Mass Storage in CWM (DRockstar)
+DroidDream malware prevention code in custom_init.sh script
*Voodoo Sound updated to v8
-Revert lowmemorykiller.c patch (causes kswapd0 to be stuck awake and eat cpu time)
+Kernel splash image was disabled after DK28 - Re-enabled (Stored in Kernel/drivers/video/samsung/logo_rgb24_wvga_portrait_victory.h)
*Add KBUILD_BUILD_VERSION to build.sh
+keytimer script and mods from DRockstar http://xdaforums.com/showthread.php?p=13017148
*initramfs changes (persistant Superuser.apk)

Genocide1.1_FINAL.zip

1.0:
Voodoo Color by supercurio (http://perso.curio.be/android/Voodoo_color_mDNIe_GT-I9000.patch)
*New Overclocks and sysfs undervolting support (rasdeep, existz, tanimn, gzub, and thomasskull666...pulling my hair out over this one)
+Root, custom init scripts, misc tweaks (care of tanimn)
*Voodoo Sound updated to v7
+Conservative governor minimum frequency fix (You rock GZub https://github.com/gzub/EC05-Zub/commit/8a47c52d85d982ef035d24da293bcc046412b63e)
-Remove refresh rate change (We need proper LCD documentation before I can support changing this)
-Clean up github files and rename repo
-Removed video lag & camera force close fix (Samsung fixed the camera issues for EC05)
+Removed iqmsd service from initramfs (CIQ bad!)
+Keyboard delay runtime sysfs patch by mkasick http://xdaforums.com/showthread.php?p=11755093
+TV compile fix (thanks tanimn and nullghost)
*Tweaked config flags and recompiled modules (thanks gzub for the help)
-Keyboard patch by mkasick in preparation for updated patch
+Refresh rate changed from 60 to 72 (slightly better framerates)
*Voodoo Sound updated to v6
+EC05 source merge
+scaling_available_frequencies sysfs patch from nullghost http://xdaforums.com/showthread.php?t=1000309

Genocide_1.0_EC05_1.4GHzOC_UV_VS7_VC_Kernel.zip

0.4a:
+lowmemorykiller.c patch https://github.com/existz/kernel-i9000-suckerpunch/
+Voodoo Sound v4 by supercurio https://github.com/project-voodoo/sound_kernel_patches
+Added sched_autogroup v4 patch (Patch to smooth system under load) https://github.com/existz/kernel-i9000-suckerpunch/ & http://www.phoronix.com/scan.php?page=article&item=linux_2637_video&num=1 NOTE: Enable/disable by echoing either 0 or 1 to /proc/sys/kernel/sched_autogroup_enabled
+Changed swappiness from 60 to 10 (dumps RAM to swap less often for those with a swap partition)
+Wireless Tether fixes by mkasick http://xdaforums.com/showpost.php?p=11808622&postcount=88 (should fix 4G tethering issues)
+Keyboard patch by mkasick http://xdaforums.com/showthread.php?p=11755093
+Battery Status Polling Interval changed from 2000 to 30000 (30 seconds)
+RDNIS Froyo Fix by mkasick (use wired tether from http://xdaforums.com/showthread.php?t=964925)
+Added RNDIS support for Wired Tether https://github.com/DevinXtreme/Xtreme_Epic_Kernel
+Added CONFIG_ARM_THUMBEE=y (as suggested by gzub)
+Set 4k read ahead in mtd_blkdevs.c (faster boot?)
+existz-initramfs-i9000-suckerpunch ported to Epic - BROKEN RIGHT NOW DO NOT USE!!!
+Removed CONFIG_DEBUG_INFO=y (gives us smaller kernel image and all modules including new cifs.ko)
+CFLAGS_KERNEL = -O2 -pipe -mcpu=cortex-a8 -mtune=cortex-a8 -mfloat-abi=soft -mfpu=neon
-Removed About Phone information (Caused FC and weird bugs in apps)
*Fixed error that wouldn't let cpu drop below 200MHz

Genocide0.4a_voodoosnd_20110316.zip

0.3a:
+Set defaults speeds to 200MHz min and 1000MHz max (NOW REQUIRES SETCPU TO OVERCLOCK)
+Compiled in video lag & camera force close fix by mkasick http://xdaforums.com/showthread.php?t=970452
*Fixed issue with Firmware version in About Phone (FIXES PANDORA)
+Set initramfs root UID/GID
+Compiled and added cifs.ko to initramfs
-Removed cifs from kernel (you can try the module if you want but it broke the initramfs with it in there plus it is a nasty 2.3MB)

Genocide_0.3a_EB13_OC-UV_Kernel.zip mirror

0.2a:
+New EB13 initramfs (no more DK28 stuff)
+Added EXT4 Support
+Added bootanimation support
+Updated kernel modules from EB13
+Added recovery (need to test redirector)
+Added Firmware version to About Phone
+Started on Voodoo mods

Genocide_1.2GHzOC_EB13_Kernel_v0.2a.zip mirror

0.1a:
+1.2GHz overclock
+1Ghz 25mV undervolt
+DK28 initramfs (for pre-EB13/OTA compatibility)

Genocide_1.2GHzOC_EB13_Kernel_v0.1a.zip

If for some reason you want to revert back to the kernel that came with your rom you have two options. Before reverting back, I would suggest that you use SetCPU to lock in 1GHz to take advantage of the slight undervolt at 1GHz to save a little more battery. But if you insist the first option is to download and flash one of the following kernels based off which rom you are running:
VIPERrom DK28 RFS/EXT4 Modded Kernel HERE
Bonsai4all DK28 EXT4 Modded Kernel HERE (this includes roms based off of Bonsai as well)
The second option is to be 100% sure you get the right kernel back is to download either zip above and place the zImage into the kernel folder with 7zip. Typically the zImage can be found in your rom of choice's zip under /kernel or /kernel_update.
 
Last edited:

jjjjayd13

Senior Member
Nov 24, 2006
662
37
WOW!

Team Viper 'STAY STRONG' with these Great ROMS!!!

YOur testers say Thank You!!!:cool::cool::cool:
 

ecooce

Senior Member
Nov 13, 2010
1,676
819
Nice job man,I knew you guys would have somthing from EB13 flashable before the weekend was over.

Sent from my MyFrankenstein ROM using XDA App...
 

jjjjayd13

Senior Member
Nov 24, 2006
662
37
ViperCom?

Why didn't ViperCom show this kernel being available?:confused:

edit--EST--5:03am--just saw in ViperCom-Thanks!!!
 
Last edited:

gophergun

Senior Member
Feb 18, 2008
311
2
Thanks, this is really fast. Any chance of someone compiling the browser from it as well? The ones we have are sort of hacky.
 

ecooce

Senior Member
Nov 13, 2010
1,676
819
What are your scores for Frankenstein? ...cuz i know you're ROM comes stock like 98MB or something like that ...so it's already quick as Puff-N-Stuff lol


CAP201102200514.jpg


Nuff said,awesome job,this thing is FAST... Cant wait to see what else is to come. And I have tons of things loaded atm,so I could post better scores when I get an EB13 ROM out.
 
Last edited:

squshy 7

Senior Member
Dec 6, 2010
1,414
450
Oooo first to post this...

LOVE the kernel name man lol

Genocide ftw!

Sent from my baked and emotionless SPH-D700
 

TheBurgh

Senior Member
Sep 30, 2010
1,589
201
Pittsburgh
OnePlus 9
Can anyone help with the scaling settings. Would like a good mix of speed and battery strength. Current setting are conservative (1000000max and 400000min)
 

tpike

Senior Member
id love to see a vid, time lapse or something, of you unfolding this kernel into rich goodness. I'm very interested to learn more about how this works. Maybe start a xda webinar for those wanting to get the skills down...imagine where that could take us, having more educated folks pumping time into creative dev. Either way, Capital R you are the man! Keep the wheels turning.

Sent from my SPH-D700 using XDA App
 

JBakey

Senior Member
Oct 19, 2010
332
81
Runs great. Awesome job man. Finally an oc/uv for froyo!

Sent from my SPH-D700 using XDA App
 

Fangs87

Senior Member
Jun 26, 2010
521
38
backing up and installing now, is it possible to post or get a link to the stock trinity 2.0 kernel incase we run into errors later on ?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 118
    Genocide EC05 Kernel 2.0 |1.4GhzOC|UV|VoodooSound10|VoodooColor|DualBoot
    (Compatible with DK28, EB13, and EC05)

    I am NOT responsible for any damages, fires, race-wars, riots, temporary blindness, killer bee attacks, or anything else that could be remotely tied to downloading this file. You have been warned!


    Features:
    Dual Boot Support!
    Overclockable (1400MHz, 1300MHz, 1200MHz, 1120MHZ)
    Undervolt via sysfs
    ROM MANAGER compatible!
    Working redirector
    Root and busybox built in
    Voodoo Sound v10
    Voodoo Color
    Cifs and tun modules (not loaded by default)
    MANY patches and tweaks
    Much much more!!!

    REQUIRED READING: IF YOU DO NOT READ ALL OF THIS THEN I WILL NOT PROVIDE SUPPORT FOR YOU UNTIL YOU DO!!!!
    1. This kernel is capable of 1.3 & 1.4GHz however the voltage required slightly exceeds (roughly 50mV) the manufacturer's recommended voltage. Enable these AT YOUR OWN RISK.
    2. Just because the kernel is capable of higher clock speeds DOES NOT mean every device will handle them.
    3. DO NOT gripe or complain and trash my thread if you're device doesn't support anything past 1.2GHz. I WILL NOT increase the voltages anymore past recommended specifications.
    4. DO NOT get mad or get your feelings hurt if I tell you to read the original post (OP) instead of answering your question. It means I have already answered it here OR I felt your question(s) needed to be answered in the OP and updated it accordingly.
    5. DO a complete nandroid backup in ClockworkMod BEFORE flashing the kernel or messing with the undervolt settings. Setting values too low CAN cause data corruption. Simply restore your backup that I know you just made. YOU HAVE BEEN WARNED!
    6. BY DEFAULT the ONLY active frequencies are 100MHz, 200MHz, 400MHz, 600MHz, 800MHz, and 1000MHz. In order for the device to use higher frequencies they must be specifically enabled. If you install the kernel you will NOT be automatically overclocked.
    7. The kernel should work with any rom EXCEPT Stock EC05 that is converted to EXT4 AND is NOT deodexed. This is a known issue I am looking into.
    8. PLEASE PLEASE PLEASE take time to read and search this thread before asking questions. I am not a baby sitter and I should not have to spend my time answering the same questions over and over and over again as it takes time away from me improving the kernel or working on my other projects. If you see some one ask a question that has already been answered please do not flame them. It would help me greatly if you could take 5 seconds to answer them or link them to the post with the appropriate answer.


    NOTE: If you are going to overclock I personally recommend you UNINSTALL SetCPU and set your max with Voltage Control or by hand.

    Installation:

    Download the kernel and flash with ClockworkMod.

    How to Dual Boot:
    Information on dual booting can be found here: http://xdaforums.com/showthread.php?p=15378860

    Easy Overclock/Undervolt Method:
    Setting up your frequencies:

    Required software: Voltage Control by xan http://devphone.org/files/epic4g/kernels/VoltageControl_3.0.apk
    1. Backup your device in ClockworkMod and flash the kernel. If you get messed up or confused just reboot your device to undo the changes.
    2. After flashing the kernel, uninstall SetCPU and install Voltage Control (VC).
    3. Open VC and hit 'States' at the bottom to open the States drawer.
    4. Enable your desired frequencies and hit the menu button and 'Apply for now' (DO NOT 'Save as boot settings')
    5. Hit 'States' to retract the States drawer.
    6. Leave the Scheduler as 'cfq' and change Limit clock to your desired max frequency.
    7. Hit the menu button and 'Apply for now' (DO NOT 'Save as boot settings' unless you are 110% sure the settings are stable and you have adequately tested)

    Setting up your personal undervolt settings: (Caution: When figuring out your maximum undervolt settings there is a good chance you will get some data corruption so make sure your backup in ClockworkMod is up to date)
    1. Open VC and select the desired frequency you wish to undervolt.
    2. The green slider goes in increments of -25mV so select that first and take note of the frequency and value. (It is important when testing that you reduce the voltage ONE step at a time)
    3. Hit the menu button and 'Apply for now'
    4. Test the device's stability THOROUGHLY before you move the slider down any further. See the FAQ below for tips on testing stability.
    5. If you feel it is stable then repeat this process and move the slider down one step, write it down, and THOROUGHLY test.
    6. When your device freezes or starts acting weird then you know that value is too much and you should use your previously stable value.

    Repeat this process for each of the other frequencies you wish to undervolt. When you feel you have the stable values that you are comfortable with, open VC and apply your stable values and THOROUGHLY test your device again. After you do all of this, make sure you are 110% certain of the stability before you 'Save as boot settings' and remember you may need to restore your ClockworkMod backup before setting up your final values to ensure no data corruption.

    Advanced Overclock/Undervolt Method:
    Required software: Working 'adb shell' or terminal emulator
    There is NO hand holding here. Make sure you read the Easy Method to familiarize yourself with the process! If you don't know what you are doing then DO NOT attempt this method. If you get messed up or confused just reboot your device to undo the changes.

    Enable active states: echo "0 0 1 1 1 1 1 1 1 1" > /sys/devices/system/cpu/cpu0/cpufreq/states_enabled_table
    Accepted values are 0 and 1. All ten values must be set and this example enables 1200000 to 100000.

    Set maximum frequency: echo "1200000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    Accepted values are 1400000, 1300000, 1200000, 1120000, 1000000, 800000, 600000, 400000, 200000, and 100000.

    Set minimum frequency: echo "200000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
    Accepted values are 1400000, 1300000, 1200000, 1120000, 1000000, 800000, 600000, 400000, 200000, and 100000.

    Set undervolt values: echo "0 0 0 0 25 50 0 0 0 0" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table
    Values are in millivolts. Accepted values are 25, 50, 75, 100, 125, 150, 175, 200. DO NOT USE NEGATIVE NUMBERS. All ten values must be set.

    This example applies a -25mV at 1000000 and -50mV undervolt at 800000.

    To set your values on boot once you find what is stable creat a file name S_volt_scheduler with the following contents and change the values accordingly:
    Code:
    #!/system/bin/sh
    #set UV
    echo "0 0 0 0 25 50 0 0 0 0 " > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table
    echo 1200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    #select enabled states
    echo "0 0 1 1 1 1 1 1 1 1 " > /sys/devices/system/cpu/cpu0/cpufreq/states_enabled_table
    #set scheduler for stl, bml and mmc
    for i in `ls /sys/block/stl*` /sys/block/bml* /sys/block/mmcblk*
    do
    echo "cfq" > $i/queue/scheduler
    done
    Put the file in /etc/init.d/ to apply the settings when the device boots.

    FAQ (Frequently Asked Questions):
    Q. Why isn't my device stable at higher clock speeds?
    A. Many processors are cut at a time from one big wafer of silicon and other materials by the manufacturer. No two processors are exactly the same. From a cost stand point these chips are designed to yield a certain percentage of working chips at given specifications. These chips are made to withstand specific currents and voltages. When we exceed the currents and voltages the chips are designed to handle some will fail.

    Q. What else can I try if I can't run the higher frequencies?
    A. There is not a whole lot you can do. Some things I would suggest is make sure SetCPU is uninstalled. It has been reported SetCPU can cause some stability issues. Another option is to try different roms. Other than that there isn't much you can do. Sorry.

    Q. Do you plan on pushing past 1.4GHz?
    A. No. I do not plan to push any higher than 1.4GHz. Why? I am not going to push the higher voltages that would be required to go any higher. Please don't bother asking me to.

    Q. What are some good ways to test stability while I am figuring out what undervolts my device can handle?
    A. The best way to test stability is going to be setting your max frequency to the frequency you are testing and run benchmark programs like SmartBench that test multiple areas of your device. I recommend spending atleast 5-10 minutes running benchmarks and doing other tasks before you decide a given undervolt is stable.

    Q. Help I was messing with the undervolts and now I get force closes (FC). What can I do?
    A. This is why you made a backup in ClockworkMod. Setting voltage too low can corrupt your data and cause programs to FC. Typically you can reinstall the program or clear the applications data to fix it. As a last resort (and recommended to do anyway after you find your stable values) is to restore your backup from ClockworkMod.

    Q. Why can't I use SetCPU?
    A. You can use SetCPU, how ever I do not recommend it as it can cause conflicts. I am not going to support using it but if you get it working for you then by all means. I have no problems with the program or it's author and I think it is a great program but it just isn't needed and can make things tricky to get working correctly.

    Q. How can I tell what frequencies I will benefit most undervolting or if they are even working?
    A. There are two ways. The easy way is to install CPU Spy http://xdaforums.com/showthread.php?t=1011497. The advanced way is to 'cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state'

    Q. What are the default voltages for the avialable frequencies?
    A. 1400000 @ 1375 mV WARNING: above recommended voltage
    1300000 @ 1325 mV WARNING: above recommended voltage
    1200000 @ 1300 mV
    1120000 @ 1300 mV
    1000000 @ 1275 mV
    800000 @ 1200 mV
    600000 @ 1175 mV
    400000 @ 1050 mV
    200000 @ 950 mV
    100000 @ 950 mV

    Q. I have enabled 100MHz but I can not scale down to 100MHz. Why?
    A. By default the kernel sets 200MHz minimum. In order to scale down to 100MHz you can flash this script to set 100MHz on boot http://devphone.org/files/epic4g/kernels/Genocide_set_min_100MHz.zip or add this line to /system/etc/init.d/S_volt_scheduler:
    Code:
    echo "100000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

    Q. How do I change the governor with terminal emulator or adb shell?
    A. See the answer here: http://xdaforums.com/showpost.php?p=13118624&postcount=1705

    Q. This kernel has Voodoo Sound but I don't hear a difference. What gives?
    A. There are indeed changes but to look at the settings and adjust the volume, download Voodoo Control App from the Market. I highly encourage people to donate to supercurio as he has done some awesome modification and more of his mods will find their way into this kernel soon!

    Q. What is this flashing android on top of my boot animation now? How do I fix it?
    A. On a stock rom, enabling boot animation support in the kernel plays the default boot animation (flashing android logo) over top of Samsung's own boot animation. Check out this thread to get rid of the flashing android or clear Samsung's animation for your custom animations.

    Q. How do I enable CIFS support?
    A. From 'adb shell' or a terminal emulator type 'insmod /lib/modules/cifs.ko'

    Q. How do I enable TUN support?
    A. From 'adb shell' or a terminal emulator type 'insmod /lib/modules/tun.ko'

    Q. How come there is no frame rate increase?
    A. The current method to increase the frame rate is by bumping up the LCD refresh rate. While I am told it should not break the LCD I decided it would be best to not mess with this setting for now until we find some proper documentation on the LCD in our devices. The documentation is kept under tight wraps and requires a signed non disclosure agreement for access.

    Q. How do I set the timer delay for mkasick's keyboard patch?
    A. Please refer to his post on more information about the keyboard patch http://xdaforums.com/showthread.php?t=975611
    A2. theimpaler747 has suggested a lower default value for the keyboard patch and has provided flashable scripts to set it lower. Please refer to his post here: http://xdaforums.com/showthread.php?t=1025533 (If reports are good I will bump this down to the default value on my next release)

    Q. I don't want to overclock or undervolt. Can I still use the kernel and will it automatically overclock/undervolt my device?
    A. Yes you can absolutely still use the kernel. The default frequencies are 200MHz - 1000MHz at stock voltages. This will not change until you change it yourself.

    Q. I flashed a different kernel and I lost root. What gives?
    A. Root is now included in the kernel. If you flash a kernel that does not have root built-in then you will need to re-root.

    Q. I didn't read or my settings became unstable after setting them on boot. Now my phone freezes when it boots up. What can I do?
    A. You have two options. Option 1 is to restore your ClockworkMod backup that I KNOW you did before you started. Or option 2 flash this file with ClockworkMod to erase the boot settings: http://devphone.org/files/epic4g/kernels/Genocide_undervolt_recovery.zip

    Q. Where are your sources?
    A. Kernel sources can be found here: https://github.com/Rodderik/Genocide-Kernel

    Q. Where can I find the link to download the kernel already?
    A. After you have read everything, check the next post for links and changelogs. :)

    If you like what I've done please consider a donation. I'm usually not one to ask for donations but it's pretty difficult finding a job for me right now so I'm doing what I can.
    Please share your undervolt settings so I can compile and recommend a 'safe' starting point to help future flashers. Thanks.

    Many thanks to DRockstar, nubecoder, gzub, supercurio, tanimn, mkasick, DevinXtreme, thomasskull666, nullghost, existz, rasdeep, and any other devs that I have forgotten. I apologize in advance. If you feel you deserve credit for something then please PM me and we will get the situation solved quickly.
    13
    Changelog: (Legend: "+" introduce addition/modification, "-" removed addition/modification, "*" changed addition/modification)

    *updated su binary and Superuser.apk (if you still have the old Superuser installed either delete it from /system/app/ or simply update it via market)

    Genocide2.0_superuser.zip

    2.0
    +dual boot support
    +new boot logo for v2.0
    *fixed typo in cpu code
    *Voodoo Sound updated to v10

    Genocide2.0_voodoosnd10.zip

    1.1
    *Tweaks to initramfs for root in adb
    -Revert RNDIS patch due to breaking linux (wired tether still works) https://github.com/Rodderik/Genocide-Kernel/commit/b6b221bcb622ff369fa7c1c82543b3e75bb32748
    +ClockworkMod 3.1.0.1 Purple Edition & working redirector (DRockstar https://github.com/DRockstar/Clean-Kernel-EC05/commit/ac713f90ec2a2560bc7fb05225341a4e4772a199)
    *Busybox handled by recovery binary
    *Moved superuser.apk location
    *Swapped redbend_ua for bmlwrite
    +Other scripts and tweaks from DRockstar into initramfs
    +interactive governor + fixes
    *ondemand governor fix to not scale below min frequency (nubecoder)
    *Voodoo Sound updated to v9
    +mountums & umountums added for USB Mass Storage in CWM (DRockstar)
    +DroidDream malware prevention code in custom_init.sh script
    *Voodoo Sound updated to v8
    -Revert lowmemorykiller.c patch (causes kswapd0 to be stuck awake and eat cpu time)
    +Kernel splash image was disabled after DK28 - Re-enabled (Stored in Kernel/drivers/video/samsung/logo_rgb24_wvga_portrait_victory.h)
    *Add KBUILD_BUILD_VERSION to build.sh
    +keytimer script and mods from DRockstar http://xdaforums.com/showthread.php?p=13017148
    *initramfs changes (persistant Superuser.apk)

    Genocide1.1_FINAL.zip

    1.0:
    Voodoo Color by supercurio (http://perso.curio.be/android/Voodoo_color_mDNIe_GT-I9000.patch)
    *New Overclocks and sysfs undervolting support (rasdeep, existz, tanimn, gzub, and thomasskull666...pulling my hair out over this one)
    +Root, custom init scripts, misc tweaks (care of tanimn)
    *Voodoo Sound updated to v7
    +Conservative governor minimum frequency fix (You rock GZub https://github.com/gzub/EC05-Zub/commit/8a47c52d85d982ef035d24da293bcc046412b63e)
    -Remove refresh rate change (We need proper LCD documentation before I can support changing this)
    -Clean up github files and rename repo
    -Removed video lag & camera force close fix (Samsung fixed the camera issues for EC05)
    +Removed iqmsd service from initramfs (CIQ bad!)
    +Keyboard delay runtime sysfs patch by mkasick http://xdaforums.com/showthread.php?p=11755093
    +TV compile fix (thanks tanimn and nullghost)
    *Tweaked config flags and recompiled modules (thanks gzub for the help)
    -Keyboard patch by mkasick in preparation for updated patch
    +Refresh rate changed from 60 to 72 (slightly better framerates)
    *Voodoo Sound updated to v6
    +EC05 source merge
    +scaling_available_frequencies sysfs patch from nullghost http://xdaforums.com/showthread.php?t=1000309

    Genocide_1.0_EC05_1.4GHzOC_UV_VS7_VC_Kernel.zip

    0.4a:
    +lowmemorykiller.c patch https://github.com/existz/kernel-i9000-suckerpunch/
    +Voodoo Sound v4 by supercurio https://github.com/project-voodoo/sound_kernel_patches
    +Added sched_autogroup v4 patch (Patch to smooth system under load) https://github.com/existz/kernel-i9000-suckerpunch/ & http://www.phoronix.com/scan.php?page=article&item=linux_2637_video&num=1 NOTE: Enable/disable by echoing either 0 or 1 to /proc/sys/kernel/sched_autogroup_enabled
    +Changed swappiness from 60 to 10 (dumps RAM to swap less often for those with a swap partition)
    +Wireless Tether fixes by mkasick http://xdaforums.com/showpost.php?p=11808622&postcount=88 (should fix 4G tethering issues)
    +Keyboard patch by mkasick http://xdaforums.com/showthread.php?p=11755093
    +Battery Status Polling Interval changed from 2000 to 30000 (30 seconds)
    +RDNIS Froyo Fix by mkasick (use wired tether from http://xdaforums.com/showthread.php?t=964925)
    +Added RNDIS support for Wired Tether https://github.com/DevinXtreme/Xtreme_Epic_Kernel
    +Added CONFIG_ARM_THUMBEE=y (as suggested by gzub)
    +Set 4k read ahead in mtd_blkdevs.c (faster boot?)
    +existz-initramfs-i9000-suckerpunch ported to Epic - BROKEN RIGHT NOW DO NOT USE!!!
    +Removed CONFIG_DEBUG_INFO=y (gives us smaller kernel image and all modules including new cifs.ko)
    +CFLAGS_KERNEL = -O2 -pipe -mcpu=cortex-a8 -mtune=cortex-a8 -mfloat-abi=soft -mfpu=neon
    -Removed About Phone information (Caused FC and weird bugs in apps)
    *Fixed error that wouldn't let cpu drop below 200MHz

    Genocide0.4a_voodoosnd_20110316.zip

    0.3a:
    +Set defaults speeds to 200MHz min and 1000MHz max (NOW REQUIRES SETCPU TO OVERCLOCK)
    +Compiled in video lag & camera force close fix by mkasick http://xdaforums.com/showthread.php?t=970452
    *Fixed issue with Firmware version in About Phone (FIXES PANDORA)
    +Set initramfs root UID/GID
    +Compiled and added cifs.ko to initramfs
    -Removed cifs from kernel (you can try the module if you want but it broke the initramfs with it in there plus it is a nasty 2.3MB)

    Genocide_0.3a_EB13_OC-UV_Kernel.zip mirror

    0.2a:
    +New EB13 initramfs (no more DK28 stuff)
    +Added EXT4 Support
    +Added bootanimation support
    +Updated kernel modules from EB13
    +Added recovery (need to test redirector)
    +Added Firmware version to About Phone
    +Started on Voodoo mods

    Genocide_1.2GHzOC_EB13_Kernel_v0.2a.zip mirror

    0.1a:
    +1.2GHz overclock
    +1Ghz 25mV undervolt
    +DK28 initramfs (for pre-EB13/OTA compatibility)

    Genocide_1.2GHzOC_EB13_Kernel_v0.1a.zip

    If for some reason you want to revert back to the kernel that came with your rom you have two options. Before reverting back, I would suggest that you use SetCPU to lock in 1GHz to take advantage of the slight undervolt at 1GHz to save a little more battery. But if you insist the first option is to download and flash one of the following kernels based off which rom you are running:
    VIPERrom DK28 RFS/EXT4 Modded Kernel HERE
    Bonsai4all DK28 EXT4 Modded Kernel HERE (this includes roms based off of Bonsai as well)
    The second option is to be 100% sure you get the right kernel back is to download either zip above and place the zImage into the kernel folder with 7zip. Typically the zImage can be found in your rom of choice's zip under /kernel or /kernel_update.
    5
    Genocide2.0_superuser.zip

    *updated su binary and Superuser.apk -- if you still have the old Superuser installed either delete it from /system/app/ or simply update it via market...if you still have problems clear the data for Superuser (settings->applications)
    5
    I am really sorry for bringing back to life this thread, but is it possible that some one can upload again the zip of the Genocide Kernel? All the posted links are down and all the mirror show "file not found".

    I really need it, please make my day with this simple action, Thank you very much.

    Genocide2.0_superuser.zip

    https://db.tt/zeIjetJl

    Sent from my SPH-D700 using Tapatalk 2
    4
    just to clarify for some people....

    do not use setcpu to set 1.0 min and 1.2 max! the lower frequencies down to 100mhz use far less power than the undervolted 1ghz.

    For those who want the gains from 1.2Ghz i recommend
    Max: 1200000 (1.2GHz)
    Min: 100000 (100Mhz)
    Scaling: conservative
    and once you test it and feel comfortable that it is stable for you (which it should be) tick 'Set on Boot'

    For those that just want to save battery and not use 1.2GHz i recommend
    Max: 1000000 (1.0GHz)
    Min: 100000 (100Mhz)
    Scaling: conservative
    and once you test it and feel comfortable that it is stable for you (which it should be) tick 'Set on Boot'
    *this will make your phone run at the normal 1Ghz while still undervolted for a little bit better battery life

    i haven't tested with the different governors to see if one of the others is any better than conservative (atleast until we tweak them in the source)

    i hope that clears things up for some people