This post provides two configurations for optimisation power consumption on the Asus Zenbook Duo model UX482EG; one configuration uses TLP the other configuration uses a configuration of TLP and auto-cpufreq (plus its requirement thermalid).
This has been predominately tested on Fedora 39+ and quickly trialled under Ubuntu 23.04.
Without this power consumption would idle around 14~ watts; with the TLP configuration the average idle drops to 8~ watts.
Table of Contents
Powersaving with tlp
Install tlp tlp-rdw
with:
Fedora
sudo dnf install tlp tlp-rdw
Ubuntu
sudo apt install tlp tlp-rdw
To define a configuration that will persist across upgrades use: sudo
nano /etc/tlp.d/01-asus-482.conf
# Satisfy powertop requirements
MAX_LOST_WORK_SECS_ON_BAT=15
# Battery limits
START_CHARGE_THRESH_BAT0=75
STOP_CHARGE_THRESH_BAT0=80
RESTORE_THRESHOLDS_ON_BAT=1
# Intel GPU
INTEL_GPU_MIN_FREQ_ON_BAT=100
INTEL_GPU_MAX_FREQ_ON_BAT=700
INTEL_GPU_BOOST_FREQ_ON_BAT=100
# General powersave
PCIE_ASPM_ON_BAT=powersupersave
ENERGY_PERF_POLICY_ON_BAT=power
PLATFORM_PROFILE_ON_BAT=low-power
# Blacklist defaults exclude GPU drivers
RUNTIME_PM_DRIVER_DENYLIST="mei_me"
RUNTIME_PM_DRIVER_BLACKLIST="mei_me"
Apply with sudo tlp start
CPU powersaving with TLP
If you intend to use TLP only then consider the following, if you intend to use TLP with auto-cpufred
the following configuration should be skipped/omitted:
# CPU (note if you use auto-cpufreq with tlp probably best to omit by commenting out the below)
CPU_HWP_ON_BAT=power
CPU_ENERGY_PERF_POLICY_ON_BAT=power
CPU_BOOST_ON_BAT=0
CPU_HWP_DYN_BOOST_ON_BAT=0
# CPU schedulers
CPU_SCALING_GOVERNOR_ON_AC=schedutil
CPU_SCALING_GOVERNOR_ON_BAT=powersave
# CPU Frequency/scaling caps
CPU_MIN_PERF_ON_BAT=8
CPU_MAX_PERF_ON_BAT=60
CPU_SCALING_MIN_FREQ_ON_BAT=400000
CPU_SCALING_MAX_FREQ_ON_BAT=1600000
If required re-apply with sudo tlp start
Powersaving with tlp & auto-cpufreq
The auto-cpufreq
installation suggests using thermalid
so we will include that here also:
Install thermald
with:
Fedora
sudo dnf install thermald
Ubuntu
sudo apt install thermald
Then clone the Git repository and run the installation script for auto-cpufreq
:
git clone https://github.com/AdnanHodzic/auto-cpufreq.git
cd auto-cpufreq && sudo ./auto-cpufreq-installer
# install service
sudo auto-cpufreq --install
Configuration reference: https://github.com/AdnanHodzic/auto-cpufreq?tab=readme-ov-file#example-config-file-contents
For a system-wide configuration tailored towards battery power add the following: sudo nano /etc/auto-cpufreq.conf
[battery]
governor = powersave
energy_performance_preference = power
scaling_min_freq = 400000
scaling_max_freq = 1600000
turbo boost setting (always, auto, or never)
turbo = none
Then restart the service: sudo systemctl restart auto-cpufreq
Conclusions
This is still far from perfect as the average life when on battery is about 6 hours at best; under Windows I typically achieved 8 hours+.
I suspect the culprit for the higher power draw is in the dual GPU configuration; experimenting with switching the primary switch option under nvidia switch command the best result is on-demand. Switching to intel only causes system power under idle to jump to 16 watt at idle. High-performance acts similar to on-demand.
Under my usage scenario; the configuration using TLP produced the longest battery life keep in mind that my own goals were to maximise battery life over almost everything else. As I often use this machine for remote work and the vast majority of my workload is ran off device.