READ THE NOTES ON SETCPU BELOW BEFORE INSTALLING!!!
I've just spent the last few days bothering to understand the Eris cpu frequency manipulation in the recently released kernel. I know a few people have already released kernels and ROMs with an overclock-enabled kernel based upon the work done for the Hero, but there are some additional complications with this one.
TECHNICAL INFO FOR GEEKS
There are 4 "clock sources" on this thing, at least. They're called txc0 (the base clock), mpll (modem phase lock loop), gpll (global PLL), and bpll0 (backup PLL zero). The processor can handle a bpll1 as well, but if it's there, it's nearly completely unconfigured. They run at these frequencies:
txc0: 19200kHz
mpll: 245760kHz
gpll: 960000kHz
bpll0: 1056000kHz
The way our cpu handles changing frequencies (at least by default) is to select between these 4 sources, and apply a divider of 1 through 16 to it. There are a number of frequencies that the kernel steps through when changing between frequencies, and they're all specified as source/divider conbinations in the acpuclock-arm11.c file in the kernel, but the only ones exported to the cpufreq module (the thing that setcpu uses) are the following (these are the same frequencies you'll see in SetCPU if you select msm7k turbo, aka Hero):
19200 (txc0)
122880 (mpll/5)
160000 (gpll/6)
245760 (mpll)
480000 (gpll/2)
528000 (bpll0/2)
If you're particularly math-savvy, you'll realize that there's no way to get any frequencies between 528MHz and 960MHz using this whole "source/divider" method. It's been tried, by myself and others, to clock our cpu at 960MHz...it simply doesn't work, sorry guys.
So, someone really bright figured out that you can actually change the configuration of bpll0 itself on the Hero, by writing a multiplier (of the txc0 frequency) to a magic location on the board. This way, we could set the bpll0 source to whatever base frequency we wanted! That worked quite well for the Hero -- set the bpll0 source to the cpu frequency we wanted, and remove the divider, and you get any multiple of 19.2MHz that you'd like.
In the overly complicated (and redundant) table of frequencies in the acpuclock-arm11.c source code, there's an AHB frequency field, and an AHB clock divider. The AHB bus is like the PCI bus on a computer -- it runs wifi, usb, and things like that. The frequency listed in the table is completely for humans, as the code doesn't use it anywhere. However, the divider is applied to the *CPU frequency*, and the max it can be is 4 (it's only a 2-bit field, 0, 1, 2, or 3 -- add one to the value to get the divider value). At 528MHz cpu speed, the bus is at 132MHz with the max multiplier, and there's no way to overclock the CPU without also overclocking the AHB bus. C'est la vie.
On the Eris, there are further issues. The first of which is PerfLock.
Even before trying of overclock, I'm sure some of you installed setcpu and noticed that you could set the sliders to anything you wanted, and the cpu ignored you. It would stay at 480min/528max, no matter what, while the screen was on. (It actually went to 245.76min/254.76max while the screen was off, but that's harder to notice.) This is because the lovely people at HTC were trying to conserve power by scaling down the cpu when you weren't using the phone, and still have it be responsive when you were actually fiddling with it. In order to have setcpu work, we need to disable the perflock hooks into the cpufreq module.
The second issue is that bpll0 is used by something other than the CPU. I don't know what, but I do know that setting the base clock to much less than 700MHz makes it mighty unstable, and that it gets even *more* unstable as you *decrease* the frequency, which means that whatever else is using that source really doesn't like to get underclocked. So, we have a balancing game: The bpll0 source needs to be high enough that we're not severely underclocking the other hardware, and low enough that we're not cooking the CPU.
I tried two ways around this. First, I decided to become really bright myself, and I found the config locations for the gpll and mpll sources as well, and tried using the gpll source instead of bpll0. I did manage to clock gpll up and down, but anything other than 960MHz seemed very unstable. I suspect that a lot of the phone hardware is based on that source -- it is called "global", after all. The second way was to overclock the bpll0 source and keep the divider of 2, instead of underclocking it. That actually worked, but became unstable when the frequency got much higher than 650. So, I reverted to using bpll0 at 768 with no divider, which has been very stable thus far.
I tried, in fact, every multiple of 19.2 between 528 and 864. The sweet spot of stability is at 768, and anything higher or lower rapidly loses stability.
The next issue, also related to power saving, is the power collapse stepping. The kernel actually steps the kernel down to "idle", consuming the least amount of power, by bringing the cpu all the way down to 19.2MHz when idle. For every jump of more than 256MHz, up or down, the phone goes through this series of frequency jumps specified by the "up" and "down" fields of the frequency table, which are just indexes into the same table for the next frequency in the sequence. Existing patches that simply copy the 528 line as a whole and alter only the frequency and divider will lead to problems in two ways: First, if you try to jump from 480 to, say, 768, it will fail. The kernel will tell you that it's now running at 768, but it will actually still be running at 480, because the "up" field of the 480 entry is invalid and the difference is greater than 256. The 528 frequency is within 256 of 480, so there was no reason to put a valid entry there. This means that if you're using the ondemand governor, *sometimes* it will successfully overclock, and sometimes it won't. I observed this with my own testing, both in performance tests and in the debug logs for the kernel. Second, if you try to collapse *down* from 768, the "down" field of the 528 entry brings it down to 352, which is going to be more than 256, which causes the CPU to become unstable.
With the existing patches, it would just *leave* the bpll0 multiplier at the lower value, meaning that during power collapse, the intermediate frequencies would be different than the driver suspected, and larger than 256MHz of a jump as well, making the phone significantly less stable. It's just bad all around.
To make matters even more complicated, if you actually get rid of the perflock hooks, the cpufreq module defaults to setting the min and max to the lowest and highest available frequencies, causing major mayhem if your phone can't actually handle the overclocked frequencies that are enabled in the kernel.
WHAT I'VE DONE
This patch (attached), when applied to the Eris 2.1 kernel source from HTC, with the config taken directly from the leaked rom of the phone, will give you a kernel that will obey setcpu, will set the default min/max upon boot to 245.76/528 so you're not overclocking by default, enables the "auto" mode of setcpu, adds a frequency of 768MHz, and fixes up the step up/down fields of the table to make the ondemand and power collapse dynamic frequency steppings work consistently and as expected (by restoring the correct PLL multiplier for every frequency, adding correct steppings to 528, 480, and 768 entries, and being sure increase divider and decrease multipliers before decreasing dividers or increasing multipliers). Oh, and I enabled the netfilter module required by DroidWall, because about five million people asked me to.
Because I'm nice and a lot of people don't like compiling their own kernels, I've also attached a flashable update.zip that flashes a new boot.img (ramdisk+kernel) and installs the corresponding wifi driver.
I get a 50% increase in Linpack scores with the below patch. (I'm running Ivan's 0.8T2 right now, went from 2.2 at 528MHz to 3.3 at 768MHz.)
EDITED TO ADD:
A number of people have asked what my SetCPU profiles look like. They look like this:
Default: 480/768 (I have it clock down to 480 instead of 528 because 480 actually uses a lower voltage.)
Standby: 160/245 (I like battery life. It takes a while to show me who's calling, though, when it rings while in standby.)
Failsafe: 40C/245/245 (40 degrees is probably too hot. I want to stop it before it melts, which would be around 50 degrees.)
UPDATE: V2
So, 768MHz is the sweet spot on *my* phone, but apparently not all are created equal. I've added two more frequencies, 604.8MHz (overclocking bpll0 to 1209.6MHz and dividing by 2) and 710.4MHz (underclocking bpll0 to 710.4MHz). There's a notable gap between 604.8 and 710.4 to avoid the particularly unstable bpll0 settings. Everyone's phone seems to be able to handle 710, though. Everyone should be able to safely scale up and down through these frequencies.
UPDATE: V3
I've added every frequency step between 710.4MHz and 864MHz in this one, skipping over the unstable frequencies between 604.8MHz and 710.4MHz. On my own phone, I started getting really odd performance issues at 806.4MHz, and it insta-crashed at 844.8MHz. It's worth noting that all frequencies above 768 have an additional power collapse frequency to step through -- I noticed some *average* performance decreases, even though the fastest linpack runs were still faster than at 768MHz.
HOW TO USE
If you're just wanting to run the kernel and enable overclocking, do the following:
Install SetCPU, if you haven't already. It's available here on XDA for free and for $0.99 on the Market.
In SetCPU, choose the "HTC Hero/Tattoo [MSM7k Turbo]" option from the device selection menu. The CPU will happily ignore you, but setting it to this means that you won't enter a reboot loop after patching when SetCPU starts and overclocks your CPU entirely too much.
Make sure the "Set on Boot" option is unchecked, until you're absolutely certain that the settings you've got won't freeze your phone. Also, turn off profiles.
Flash the latest kernel-overclock-update-v*.zip below, using your favorite method, and boot your phone. Note that this kernel update will not overclock your phone until SetCPU tells it to -- the default policy is 245.76MHz min, 528MHz max, ondemand.
Start SetCPU, hit menu, and go to device selection. This time, select "Autodetect Settings". Make sure that the FIRST thing you do after device selection is move the max slider down to 528, so your phone doesn't insta-lock on you when SetCPU applies settings.
Change the governor to "performance" (which means it will always use the highest frequency in the range), and start incrementing the max up from 528MHz, one step at a time, releasing your finger each step (SetCPU applies the change when you let go of the slider), until your phone freezes.
Remember the bit about not checking the "Set at Boot" option? This is why. Reboot your phone (this will probably involve pulling the battery, if the phone didn't reboot on its own), and start SetCPU again. SetCPU very nicely shows you the last settings you saved, but does not apply them, which is nice because those settings will lock your phone. Lower the max setting to something that won't lock your phone, put the governor back to "ondemand", and set up profiles how you like.
If you would like to add this kernel to your ROM, do the following:
Create a boot.img for your rom, using the "zImage" file in the latest kernel-overclock-zimage-v*.zip below. You'll likely need mkbootimg for this. If you're making your own ROMs, you should already know everything needed for this except perhaps that you need to use the "--base 0x11200000" option.
Make sure your ROM places the wlan.ko file from the same zipfile at "/system/lib/modules/wlan.ko".
If you'd like to apply this patch and compile the kernel for yourself, do the following:
Download and extract the latest Eris kernel source. This patch is applied against the source distributed as "desirec_2.6.29_8a03cb9a.tar.bz2". Google is your friend for finding it.
Install the Android NDK, if you haven't already. I recommend version r3. Make sure that "build/prebuilt/linux-x86/arm-eabi-4.4.0/bin" under the top-level NDK directory is in your PATH, or the kernel build won't be able to find your compilers.
In the top-level directory of the kernel source, run "make desirec_defconfig". This will generate the .config file used to configure the kernel.
Download the latest "kernel-overclock-v*.patch.txt" file below, to the top-level kernel source directory. (It actually doesn't matter where you download it, just be sure to specify the correct path to it in the command below.)
In the top-level kernel source directory, run "patch -p1 < kernel-overclock-v*.patch.txt". (I assume here that you have the "patch" utility. If not, go get it.)
Still in the top-level kernel source directory, run "make". When all is said and done, you'll have the compiled kernel at "arch/arm/boot/zImage".
Get the wlan.ko driver source. Easiest way is to install git and run "git clone git://android.git.kernel.org/platform/system/wlan/ti.git" in the directory you'd like to download it to.
Change to the sta_dk_4_0_4_32 directory under the wlan.ko source.
Set the KERNEL_DIR environment variable to the path to your top-level kernel source from above, and run "make". When all is said and done, the wlan.ko module will be in the same directory.
V1 RELEASE FILES:
eris21-overclock-v1.patch.txt - patch for the kernel source code. To apply, untar the kernel source, run "make desirec_defconfig", then apply the patch (usually "patch -p1 < eris21-overclock.patch.txt"). Modify how you like and build.
kernel-overclock-zimage-v1.zip - zip containing the the kernel itself and the wlan.ko module, for addition to other ROMs.
V2 RELEASE FILES
eris21-overclock-v2.patch.txt - patch for the kernel source code. To apply, untar the kernel source, run "make desirec_defconfig", then apply the patch (usually "patch -p1 < eris21-overclock.patch.txt"). Modify how you like and build.
kernel-overclock-zimage-v2.zip - non-flashable zip containing the the kernel itself and wlan.ko module, for addition to other ROMs.
V3 RELEASE FILES
eris21-overclock-v3.patch.txt - patch for the kernel source code. To apply, untar the kernel source, run "make desirec_defconfig", then apply the patch (usually "patch -p1 < eris21-overclock.patch.txt"). Modify how you like and build.
kernel-overclock-update-v3.zip - flashable update.zip to install boot.img containing the built OC kernel and corresponding wifi module.
kernel-overclock-zimage-v3.zip - non-flashable zip containing the the kernel itself and wlan.ko module, for addition to other ROMs.
NOTES ON SETCPU
SetCPU doesn't actually set parameters until you make a change, and it will default to min/max at 19.2/864, which is clearly going to crash on every Eris we've tried. When you flash this, be sure to do the following, or it's your own darn fault if you get stuck in a reboot loop!
Clear out your setcpu settings before you flash. This means deleting the file /data/data/com.mhuang.overclocking/shared_prefs/setcpu.xml .
Select "Autodetect" on the device selection screen
Make sure that SetCPU is not set to start at boot, until you know you've found settings that won't freeze your phone on boot.
Make sure that the first thing you set is to move the max down to a value you know is stable. If it's your first time, set it to 528 and increment up from there.
The "performance" governor is like "always use the highest frequency of the range". It's useful for testing.
kick arse.
Pretty awesome will be checking it out on wifes phone. I think after reading all of that I personally feel smarter good work.
Thank You.
There is a reason those of us who don't post much have an enormous amount of respect for you.
This is it....
Your contributions have added more then most people will ever know.
thanks man
mad props zan man!
you are awesome.
Thank you so much!
Thanks man .......
WOW. I'll just echo the sentiment. I feel much smarter now.
After using ur update.zip over v17.zip now im getting 5.15 MFLOPS and 2658ms at 768MHz and thats with LWP running in the background of the n1 launcher
Thank you very much for enabling Netfilter modules for Droidwall. I been looking for a rom that supports this feature for Eris for a while. Nice work on OC too.
Thanks again! Zanfur you are da man!
great info. thanks for all your work you put in here. im great with computer, and i learned a LOT from that.
i really wish xda had a thanks button.
Can I flash this overtop of the Evil Eris 2.01 update?
carpsworld said:
Can I flash this overtop of the Evil Eris 2.01 update?
Click to expand...
Click to collapse
I expect so. I'd ask Framework about that directly though. You can always nandroid backup and try it... ;-)
zanfur said:
I expect so. I'd ask Framework about that directly though. You can always nandroid backup and try it... ;-)
Click to expand...
Click to collapse
I just tried that. So far so good. Benchmark numbers have imporved since flashing the update, but that could just be the 768MHz versus the 710MHz difference.
Installed over top of Evil Eris 2.01 update. It did not work. Stuck at boot screen.
g00gl3 said:
I just tried that. So far so good. Benchmark numbers have imporved since flashing the update, but that could just be the 768MHz versus the 710MHz difference.
Click to expand...
Click to collapse
How long did it take for you reboot. Which file did you use from the initial post?
carpsworld said:
How long did it take for you reboot. Which file did you use from the initial post?
Click to expand...
Click to collapse
It was actually very quick, not like when installing a new rom. I used the .zip file in the first post. Always remeber to nandroid backup just in case...
I would recommend downloading the file again and try to flash it again. Just restore back to your backup from before this attempt and give it another shot.
Now my nan backup isn't working either...ugh.
You can search all you want and still come up short, I'm trying to use system tuner to change the cpu and gpu settings and I cant find any help on how to use this app. Im running the latest Kaos Droid rom for 4.1.2, the latest Motley kernel and twrp, props to all developers:good:. Im looking for what the optimal settings are and how to use system tuner to change them. Can someone tell me or show me the right thread that can help? Im not sure what the min/max cpu settings should be and I cant seem to find where to change the gpu settings. We are all noobs at some point. I just want to beef my nexus up a little, nothing crazy.
aww for real?
I wouldn't use system tuner for this because it doesn't have the ability to change the GPU speed. I'd recommend TricksterMOD which is available here for free. Depending on your kernel (not sure if motley's kernel has configurable GPU now, it didn't when I used it) you can change different settings. It is personally up to you how you want to configure your device and change things depending on how it runs. Anyway, I'll give you an idea of my settings that I have changed.
CPU - Governor is Interactive (my kernels default but another alternative would be ondemand) running @ 102mhz min - 1600mhz max
IO - Governor is deadline (again default but imo the only one you should use) with cache at 1024.
GPU - 600mhz
VOLTAGES - My kernels defaults.
Make sure that you set the settings to be applied at boot (I use a delay of 1 because it didn't seem to apply without it) and also make sure your kernel has the powerHAL fix included, or else (in the case of trinity kernel) you will need to download this file (this is for Android 4.2.x). This will allow your CPU overclock to stick and not be reset to stock.
Hopefully this helps! But again, just play around with your frequency's and maybe look into voltage tweaking to get your personal balance between performance and power consumption. And if you are going for performance, I'd look at turning off fsync and using the ext4 mount script to boost your I/O dramatically (this will result in things such as faster app installs)
smt8544 thanks alot man! now I can start somewhere, I didnt wanna do anything stupid without some knowledge, I appreciate it!
As the title says. No governor, be it on-demand or performance, doesn't stay after a reboot. I've tried Adam, Perseus, issue persists on both of them! Is this because of this new 4.3? If I remember correctly this wasn't a problem on 4.2! I've tried with SetCPU, No Frills, nothing...I always used performance, now I can't set it and it bothers me very much....
Anyone?
Sent from my GT-I9500 using Tapatalk
Have you got more than one app actively trying to set the governor ? You've said you're using SetCPU, but make sure the rom (Performance Control for example) or kernel doesn't have an app that's also trying to set the governor on boot for example. If they are, disable those & then try with SetCPU.
MistahBungle said:
Have you got more than one app actively trying to set the governor ? You've said you're using SetCPU, but make sure the rom (Performance Control for example) or kernel doesn't have an app that's also trying to set the governor on boot for example. If they are, disable those & then try with SetCPU.
Click to expand...
Click to collapse
Well I have tried with either Adam or Perseus, and in that case S-Tweaks and Synapse are automatically installed respectively. And I don't see there's any setting under those apps to change Governor! So I am forced to use SetCPU, are you saying I should uninstall S-Tweaks or Synapse in order to get SetCPU working properly? Because there's no visible settings under S-Tweaks or Synapse to change governor but there could/must be a hidden setting there which changes Governor at each reboot! and probably conflicts with SetCPU?
Actually, first up, try clearing cache/data on SetCPU, reboot, apply settings you want, reboot & see if they stick.
Then try uninstalling those other apps which might be conflicting. Also, check in rom settings to see if you have anything like Performance Control which might be setting something at boot. Also check to see if you have an init.d folder/if there's any scripts lurking in there which might be causing problems.
MistahBungle said:
Actually, first up, try clearing cache/data on SetCPU, reboot, apply settings you want, reboot & see if they stick.
Then try uninstalling those other apps which might be conflicting. Also, check in rom settings to see if you have anything like Performance Control which might be setting something at boot. Also check to see if you have an init.d folder/if there's any scripts lurking in there which might be causing problems.
Click to expand...
Click to collapse
Nah, tried everything, no profile sticks, even master wiped the device with full stock ROM and kernel, nothing. It's not actually a reboot needed for the default governor/settings to take place, if I just turn the screen off and turn it back on after a minute or so the set governor by me doesn't stick.
I am quite sure this is how it is suppose to be, but whatever, I don't like it. The fluidity I have seen with performance, well nothing could beat it. Maybe the CPU architecture of i9500 is the thing to blame here. Damn...
That's really weird. Maybe try another app other than SetCPU (or a bunch of them) ? Some kernels have variables that can't be set by the user or you can set them but they immediately go back to whatever setting the dev who made the kernel wants them to be at (some individual governor settings like sampling rates/etc), but setting the actual governor shouldn't be one of those. If the governor is available in the kernel, you should be able to both set it 'on the fly' and set it on boot.
MistahBungle said:
That's really weird. Maybe try another app other than SetCPU (or a bunch of them) ? Some kernels have variables that can't be set by the user or you can set them but they immediately go back to whatever setting the dev who made the kernel wants them to be at (some individual governor settings like sampling rates/etc), but setting the actual governor shouldn't be one of those. If the governor is available in the kernel, you should be able to both set it 'on the fly' and set it on boot.
Click to expand...
Click to collapse
Nah, not really weird as I understand it now. CPU hits throttle temp at 1.6 GHz and automatically defaults out at a lower clock rate, in this case 800 MHz. That's just too bad for me anyway, I have never used anything besides performance, now I am forced to use something else! I wonder how come no one has mentioned this yet!
I rooted and am running tek s ROM. The phone has been super laggy and slow since I flashed that ROM. Any advice.
Have you switched the governor to interactive or on-demand? That's the most important piece. The below link has a bunch of tips (universal to qualcomm/US S7 and S7e) to improve performance.
http://forum.xda-developers.com/ver...-to-notes-root-install-xposed-unroot-t3411039
pitbullmommy45245 said:
I rooted and am running tek s ROM. The phone has been super laggy and slow since I flashed that ROM. Any advice.
Click to expand...
Click to collapse
Check the thread under Guides about common problems and fixes.
I did but I didn't see a fix for this. I did what another member told me to do and it worked.
pitbullmommy45245 said:
I did but I didn't see a fix for this. I did what another member told me to do and it worked.
Click to expand...
Click to collapse
Bug #1: Phone is laggy after rooting the phone/Battery is down the tank.
Fix: The phone is (partially) lagging because the ENG bootloader automatically sets the CPU governor to "Performance." While this is supposed to lock the CPU frequency at the maximum values, it does cause a lot of heat and possibly throttling. Additionally, the max core clocks are set to 1.593Ghz instead of their actual maximums. Not every CPU Tuner will allow you to set the big cores separately, so look around for one that does if you don't want to use Kernel Toolkit.
First, use Flashify to flash one of two zips provided by psouza4 on our sister Verizon Galaxy S7 (Edge) threads.
1. Kernel fixes & tweaks V15
2. Kernel fixes, tweaks, & Debloater
You need only flash one of these two zips. One additionally debloats the system, one does not. Choose whichever suits your needs.
What the zips do:
CLICK TO SHOW CONTENT
Next, install a CPU Tuner utility like Kernel Toolkit, then change the governor from "Performance" to "Interactive." Also change the max CPU frequency of the little cores to 1.593Ghz and the big cores to 2.150Ghz while you're at it. Leave the cores at their default minimum frequency. This will go a long way to improving the speed of the phone. Also make sure you that have the new settings to apply on boot. Every kernel manager should have this option somewhere.
Note: Although the max frequency in the settings screen will drop to some number, as long as you can see the CPU ramp up to the new settings in the information screen, then everything is fine. You can test the max frequency by turning the screen off and then back on.
Then, install sEFix and set entropy to "Ultra."
Lastly, install L Speed and:
Code:
-Main Tweaks: Turn on
-Battery Improvement
-OOM Killer
-Kernel Tweaks - "Light"
-CPU Tuner: Turn on
-CPU Optimizer
-LNET Optimizer: Turn on
-Google DNS
-Faster Streaming
-Faster Dormancy
-IO Tweaks: Turn on
-IO Boost
-Partition Remount
-RAM Manager
-Balanced
-Seeder
-Moderate
Literally the first bug and fix on the guide.
Just downloaded the latest version of franco kernel manager 6.1. Im a total noob in terms of using this tool, so I've been looking for a guide or a tutorial that can assist in using it. Also what is the method of flashing the franco kernel from this tool? Where can I download the franco kernel.zip? I have been looking all over, cant seem to find it. Plz help
Im currently on RR Rom latest version 8.6.3. Im looking for a setting to enhance battery life and overall performance of the Phone.
rigerp said:
Just downloaded the latest version of franco kernel manager 6.1. Im a total noob in terms of using this tool, so I've been looking for a guide or a tutorial that can assist in using it. Also what is the method of flashing the franco kernel from this tool? Where can I download the franco kernel.zip? I have been looking all over, cant seem to find it. Plz help
Im currently on RR Rom latest version 8.6.3. Im looking for a setting to enhance battery life and overall performance of the Phone.
Click to expand...
Click to collapse
Hey there
What I did to get Franco kernel was flash it during my first time rooting (so it was a clean flash, as the phone had be factory reset). Once you're in TWRP, you flash Franco kernel and then magisk. This is one way to do it. I can't advise you to flash a new kernel without clean flash because I personally didn't do it and I don't know if issues will come from that. If you can do it, my personal advice is to just do a clean flash. You know the drill, wipe system data and that stuff > flash ROM > Kernel > Magisk, and done
As for where you can get the zip, there is a thread here in the OP5 XDA forum on ROMs and Kernels I think and that's where franco posted the kernels. He's got a website too linked in the same post
HOWEVER, he hasn't updated them since last year, and I don't think they have support for Android 10, only 9
As for settings, well, in my own experience, you won't get any noticeable boost in battery life or performance without doing some drastic change.
If you want better battery life, you can decrease the maximum CPU frequency, change the governor to Conservative or Powersave, disable some cores, or all of those at once, but they WILL degrade performance, sometimes you won't notice but then you'll try to load a heavy webpage on Chrome and then you'll REALLY notice it.
The inverse is also true. To increase performance you change the governor to performance; usually the CPU frequency is set to its maximum by default, and the cores are all enabled anyway so you don't have to change anything. BUT, keeping the governor in Performance will also keep the CPU clocks at its maximum, and that's going to drain your battery like CRAZY, plus it'll overheat it. Usually there is no practical need for this setting, but I use it to play games on Dolphin emulator since thats when I can actually make use of that performance.
A better alternative is to keep the governor on Interactive, which will scale up CPU clocks depending on the load (if doing light stuff, low clocks. Heavy stuff > high clocks). Otherwise, Conservative does the same thing but takes longer to use higher clocks, so battery is saved.
Always use 1 governor for all cores. Do NOT use multiple governors (example: powersave for big cores, performance for little cores) because that will cause instability issues
Also, if you make any changes, you gotta tap the toggle on it, which will say something like "stay on boot: true". Otherwise, if you for instance change your governor to Performance, and then reboot, all your changes will reset to Default
Personally I just keep my governor in Conservative and roll with the defaults.
Hope that helps ya
sorry for digging but I was loooking for solution..
just make a backup of present kernel (tuned with FKM) and then flash it from backup menu
I was trying flash with twrp, magisk, 'set on boot' at first and many other things but it was so simple, it's there all the time