The Power-profiles-daemon package provides a program that allows modification of the system power/behavior state. This is used on many laptops and can be used by a Desktop Environment to activate power saving or performance CPU governors through dbus. On other systems, Power-profiles-daemon can be used as a streamlined way to set the CPU governor in order to increase system performance at the cost of energy usage.
This package is known to build and work properly using an LFS 12.4 platform.
Download (HTTP): https://gitlab.freedesktop.org/upower/power-profiles-daemon/-/archive/0.30/power-profiles-daemon-0.30.tar.gz
Download MD5 sum: b72dbed7159cbeff972e9a20ddcc7388
Download size: 84 KB
Estimated disk space required: 1.6 MB
Estimated build time: less than 0.1 SBU (with tests)
Polkit-126, PyGObject-3.52.3 (pycairo is not needed), and UPower-1.90.9
GTK-Doc-1.34.0, The rest are for the tests, dbusmock-0.36.0, umockdev-0.19.3, isort, and mccabe
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Power management and ACPI options ---> CPU Frequency scaling ---> -*- CPU Frequency scaling [CPU_FREQ] -*- 'performance' governor [CPU_FREQ_GOV_PERFORMANCE] <*/M> 'powersave' governor [CPU_FREQ_GOV_POWERSAVE] # Select if CPU is Intel: [ /*] Intel P state control [X86_INTEL_PSTATE] # Select if CPU is AMD: [ /*] AMD Processor P-State driver [X86_AMD_PSTATE] Device Drivers ---> # Some drivers under this submenu provide "platform profile" support # and power-profiles-daemon can take advantage from platform profiles; # select a driver if suitable for your platform: [ /*] X86 Platform Specific Device Drivers ---> [X86_PLATFORM_DEVICES]
Select the appropriate sub-options that appear when the above options are selected. As much as possible, the layout should be the same as in kernel configuration menus.
Install Power-profiles-daemon by running the following commands:
mkdir build &&
cd build &&
meson setup                        \
      --prefix=/usr                \
      --buildtype=release          \
      -D gtk_doc=false             \
      -D tests=false               \
      -D systemdsystemunitdir=/tmp \
      .. &&
ninja
        If you have installed the external dependencies, to test the results issue: ninja test.
          Now, as the root user:
        
ninja install
Now, clean up an unneeded systemd unit installed into /tmp:
rm -fv /tmp/power-profiles-daemon.service
Create a directory required for persistent power states after reboot:
install -vdm755 /var/lib/power-profiles-daemon
          -D gtk_doc=false: Prevents
          building the documentation. Remove this if you have GTK-Doc installed and wish to build the
          documentation.
        
          -D tests=false: Prevents
          building the tests because they cannot be run within the boundaries
          of BLFS. Remove this if you have installed the external
          dependencies and wish to run the tests.
        
          -D
          systemdsystemunitdir=/tmp: Removes the dependency on
          systemd.
        
            To automatically start the power-profiles-daemon when the
            system is rebooted, install the /etc/rc.d/init.d/power-profiles-daemon
            bootscript from the blfs-bootscripts-20250225 as the
            root user:
          
make install-power-profiles-daemon
To list all supported power profiles, issue:
powerprofilesctl
            To activate a power profile (for example performance), issue:
          
powerprofilesctl set performance
          Some desktop environments (for example GNOME and KDE) also provide a graphical interface to interact with power-profiles-daemon and activate a power profile.
            The activated power profile is automatically stored in
            /var/lib/power-profiles-daemon/state.ini and
            power-profiles-daemon will read
            it out and activate it again on the next boot if the bootscript is installed as above.
          
![[Caution]](../images/caution.png) 
            
              On some older systems power-profiles-daemon will appear to
              install and indicate correct values, but will not actually
              work. To check this, run cat
              /sys/devices/system/cpu/cpufreq/policy0/scaling_driver.
              If the result is not "intel_pstate" but instead "intel_cpufreq"
              (or similar on AMD systems), then power changes must be made
              manually.
            
              To change power states manually, first check to see what
              governors are available with: cat
              /sys/devices/system/cpu/cpufreq/policy0/scaling_available_governors.
              Then set the desired governor as the root user with:
            
gov=performance
for CPUFREQ in /sys/devices/system/cpu/cpufreq/policy*/scaling_governor; do
  echo -n ${gov} > ${CPUFREQ}"
done
            If you are setting the scaling_governor to "performance", be careful about heat and battery issues with extended use.