Unfortunately the Freebook has a mediocre battery life, because the battery is relatively small [38Wh], while if not optimized the idle power usage is relatively high [5.6W].
In this post I wanna show you how I got lower idle power usage from 5.6W to 3.8W in Linux.
Measure first
First you’ll measure what your idle power usage is. Open only a terminal and monitor the power usage:
ed@chuwi-tw:~> upower --monitor-detail | grep energy-rate
energy-rate: 4.0584 W
energy-rate: 4.0584 W
energy-rate: 4.0584 W
energy-rate: 4.0584 W
Then open a browser and start a youtube video full screen and watch the power usage go up.
Check and install
The next step is to check that you have intel_pstate governor kernel driver installed for all the 4 cores of the N100 cpu:
ed@chuwi-tw:~> cpupower -c 0-3 frequency-info | grep driver
driver: intel_pstate
driver: intel_pstate
driver: intel_pstate
driver: intel_pstate
Then we will install a few tools that will enable the tuning: tuned, tuned-utils and powertop. Some of these tools may already have been installed with your distro.
Tuned is a replacement of the dynamic power profile picker that comes along with Gnome or KDE, which is power-profiles-daemon [PPD]. PPD does not work well with the finegrained power saving settings of intel_pstate. After installation of tuned we configure it and we disable the default profile picker :
systemctl enable tuned
systemctl start tuned
systemctl unmask power-profile-daemon
Then you install the profile picker gui for tuned from flatpak:
flatpak install org.easycoding.TunedSwitcher
Start tuning
You start TunedSwitcher and select the powersave profile. What it does is, it sets the intel_pstate driver governor to mode powersave with the most battery efficient setting: power. The other settings in powersave mode are: performance / balanced to performance / balanced to power.
Then we calibrate powertop on battery power. Don’t use the laptop while calibration is busy. Then enable the powertop service.:
sudo powertop --calibrate
systemctl enable powertop
systemctl start powertop
Finally measure power usage again
After rebooting the system, you measure the power usage in idle and use mode again, as explained in the first step. Your improvement will vary depending on your distro and desktop you’re using. I installed OpenSUSE with Gnome on Wayland. X11 uses a bit more power than Wayland.
Other power saving tools
I’ve tried TLP and it did not give me the power savings as powertop and intel_pstate combined.
Unfortunately I did not install auto-cpufreq as it needs snap to install. I am not a fan of snap. Auto-cpufreq is a custom cpu frequency scaler compared to the native kernel driver intel_pstate. It is more sophisticated, however I don’t know if it will provide more power savings. It also changes it policy based on temperature and battery state of charge, which intel_pstate does not do.
Intel CPU power settings
Intel cpu’s like the N100 has power settings [PL1 / PL2] defined by Chuwi to fit the heatsink and fan design of the laptop. I’ve checked with ThrottleStop windows app to see if it can make the laptop more power efficient. PL1 is set at 15W and PL2 at 28W by Chuwi. If I lower the PL settings it will consume less, but the laptop gets slower. If I increase the PL settings, the cpu throttles because the max temp is reached earlier. So my conclusion is that Chuwi has done a good job in setting the PL’s.
Intel driver bug trackpad & touchscreen
In Linux there is a driver bug for the trackpad and touchscreen, that will generate more interrupts than the hardware devices generate. The effect is that touching touchpad or touchscreen increases the cpu power usage by 1W instead of 0.1-0.3W, due to the increase of the interrupts:
ed@chuwi-tw:~> cat /proc/interrupts | grep idma
27: 0 0 0 0 IR-IO-APIC 27-fasteoi idma64.0, i2c_designware.0
29: 92162 0 0 0 IR-IO-APIC 29-fasteoi idma64.2, i2c_designware.2
31: 0 0 0 0 IR-IO-APIC 31-fasteoi idma64.4, i2c_designware.4
32: 0 0 0 0 IR-IO-APIC 32-fasteoi idma64.5, i2c_designware.5
33: 0 10682872 0 0 IR-IO-APIC 33-fasteoi idma64.3, i2c_designware.3
40: 0 0 0 116786 IR-IO-APIC 40-fasteoi idma64.1, i2c_designware.1
ed@chuwi-tw:~> sudo turbostat -c package -S --show IRQ,PkgWatt -i 1
IRQ PkgWatt
489 1.34
325 1.06
354 1.07
1687 2.09 <== here I touch the touchpad
Here are the findings of the bug, which still has not been resolved by Intel.