ACPI_HP(4)
π ACPI_HP(4) π β from the Kernel Interfaces Manual, bestie edition
okay so. sit down. hydrate. we're talking about acpi_hp, which is literally the ACPI extras driver for HP laptops. yes THAT kind of driver. the one that actually talks to your weird little BIOS buttons. let's go π
β¨ NAME β¨
acpi_hp β ACPI extras driver for HP laptops. that's it. that's the vibe. π
β¨ SYNOPSIS β¨
so you wanna bake this driver into your kernel? iconic. drop this line into your kernel config file, fr fr:
device acpi_hp
or, if you'd rather load it as a module at boot time (which, lowkey, is the chill way), put this line into loader.conf(5):
acpi_hp_load="YES"
either way you're eating good π
β¨ DESCRIPTION β¨
the acpi_hp driver provides support for the ACPI-controlled features you'll find on HP laptops that rock a WMI enabled BIOS (think HP Compaq 8510p and 6510p, you know the ones).
its main character purpose? giving you an interface β reachable via sysctl(8), devd(8) and devfs(8) β so your applications can determine and change the status of all sorts of laptop components and BIOS settings. the way that it just... lets you poke things. obsessed. π
π¦ devd(8) Events π¦
devd events that devd(8) catches hand you this info:
system "ACPI"
subsystem "HP"
type The source of the event in the ACPI namespace. The
value depends on the model.
notify Event code (see below).
and here are the event codes, no cap:
0xc0β WLAN on air status changed to 0 (not on air)0xc1β WLAN on air status changed to 1 (on air)0xd0β Bluetooth on air status changed to 0 (not on air)0xd1β Bluetooth on air status changed to 1 (on air)0xe0β WWAN on air status changed to 0 (not on air)0xe1β WWAN on air status changed to 1 (on air)
π§ devfs(8) Device π§
you can read /dev/hpcmi to peek at your current BIOS settings π. wanna change how much detail it spills? adjust the cmi_detail sysctl (it's described down below, keep scrolling bestie).
β¨ SYSCTL VARIABLES β¨
here's everything that's currently implemented. buckle up, there's a lot, and it's all useful:
πΈ WLAN: πΈ
dev.acpi_hp.0.wlan_enabledβ Toggle WLAN chip activity.dev.acpi_hp.0.wlan_radioβ (read-only) WLAN radio status (controlled by hardware switch)dev.acpi_hp.0.wlan_on_airβ (read-only) WLAN on air (chip enabled, hardware switch enabled + enabled in BIOS)dev.acpi_hp.0.wlan_enabled_if_radio_onβ If set to 1, the WLAN chip will be enabled if the radio is turned ondev.acpi_hp.0.wlan_disable_if_radio_offβ If set to 1, the WLAN chip will be disabled if the radio is turned off
πΈ Bluetooth: πΈ
dev.acpi_hp.0.bt_enabledβ Toggle Bluetooth chip activity.dev.acpi_hp.0.bt_radioβ (read-only) Bluetooth radio status (controlled by hardware switch)dev.acpi_hp.0.bt_on_airβ (read-only) Bluetooth on air (chip enabled, hardware switch enabled + enabled in BIOS)dev.acpi_hp.0.bt_enabled_if_radio_onβ If set to 1, the Bluetooth chip will be enabled if the radio is turned ondev.acpi_hp.0.bt_disable_if_radio_offβ If set to 1, the Bluetooth chip will be disabled if the radio is turned off
πΈ WWAN: πΈ
dev.acpi_hp.0.wwan_enabledβ Toggle WWAN chip activity.dev.acpi_hp.0.wwan_radioβ (read-only) WWAN radio status (controlled by hardware switch)dev.acpi_hp.0.wwan_on_airβ (read-only) WWAN on air (chip enabled, hardware switch enabled + enabled in BIOS)dev.acpi_hp.0.wwan_enabled_if_radio_onβ If set to 1, the WWAN chip will be enabled if the radio is turned ondev.acpi_hp.0.wwan_disable_if_radio_offβ If set to 1, the WWAN chip will be disabled if the radio is turned off
π Misc: π
dev.acpi_hp.0.als_enabledβ Toggle ambient light sensor (ALS)dev.acpi_hp.0.displayβ (read-only) Display status (bitmask)dev.acpi_hp.0.hdd_temperatureβ (read-only) HDD temperaturedev.acpi_hp.0.is_dockedβ (read-only) Docking station status (1 if docked)dev.acpi_hp.0.cmi_detailβ Bitmask to control detail level in/dev/hpcmioutput (values can be ORed).0x01β Show path component of BIOS setting0x02β Show a list of valid options for the BIOS setting0x04β Show additional flags of BIOS setting (ReadOnly etc.)0x08β Query highest BIOS entry instance. This is broken on many HP models and therefore disabled by default.
dev.acpi_hp.0.verboseβ (read-only) Set verbosity level
and psst β defaults for all these sysctls can be set in sysctl.conf(5) π
β¨ HARDWARE β¨
the acpi_hp driver has been reported to support this hardware:
- HP Compaq 8510p
- HP Compaq nx7300
and ngl, it should work on most HP laptops that feature a WMI enabled BIOS. fingers crossed π€
β¨ FILES β¨
/dev/hpcmiβ Interface to read BIOS settings
β¨ EXAMPLES β¨
wanna disable the LAN interface when WLAN on air, and reenable it if it's not? add this to devd.conf(5), it's giving automation:
notify 0 {
match "system" "ACPI";
match "subsystem" "HP";
match "notify" "0xc0";
action "ifconfig em0 up";
};
notify 0 {
match "system" "ACPI";
match "subsystem" "HP";
match "notify" "0xc1";
action "ifconfig em0 down";
};
enable the ambient light sensor:
sysctl dev.acpi_hp.0.als_enabled=1
enable Bluetooth:
sysctl dev.acpi_hp.0.bt_enabled=1
get BIOS settings:
cat /dev/hpcmi
Serial Port Disable
Infrared Port Enable
Parallel Port Disable
Flash Media Reader Disable
USB Ports including Express Card slot Enable
1394 Port Enable
Cardbus Slot Disable
Express Card Slot Disable
(...)
and set the maximum detail level for /dev/hpcmi output:
sysctl dev.acpi_hp.0.cmi_detail=7
slay. go forth and read your BIOS settings π«Ά
β¨ SEE ALSO β¨
acpi(4), acpi_wmi(4), sysctl.conf(5), devd(8), devfs(8), sysctl(8)
β¨ HISTORY β¨
the acpi_hp device driver first appeared in FreeBSD 8.0. a legend since day one β¨
β¨ AUTHORS β¨
the acpi_hp driver was written by Michael Gmelin <freebsd@grem.de>. king behavior π
it has been inspired by the hp-wmi driver, which implements a subset of these features (hotkeys) on Linux.
- HP CMI whitepaper:
http://h20331.www2.hp.com/Hpsub/downloads/cmi_whitepaper.pdf wmi-hpfor Linux:http://www.kernel.org- WMI and ACPI:
http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx
this manual page was written by Michael Gmelin <freebsd@grem.de>.
β¨ BUGS β¨
β οΈ this driver is experimental, bestie. it has only been tested oni386on anHP Compaq 8510pwhich featured all supported wireless devices (WWAN/BT/WLAN). Expect undefined results when operating on different hardware. not a drill, do not test my patience π
- Loading the driver is slow. Reading from
/dev/hpcmiis even slower. π - Additional features like HP specific sensor readings or writing BIOS settings are not supported.
and that's the whole page, diva π this was the ACPI_HP(4) page from the Debian manual set, dated June 19, 2015 β go be the main character of your own HP laptop's kernel, iykyk ππ¦β¨
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2009 Michael Gmelin
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms