NAME

acpi_hpACPI extras driver for HP laptops

SYNOPSIS

To compile this driver into the kernel, place the following line in your kernel configuration file:
device acpi_hp
Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):
acpi_hp_load="YES"

DESCRIPTION

The acpi_hp driver provides support for ACPI-controlled features found on HP laptops that use a WMI enabled BIOS (e.g., HP Compaq 8510p and 6510p).
The main purpose of this driver is to provide an interface, accessible via sysctl(8), devd(8) and devfs(8), through which applications can determine and change the status of various laptop components and BIOS settings.

devd(8) Events

Devd events received by devd(8) provide the following information:
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).
Event codes:
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 see your current BIOS settings. The detail level can be adjusted by setting the sysctl cmi_detail as described below.

SYSCTL VARIABLES

The following sysctls are currently implemented:

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 on
dev.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 on
dev.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 on
dev.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 temperature
dev.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/hpcmi output (values can be ORed).
dev.acpi_hp.0.verbose
(read-only) Set verbosity level
Defaults for these sysctls can be set in sysctl.conf(5).

HARDWARE

The acpi_hp driver has been reported to support the following hardware:
  • HP Compaq 8510p
  • HP Compaq nx7300
It should work on most HP laptops that feature a WMI enabled BIOS.

FILES

/dev/hpcmi
Interface to read BIOS settings

EXAMPLES

The following can be added to devd.conf(5) in order disable the LAN interface when WLAN on air and reenable if it is not:
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 
(...)
Set maximum detail level for /dev/hpcmi output:
sysctl dev.acpi_hp.0.cmi_detail=7

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.

AUTHORS

The acpi_hp driver was written by Michael Gmelin <[email protected]>.
It has been inspired by 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-hp for 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 <[email protected]>.

BUGS

This driver is experimental and has only been tested on i386 on an HP Compaq 8510p which featured all supported wireless devices (WWAN/BT/WLAN). Expect undefined results when operating on different hardware.
Loading the driver is slow. Reading from /dev/hpcmi is even slower.
Additional features like HP specific sensor readings or writing BIOS settings are not supported.

Recommended readings

Pages related to acpi_hp you should read also: