FreeBSD Power Management
Part of the "Exploring FreeBSD on a Laptop" series.
Tested on FreeBSD 14.2
When I installed FreeBSD on my Thinkpad, I enabled powerd(8) for power management features that would be especially useful on a laptop. However, for laptops using an Intel CPU, this utility has been superseded by the hwpstate_intel(4) driver.
Since I have a relatively modern (8th Gen) CPU, I can use this driver for the Intel Speed Shift feature set that exposes the ability for the hardware to dynamically vary the core frequencies, including on a per core basis.
To determine if Speed Shift is being used:
# sysctl dev.cpufreq.0.freq_driver
The output should be similar to the following:
dev.cpufreq.0.freq_driver: hwpstate_intel0
This indicates that hwpstate_intel
is in use. On such systems, dev.cpu.%d.freq_levels
will show only the maximum CPU frequency, and will indicate a power consumption level of -1
.
The current CPU frequency can be determined by examining:
# sysctl dev.cpu.0.freq_levels dev.cpu.0.freq
dev.cpu.0.freq_levels: 1900/-1
dev.cpu.0.freq: 798
NOTE
Since hwpstate_intel
is being used I disabled powerd
in rc.conf
by commenting out the entry:
#powerd_enable="YES"
For more information, including on how to balance performance and energy use, and on how to disable this driver, refer to the hwpstate_intel
man page, in addition to power management in general as described in the Handbook.
You can like, share, or comment on this post on the Fediverse 💬
» Next: Brightness and Sound on FreeBSD
« Previous: Configure SSH on FreeBSD for Passwordless Logins to Servers