Minimal Power Usage - Arch Linux

Since I received my first Framework laptop, I’ve been trying to get the power usage as low as possible. While I primarily use my laptop while connected to power, I want it to last as long as possible in the event I’m away from power using only the internal battery and something like the Anker 747 Power Bank. In a short 5 minute test, I have been able to get the power usage down to the following, as reported by upower while on battery:

Idle: 3.5 watts
Idle with Screen Locked and Off: ~1.5 watts (hovers between 1 and 2 watts with occasional spikes to 2.5 watts and 0.8 watts)
Typing in gedit: 6 watts
Youtube on Firefox: 9 watts

Before I get into the settings, the following is some additional information about my particular setup (probably more information than necessary, however any little thing could affect power usage):

Desktop environment: GNOME on Wayland, with GDM as the display manager
Plymouth: Installed and enabled on startup with the default theme
GNOME extensions: appindicator
Background programs (explicit): Flameshot, Caffeine-ng, Solaar, Syncthing
Framework expansion packs: all USB-C
Processors: 1280p (2x) and 1240p (1x) (all had the same results)
Filesystem: / and /boot are XFS with the following options: “-m crc=1,finobt=1,rmapbt=1,inobtcount=1,bigtime=1 -s size=4096”, along with the following for root (not supported by GRUB): “-i nrext64=1”.
Encryption: / is encrypted with the following settings: “–cipher aes-xts-plain64 --key-size 512 --hash blake2b-512 --pbkdf argon2id”
GRUB cmdline options: “intel_iommu=on mitigations=off ibt=off nowatchdog rootflags=noatime,swalloc,largeio”
mkinitcipo hooks: “base keyboard systemd plymouth autodetect modconf kms sd-vconsole block sd-encrypt filesystems fsck”
NVME SSD: Inland Performance Plus 8TB or 4TB depending on machine
RAM: Crucial 64GB Kit or Teamgroup 64GB Kit depending on machine
Power Profiles Daemon setting: Balanced (the default setting)
Bluetooth: Disabled (this saves like 2-3 watts on its own)
Webcam and microphone: Physically disabled via sliders above screen (iirc this also saves 2-3 watts on its own)
Screen Brightness: Slider is around 33% in GNOME
Volume: Slider is also around 33% in GNOME; also have 80db speakers installed.

Now, on to the settings. I actually have most of these split into individual files, however I’m presenting them here as single files for each configuration type for simplicity. I do have a few more settings than these however these are the ones that could affect battery life.

/etc/modprobe.d/custom.conf:

options snd-hda-intel power_save=1
options i915 enable_guc=3 enable_fbc=1 enable_psr=1 disable_power_well=0
options nvme noacpi=1
options iwlwifi power_save=1
options iwlmvm power_scheme=3

/etc/sysctl.d/custom.conf:

kernel.nmi_watchdog = 0
dev.i915.perf_stream_paranoid = 0

/etc/tmpfiles.d/custom.conf:

#       Path                                    Mode    UID     GID     Age     Argument
w!      /sys/module/pcie_aspm/parameters/policy -       -       -       -       powersupersave
w!      /sys/power/mem_sleep                    -       -       -       -       deep

/etc/profile.d/custom.sh:

#!/bin/sh

export MOZ_ENABLE_WAYLAND=1
export LIBVA_DRIVER_NAME=iHD
export VDPAU_DRIVER=va_gl

(you’ll also need the packages intel-media-driver and libvdpau-va-gl installed for the above LIBVA and VDPAU settings to actually do anything)

Firefox options (about:config):

media.ffmpeg.vaapi.enabled = true

Services enabled (along with whatever else gets enabled along with these, such as NetworkManager-dispatcher):

  • bluetooth.service
  • cups.service
  • gdm.service
  • ModemManager.service
  • NetworkManager.service
  • power-profiles-daemon.service
  • syncthing.service (user)
  • systemd-oom.service
  • systemd-resolved.service
  • systemd-timesyncd.service
  • thermald.service

Some final notes:

  • TLP and PowerTop don’t appear to affect the power usage in any positive or negative way, or at least the power savings aren’t enough to register any significant difference.
  • Power Profiles Daemon, while installed and enabled, doesn’t appear to have any affect on power usage. This is true even when changing the setting to Power Saver.

Anyway, I hope this helps with your power efficiency journeys.

Edit(s): Corrected a few words and added idle with screen locked time.

9 Likes

That’s a good one, I’ll have to try it.

1 Like

This is great! Do keep us posted how these parameters work out for you. I am especially interested in hearing how iwlwifi power_save=1 works out; which kernel are you on? Curious.

I’ve had this one enabled for several months without problems. I do normally stay connected to ethernet via a hub but I’ve never had any problems when disconnecting and going on wifi. I do, however, also have this enabled on several other machines (non-framework) which do use wifi primarily and haven’t had a problem with them either.

Also I’m on the latest Arch kernel, 6.3.3-arch1-1.

1 Like

Appreciate this info - gives me something to do some testing against. :slight_smile:

1 Like