PHC
PHC is an acpi-cpufreq patch built with the purpose of enabling undervolting on your processor. This can potentially divide the power consumption of your processor by two or more, and in turn increase battery life and reduce fan noise noticiably. PHC works only if your processor's architecture supports undervolting.
Supported CPUs
PHC supports the following processor families:
Intel
- Mobile Centrino
- Atom (N2xx)
- Core / Core2 (T and P Series)
- Core i (2nd generation and older, tested on Core i3 550)
AMD
- K8 series
Installation
Install the phc-intelAUR package if you have an Intel processor, or phc-k8AUR[broken link: package not found] if you have an AMD-K8-series one.
Next you need to compile the module for your kernel; this will also be necessary after a kernel update (but see the section below on using DKMS to automate this).
You need to have linux-headers and/or linux-lts-headers installed to be able to build the module.
Type:
# phc-intel setup
or
# phc-k8 setup
depending on processor.
If the acpi-cpufreq module is not already being loaded at boot, create the appropriate file in /etc/modules-load.d/
. See Kernel modules for more information.
/usr/lib/modprobe.d/phc-intel.conf
.Automatic module generation with DKMS
The phc-intelAUR package uses DKMS to automatically update the module after a kernel update. This is done at shutdown time to ensure that the kernel and kernel-headers are in sync (which is not necessarily the case during a system upgrade, depending on the order at which updates are installed).
Enable dkms-phc-intel.service
.
Configuration
Editing the configuration
After the phc module is compiled and the lowest voltages are found, they need to be added to the configuration file at /etc/default/phc-intel
or /etc/default/phc-k8
.
For example:
VIDS="25 22 15 8 5"
Simply restart the system and the modules will be loaded automatically by systemd.
Troubleshooting
Module loading
Run:
# dmesg | grep acpi-cpufreq
If you see errors regarding this module, something has gone wrong OR you cannot use PHC.
Hardware recognition
There should be some files in /sys/devices/system/cpu/cpu0/cpufreq/
beginning with "phc_".
To check whether PHC is working or not, just type:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
you should read some values. If the values do not appear, then PHC is probably not supported by your CPU.
Voltage controlling
You can easily check whether PHC is working or not by looking at the cpu voltages: if the voltages are lower than the normal ones, then PHC has done its job. You can also manually set voltages, for example:
# echo 34 26 18 12 8 5 > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
System stability
To make sure that your undervolted CPU is stable, you can run long sessions of mprimeAUR and/or linpackAUR (Intel-only).