Freebook N100 - Getting longer battery life on Linux

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.

2 Likes

Great write up.

When I find some time I will do the same on my minibook and report in this topic Linux distro on minibook x? - #137 by jaap.

The minibook x has a smaller battery than the freebook but also a smaller screen to lit with less pixels to switch.

In addition I use a Bluetooth mouse instead of the trackpad. Not sure if that compensates for the trackpad driver bug.

Cheers, Jaap

I checked for you, bluetooth mouse does not increase power usage, except for the bluetooth connection. I would miss my 3-finger swipe to move to another workspace though.

I also noted that the power increase of touching the touchscreen is less than the touchpad.

Hi Eddy,

I have tried your write up, as well as TLP on the minibook x with Fedora Core 40. Before and after power showed 3.8 Watts.

What distribution do you use, and how much did you gain?

Cheers, Jaap

all is written in my OP. Please read.

Great post OP! Did you find anything indicating Intel is working on solving the bug?

there is slow progress - reported 11-23, partial solutions suggested on 2-24 and 5-24. but no final solution yet. then it can go upstream to the kernel or user space code [ intel-lpmd ].

Might be a bit off topic but can you share what release/ kernel you are using (you mentioned KDE / gnome) and what issues you encountered when installing / using Linux - with the solutions if you can.

Did you follow Install Linux on Freebook N100 - what works & does not work , was your experience different?

Thank you