Ouh that i use fhd+ default settings
Ouh that i use fhd+ default settings
R58 is Up!
Changelog
Download
Uploaded also latest adaway_hosts_patcher.zip, that you can flash in recovery. This will replace your "/system/etc/hosts" file.
In addition it's patched to fix high battery draining / 100 % CPU load, when using YouTube Vanced or Youtube Music from Vanced team.
Some functions like:After you pass license check, other apps should work, at least partially due to missing support for my custom kernel sysfs interfaces. But what is missing in A2N app? - Maybe I can add the missing features.
Some functions like:
-change minimum CPU/GPU clock;
-show CPU/GPU/battery temperature;
-Build.prop editor;
-LMK editor (Low Memory Killer);
-HMP editor (Heterogeneous multi-processing).
if you can put it that functions would be interesting
Thanks for the hints!Some functions like:
-change minimum CPU/GPU clock;
-show CPU/GPU/battery temperature;
-Build.prop editor;
-LMK editor (Low Memory Killer);
-HMP editor (Heterogeneous multi-processing).
if you can put it that functions would be interesting
Okay, Thx!Thanks for the hints!
I can consider to add CPU/GPU temp in next update.
Battery temp is already there, check it.
The other settings are interesting too, but they will not be added, because it won't have any benefit charging the default values, which are already optimized to the max.
Except build.prop editor, but it has nothing to do with the kernel and therefore it'll not be added in a kernel control app.
As for LMK: Android (the ROM) will pass at boot proper values to the Android LMK in kernel. Those values are already good and stable.
You can try to edit the 6 "minfree" values and usually you can also change the 6 "adj" values which corresponds to the minfree values.
There are apps that are able to change the minfree values or have presets, but those presets are not suitable because they depend on the amount of RAM, device dpi and Android version. In addition they don't adjust the "adj" values.
I’ve often been sceptical about Ace’s claims that frequency scaling is already optimized so much that putting min same as max frequency would yield no benefit.Thanks for the hints!
I can consider to add CPU/GPU temp in next update.
Battery temp is already there, check it.
The other settings are interesting too, but they will not be added, because it won't have any benefit changing the default values, which are already optimized to the max.
Except build.prop editor, but it has nothing to do with the kernel and therefore it'll not be added in a kernel control app.
As for LMK: Android (the ROM) will pass at boot proper values to the Android LMK in kernel. Those values are already good and stable.
You can try to edit the 6 "minfree" values and usually you can also change the 6 "adj" values which corresponds to the minfree values.
There are apps that are able to change the minfree values or have presets, but those presets are not suitable because they depend on the amount of RAM, device dpi and Android version. In addition they don't adjust the "adj" values.
I have no problem =]
No issues here
stable in my position
Hey @ace2nutzer can I quote you in a YT video I made about an OC'ed S8 3DMark run? So people looking to root their S8 know where they should look.
Stable Sir
It is stable in mine. (G955FD)
Revive your Samsung Galaxy S8 / S8 Plus phone in 2023!
Fastest custom kernel world-wide with lots of innovative features!
Supports all S8 / S8+ Plus / Note8 Exynos Variants Running Android 9
A2N Kernel Special Features
- Google Play - certified device
- SafetyNet: OK
- DRM: L1/L3 patch (you can apply L1 or L3 patch over A2N app demo version)
- 100 % compatible with latest Magisk
- Banking apps works fine
- Charger control for faster charging
- Battery IDLE and battery care
- Stable CPU OC up to 4 x 2,8 GHz
- Stable GPU OC up to 20 x 839 MHz
- Adjustable CPU / GPU - Max Temp
- Adjustable Battery Max Temp
- Voltage control for all clocks (CPU lit/big - GPU - RAM - bus clocks etc..)
- Fixed time to full battery
- Flashlight tuning
- Wireguard backend support - always latest version
- DriveDroid backend support
- Dex with any HDMI adapter - thanks @ Barna Keresztes
- Samsung Dex: WQHD support with every adapter - thanks @ craftingmod
- Higher SOT - with new battery up to 10 h, with old battery see screenshots
- Wi-Fi calling & VoLTE works
- S8: RAM upgrade - 3679 @ 3717 MB
- Note8: RAM upgrade - 5339 @ 5376 MB
- SELinux in permissive mode - thanks @Noxxxious
- DRM - L3 stable streaming
- Replaced SSWAP with zRam (RAM compression) - with fast LZ4 compressor
- Added backend NTFS, CIFS and NFS support
- Removed enforced device encryption - you can enable it in Android security settings
- HMP driver fix
- Added extra gamepads drivers: Xbox / Sony PS / Nintendo Wii
- Ability to set different CPU Freq while screen ON/OFF
- Ability to use only the little CPU
- Proper support for Korean version (proper Wi-Fi power)
- and many more ...
This Kernel Aims are to
- reduce the power consumption
- reduce device heat
- improve the performance
- make it more smooth
- reduce RAM usage
- improve RAM management
- extend device features
- and many more ...
A2N Kernel Control - App Features
Best way to tune this kernel to your needs
Note: 3-party kernel manager apps do not work with this kernel.
# App Features #
# CPU/GPU
-- Overclock Control
-- Voltage Control
-- Stable CPU OC up to 2,0 GHz/2,8 GHz (lit/big)
-- Stable GPU OC up to 839 MHz
Ability to use different CPU Freqs while the screen is OFF.
Ability to disable boost, for better battery life.
Governor up_threshold, to adjust balance between performance and powersave.
DVFS Max Temp (thermal throttling) - Range: 55 - 100 °C - Default 65 °C.
To avoid too big performance drops from stock thermal throttling driver.
-- Input Booster
Adjust touch boost CPU duration in ms, to improve scrolling.
Ability to use only the little CPU.
# Performance Profiles
-- Powersave
-- Balanced (Power Efficient)
-- Performance (Kernel Default, customizable in CPU/GPU menu)
-- Performance Plus (Gaming / OC) (customizable CPU/GPU Freq below the profile)
# Power
-- Charger Control
Adjustable Max input current in 100 mA steps. - Range: 200 - 3000/3300/3500 mA (S8/Note8/S8+) - Default: 1500 mA.
This affects the time required for charging the battery.
For the S8: the original AC charger (9.0 V -- 1.67 A // 5.0 V -- 2.0 A) is enough to achieve 3000 mA charging current.
For the S8+ make sure that your USB charger supports min. 9.0 V -- 2.0 A or 5.0 V -- 3.5 A.
-- Battery Informations
Charging current, input voltage (5 or 9 V), temperature and voltage.
-- Battery Care
E.g. stop charging at 95 % to reduce battery aging. - Range: 50 - 100 % - Default 100 %.
Battery IDLE feature, useful for DeX or gaming.
Limit charging temperature. - Range: 30 - 45 °C - Default 40 °C.
This will throttle charger input current if needed.
-- Battery Service
Shows charge cycles and ability to reset it.
Check real battery capacity in % / mAh and ability to reset it. (battery gauge recalibration)
-- Disable (Buggy) Moisture Detection
Ability to disable this, for the case that the USB- or Jack port is dry but you get still a warning.
# Screen
HDMI/DEX custom resolution changer (to fix low resolution / refresh rate)
# RAM
-- Memory Management
Swap / zRam* - LZ4 compressed swap block-device in RAM - Choice: 0 - 100 % of RAM size.
Adjust Swappiness, page-cluster and read_ahead_kb.
Ability to drop caches / buffers, to free RAM.
* For multitasking, gaming, responsiveness and battery life.
# Network
Load kernel module for network file systems
SMB2/SMB3 / CIFS
NFS v2, v3 & v4
L2TP - used for VPN.
Wireguard - Secure Network Tunnel.
TCP Congestion Control - Choice: cubic, new reno, bic, westwood+ etc ...
Wi-Fi Band Selection, choice: "2.4 GHz / 5 GHz", "2.4 GHz only" or "5 GHz only".
# Misc
-- Torchlight Tuning
Increase brightness. - Range: 1 - 17 (to get brighter torch)
-- LED-RGB
Set blink ON / OFF delay for notifications / low battery.
Increases brightness of the LED by disabling powersave mode.
-- Accelerometer Calibration
# File Systems
-- Load kernel module - NTFS.
# Advanced Power Menu
Ability to reboot to recovery / download-mode
## END App Features ##
- Settings --> Phone Info --> Software info --> build number (tap 7 times)
- Tap 2 times the back-key
- Developer settings --> enable "OEM unlock"
- Download TWRP for S8 / S8+ / Note8 accordingly (the .tar version, for ODIN flash over PC)
- Download latest A2N Kernel for S8 / S8+ / Note8 or for Korean variant: S8 / S8+ / Note8 accordingly and put the file in USB-thumb or in micro-sd-card
- Download latest Magisk.apk
- Rename Magisk.apk to Magisk.zip and put the file in USB-thumb or in micro-sd-card
Power off Boot in Download-mode Flash the .tar twrp file with ODIN (disable "auto-reboot" and "reset time") Reboot directly to TWRP wipe ---> format data ---> "yes" (type yes) and ENTER. Flash latest A2N Kernel Flash Magisk.zip Optional but recommended: flash AdAway_hosts_patcher_g95x.zip (battery drain fix for vanced YouTube and vanced YT music) Reboot to system and enjoy ! Note: first boot takes around 15 minutes for proper app optimization !
Update A2N Kernel
Flash Magisk.zip Reboot to system and enjoy !
Current Bugs and Changelog
FAQ
Disclaimer
I am not responsible for anything that happens after flashing the work provided here.
Sharing is caring, so according to the (much unwelcomed) rule 12 you can use my open source on GitHub without my explicit consent or credits. But this is where the caring stops as I do not allow you to use any of my own provided files (except for unmodified stock files). Section 3 of this rule states that you can try to bypass my explicit consent by releasing it as your own when you succeed to make significant changes to the work, otherwise i'll report you and your thread will be removed.
Credits
Linus Torvalds - Linux kernel
Google - Android kernel patches
Samsung - device kernel source
@corsicanu - TWRP recovery - original thread
@S.AMU for providing FTP-Server
000webhost - Webhosting
@Noxxxious for the nice disclaimer text
XDA members - Reporting bugs
Minimum stable version: R54
Contributors
ace2nutzer
Source Code: https://github.com/ace2nutzer/Samsung_dreamlte_Kernel
I've been using the a2n kernel and it's rooted but my screen on time doesn't last up to 8 hours, it only gets 4 hours Is something wrongInitial Release
Changelog
Kernel 20181205
- Initial Release - All changes compared to the Stock Kernel u can find it in Post #1 "A2N Kernel Features"
- Based on Stock CRGH Source
A2N Kernel Control [G950] V1.0
- Initial Release - All Features you can see in the built-in Demo App by flashing the Kernel package
Version Info
This Thread // Kernel is only for G950x.
I'll release G955x Kernel and App in a new Thread just to keep things more sorted.
----------------------------------------------------------------------------------------------------------------------------------
Which Filesystem are u using on the sdcard?
This Kernel is optimized to work best with the Stock ROM, but it's nice to hear that it works as well with custom ROM.
Yeah that's normal it's a fully optimized custom Kernel, all features works only with the original Kernel Control App from me. Using such "Universal" Kernel Manager Apps can even make your Phone unstable and will not make things better. That's why i build for every Device // Kernel a separate Kernel Control App.
Otherwise i would build also an Universal Kernel App ... but it's not that efficient and this is what u Guys definitely don't want for sure.
Because we only need one good working CPU Governor and I/O Scheduler ... right ?
Short and easy explanation:
Interactive: it's the perfect gov for low latency workloads. - So it's perfect for Android to have a smooth and quick response experience.
Deadline: It's optimized for Flash Devices, it's simple and stable - Also appropriate for Android.
All other Gov and I/O are unstable or will decrease the Performance and or battery lifetime ...
(at least not very appropriate for Android .... however there's also I/O sched "ROW" or "FIOPS" which would be also ok for android, but they are not that stable like "deadline" and the difference in I/O Performance isn't that much.
So i've removed them so that u Guys can't change (accidentally) this important Drivers.
G950 App comes hopefully Today out .. unless Google will block it again.
Sorry, there's no Trial Version at all ... only the Demo u can find in the Kernel Package.
But i know, u can't Tweak anything.... Please wait for the full Version.
Thank u very much Guys for your Appreciation. :good:
Yes already fully optimized except LTO as it's not supported with our sources. I don't want to add further bugs. The kernel doesn't need such extreme low-level code optimizations since it's smart enough. But applied to the ROM LTO can make big performance improvements, especially for performance sensitive binaries like ffmpeg and the other software codecs.Ace does the Kernel already make use of compilation flags (o3, thinlto, etc), arm optimized asm for mem ops, etc, to improve CPU performance? Or can this stuff not be implemented?
No, sorry, it's max 60 °C to avoid overheating after wiping dalvik-cache.Hi Dev! I have a question for you
Is the new version has the CPU default temp limit (or boot temp limit, idk what it is called) at 57c ?
I feel that the phone is quite sluggish before the A2N settings apply, so I check the CPU temp with AIDA64 and the temp is peaked at 57 and clock speed is very low on big core.
I'd love to have the default temp increase to like 65 or 70c, so it will be faster.
Thank you so much!
Hi Guys,
even the fact that I'd stated that I'll no longer update this kernel ....
But I couldn't let it be and therefore ....
HERE WE GO AGAIN:
Changelog
A2N Kernel R61
- RAM: improved memory management and fixed bug
- USB: fixed tethering instability issue (needs more testing)
- GPU: trigger kernel panic on GPU fault instead to issue a soft-reset
- Removed buggy gaming_mode
- GPU power-policy: force to use "coarse_demand" on suspend if "always_on" is enabled - saves battery (around 30 mA!)
- CPU/GPU DVFS: reduced "gpu_dvfs_sleep_time" from 8 to 4 ms
- GPU: fixed soft-reset issue caused by buggy HMP driver - this should fix GPU freezes and lags!
- HMP: fixed bugs and adjusted tunables to be more aggressive - (faster and smoother)
- CPU: updated ondemand gov
- CPU: updated input-booster driver to be more efficient (more smooth, less battery draining!)
- GPU: disabled shader cores hotplugging for better performance!
- Updated ramdisk
A2N Kernel Control V61
DOWNLOAD KERNEL
- CPU/GPU DVFS: added ability to check "Peak Temperature"
- Misc: LED-RGB: added power control
- CPU-BIG: removed CPU-Hotplug feature (redundant)
- GPU: replaced "Gaming Mode" with "Boost"
- GPU: added power-policy for "Always On"
- CPU-BIG: merged "Input Booster" into "Boost"
- CPU-LIT: removed "Boost" (redundant)
- Audio: moved "PM-QOS" to "Debug" menu
- Fixed bugs and improved performance
Flash and enjoy!
Ace2Nutzer rnHi Guys,
even the fact that I'd stated that I'll no longer update this kernel ....
But I couldn't let it be and therefore ....
HERE WE GO AGAIN:
Changelog
A2N Kernel R61
- RAM: improved memory management and fixed bug
- USB: fixed tethering instability issue (needs more testing)
- GPU: trigger kernel panic on GPU fault instead to issue a soft-reset
- Removed buggy gaming_mode
- GPU power-policy: force to use "coarse_demand" on suspend if "always_on" is enabled - saves battery (around 30 mA!)
- CPU/GPU DVFS: reduced "gpu_dvfs_sleep_time" from 8 to 4 ms
- GPU: fixed soft-reset issue caused by buggy HMP driver - this should fix GPU freezes and lags!
- HMP: fixed bugs and adjusted tunables to be more aggressive - (faster and smoother)
- CPU: updated ondemand gov
- CPU: updated input-booster driver to be more efficient (more smooth, less battery draining!)
- GPU: disabled shader cores hotplugging for better performance!
- Updated ramdisk
A2N Kernel Control V61
DOWNLOAD KERNEL
- CPU/GPU DVFS: added ability to check "Peak Temperature"
- Misc: LED-RGB: added power control
- CPU-BIG: removed CPU-Hotplug feature (redundant)
- GPU: replaced "Gaming Mode" with "Boost"
- GPU: added power-policy for "Always On"
- CPU-BIG: merged "Input Booster" into "Boost"
- CPU-LIT: removed "Boost" (redundant)
- Audio: moved "PM-QOS" to "Debug" menu
- Fixed bugs and improved performance
Flash and enjoy!
L3 patch is added with a2n kernel installation. L1 patch doesn't work at all. If you want L1 with custom kernel you need to patch the corresponding app, not the kernel.How do I enable DRM L3 patch? I cant find it in both control apps![]()
su // only for termux app
cd /sys/module/abox/parameters
cat user_pm_qos_lit // check current value
echo 949000 > user_pm_qos_lit // e.g. set to 949 MHz
# To apply the change at boot, like always, copy paste the cmds to
# /system/etc/init.d/99_user without the "su" cmd of course.
adb shell
su
cd /sys/power
# print dvfs table so we can see current votlage table !
echo 1 > print_dvfs_table
dmesg
[ 5808.312763] dvfs_type : dvfs_mif - id : 0
[ 5808.312784] num_of_lv : 12
[ 5808.312791] num_of_members : 4
[ 5808.312802] lv : [2093000], volt = 850000 uV
[ 5808.312814] lv : [2002000], volt = 850000 uV
[ 5808.312825] lv : [1794000], volt = 762500 uV
[ 5808.312835] lv : [1540000], volt = 712500 uV
[ 5808.312846] lv : [1352000], volt = 675000 uV
[ 5808.312856] lv : [1014000], volt = 637500 uV
[ 5808.312867] lv : [ 845000], volt = 606250 uV
[ 5808.312877] lv : [ 676000], volt = 593750 uV
[ 5808.312887] lv : [ 546000], volt = 587500 uV
[ 5808.312896] lv : [ 421000], volt = 581250 uV
[ 5808.312907] lv : [ 286000], volt = 581250 uV
[ 5808.312917] lv : [ 208000], volt = 581250 uV
[ 5808.312938] dvfs_type : dvfs_int - id : 1
[ 5808.312945] num_of_lv : 7
[ 5808.312951] num_of_members : 16
[ 5808.312962] lv : [ 667000], volt = 781250 uV
[ 5808.312972] lv : [ 533000], volt = 756250 uV
[ 5808.312982] lv : [ 400000], volt = 643750 uV
[ 5808.312991] lv : [ 333000], volt = 612500 uV
[ 5808.313001] lv : [ 267000], volt = 587500 uV
[ 5808.313011] lv : [ 178000], volt = 575000 uV
[ 5808.313020] lv : [ 107000], volt = 575000 uV
[ 5808.313040] dvfs_type : dvfs_cpucl0 - id : 2
[ 5808.313047] num_of_lv : 18
[ 5808.313053] num_of_members : 1
[ 5808.313062] lv : [2808000], volt = 1300000 uV
[ 5808.313071] lv : [2704000], volt = 1175000 uV
[ 5808.313082] lv : [2652000], volt = 1150000 uV
[ 5808.313092] lv : [2574000], volt = 1081250 uV
[ 5808.313102] lv : [2496000], volt = 1037500 uV
[ 5808.313113] lv : [2314000], volt = 962500 uV
[ 5808.313123] lv : [2158000], volt = 906250 uV
[ 5808.313133] lv : [2002000], volt = 868750 uV
[ 5808.313144] lv : [1937000], volt = 850000 uV
[ 5808.313154] lv : [1807000], volt = 812500 uV
[ 5808.313164] lv : [1703000], volt = 781250 uV
[ 5808.313175] lv : [1469000], volt = 737500 uV
[ 5808.313185] lv : [1261000], volt = 706250 uV
[ 5808.313196] lv : [1170000], volt = 687500 uV
[ 5808.313206] lv : [1066000], volt = 668750 uV
[ 5808.313216] lv : [ 962000], volt = 656250 uV
[ 5808.313227] lv : [ 858000], volt = 643750 uV
[ 5808.313237] lv : [ 741000], volt = 625000 uV
[ 5808.313256] dvfs_type : dvfs_cpucl1 - id : 3
[ 5808.313262] num_of_lv : 12
[ 5808.313268] num_of_members : 1
[ 5808.313279] lv : [2002000], volt = 1300000 uV
[ 5808.313289] lv : [1898000], volt = 1200000 uV
[ 5808.313300] lv : [1794000], volt = 1137500 uV
[ 5808.313310] lv : [1690000], volt = 1062500 uV
[ 5808.313321] lv : [1456000], volt = 937500 uV
[ 5808.313331] lv : [1248000], volt = 831250 uV
[ 5808.313342] lv : [1053000], volt = 775000 uV
[ 5808.313352] lv : [ 949000], volt = 743750 uV
[ 5808.313363] lv : [ 832000], volt = 712500 uV
[ 5808.313373] lv : [ 715000], volt = 675000 uV
[ 5808.313384] lv : [ 598000], volt = 643750 uV
[ 5808.313394] lv : [ 455000], volt = 618750 uV
[ 5808.313413] dvfs_type : dvfs_g3d - id : 4
[ 5808.313419] num_of_lv : 9
[ 5808.313426] num_of_members : 1
[ 5808.313436] lv : [ 839000], volt = 750000 uV
[ 5808.313447] lv : [ 764000], volt = 750000 uV
[ 5808.313457] lv : [ 683000], volt = 700000 uV
[ 5808.313467] lv : [ 572000], volt = 718750 uV
[ 5808.313478] lv : [ 546000], volt = 706250 uV
[ 5808.313488] lv : [ 455000], volt = 693750 uV
[ 5808.313499] lv : [ 385000], volt = 693750 uV
[ 5808.313509] lv : [ 338000], volt = 693750 uV
[ 5808.313520] lv : [ 260000], volt = 693750 uV
[ 5808.313539] dvfs_type : dvfs_intcam - id : 5
[ 5808.313545] num_of_lv : 4
[ 5808.313551] num_of_members : 4
[ 5808.313561] lv : [ 690000], volt = 812500 uV
[ 5808.313572] lv : [ 680000], volt = 687500 uV
[ 5808.313583] lv : [ 670000], volt = 637500 uV
[ 5808.313593] lv : [ 640000], volt = 575000 uV
[ 5808.313610] dvfs_type : dvfs_cam - id : 6
[ 5808.313616] num_of_lv : 7
[ 5808.313623] num_of_members : 22
[ 5808.313633] lv : [ 690000], volt = 793750 uV
[ 5808.313644] lv : [ 680000], volt = 793750 uV
[ 5808.313654] lv : [ 670000], volt = 756250 uV
[ 5808.313665] lv : [ 660000], volt = 693750 uV
[ 5808.313675] lv : [ 650000], volt = 693750 uV
[ 5808.313685] lv : [ 640000], volt = 575000 uV
[ 5808.313696] lv : [ 630000], volt = 575000 uV
[ 5808.313713] dvfs_type : dvfs_disp - id : 7
[ 5808.313719] num_of_lv : 5
[ 5808.313725] num_of_members : 2
[ 5808.313735] lv : [ 630000], volt = 750000 uV
[ 5808.313746] lv : [ 533000], volt = 712500 uV
[ 5808.313756] lv : [ 356000], volt = 631250 uV
[ 5808.313767] lv : [ 214000], volt = 587500 uV
[ 5808.313777] lv : [ 134000], volt = 575000 uV
[ 5808.313794] dvfs_type : dvs_g3dm - id : 8
[ 5808.313800] num_of_lv : 9
[ 5808.313807] num_of_members : 1
[ 5808.313817] lv : [ 839000], volt = 0 uV
[ 5808.313827] lv : [ 764000], volt = 0 uV
[ 5808.313837] lv : [ 683000], volt = 0 uV
[ 5808.313847] lv : [ 572000], volt = 718750 uV
[ 5808.313858] lv : [ 546000], volt = 712500 uV
[ 5808.313869] lv : [ 455000], volt = 700000 uV
[ 5808.313880] lv : [ 385000], volt = 700000 uV
[ 5808.313890] lv : [ 338000], volt = 700000 uV
[ 5808.313900] lv : [ 260000], volt = 700000 uV
[ 5808.313917] dvfs_type : dvs_cp - id : 9
[ 5808.313924] num_of_lv : 3
[ 5808.313930] num_of_members : 1
[ 5808.313940] lv : [1500000], volt = 850000 uV
[ 5808.313951] lv : [1066000], volt = 731250 uV
[ 5808.313961] lv : [ 800000], volt = 731250 uV
# lets say you want to undervolt big CPU Freq step 2314 MHz @ 900 mV:
# the format string is here: "rate volt" (KHz uV)
echo "2314000 900000" > cpu_big_volt
# after that you could again print the dvfs table to verify if new voltage was successfully applied.
echo 1 > print_dvfs_table
dmesg
# now lets say you want to undervolt little CPU Freq step 1690 MHz @ 950 mV:
# the format string is here: "rate volt" (KHz uV)
echo "1690000 950000" > cpu_lit_volt
# now likely you want to undervolt GPU Freq step 546 MHz @ 650 mV:
# the format string is here: "rate volt" (KHz uV)
cd /sys/kernel/gpu
# first check current GPU volt table:
cat gpu_asv_table
GPU, vol, min, max, down_stay, mif, cpu0, cpu1
839000, 750000, 43, 75, 1, 2093000, 0, 0
764000, 750000, 42, 75, 1, 2093000, 0, 0
683000, 700000, 38, 75, 1, 2093000, 0, 0
572000, 718750, 47, 75, 1, 2093000, 0, 0
546000, 706250, 37, 75, 1, 2093000, 0, 0
455000, 693750, 38, 75, 1, 2093000, 0, 0
385000, 693750, 41, 75, 1, 2093000, 0, 0
338000, 693750, 33, 75, 1, 2093000, 0, 0
260000, 693750, 33, 75, 1, 1352000, 0, 0
echo "546000 650000" > gpu_volt
# and check ...
cat gpu_asv_table
GPU, vol, min, max, down_stay, mif, cpu0, cpu1
839000, 750000, 43, 75, 1, 2093000, 0, 0
764000, 750000, 42, 75, 1, 2093000, 0, 0
683000, 700000, 38, 75, 1, 2093000, 0, 0
572000, 718750, 47, 75, 1, 2093000, 0, 0
546000, 650000, 37, 75, 1, 2093000, 0, 0
455000, 693750, 38, 75, 1, 2093000, 0, 0
385000, 693750, 41, 75, 1, 2093000, 0, 0
338000, 693750, 33, 75, 1, 2093000, 0, 0
260000, 693750, 33, 75, 1, 1352000, 0, 0
# you can undervolt every single step, so lets undervolt 455 MHz step as well @ 650 mV:
echo "455000 650000" > gpu_volt
# now maybe you want even to undervolt RAM.
# we need to go again to /sys/power ...
cd /sys/power
# take a look at the dvfs table, the very first entry "dvfs_mif - id : 0"
this is RAM freq - volt table and our max_freq is 1794 MHz.
# we will undervolt Freq step 1794 MHz @ 700 mV:
# the format string is here: "id rate volt" (intent KHz uV)
# this sysfs interface is universal and you can undervolt any voltage table you want by using the corresponding "id":
echo "0 1794000 700000" > update_dvfs_table
# and verify:
echo 1 > print_dvfs_table
dmesg
# id 4 would be for GPU (dvfs_g3d) and so on ...
# to run all the cmds for undervolting at boot, just do something like this:
# open the script /system/etc/init.d.a2n/a2n_user and copy paste your cmds:
cd /sys/power
echo "2314000 900000" > cpu_big_volt
echo "1690000 950000" > cpu_lit_volt
echo "0 1794000 700000" > update_dvfs_table
cd /sys/kernel/gpu
echo "546000 650000" > gpu_volt
echo "455000 650000" > gpu_volt
# under the line: "# A2N init.d Script"
# save and enjoy !