Manual browser: aps(4)

APS(4) Kernel Interfaces Manual APS(4)


apsThinkPad Active Protection System accelerometer


aps0 at isa? port 0x1600


The aps driver provides support for several sensors found in some ThinkPad laptops.

The sensors currently exposed via the envsys(4) interface are:

Sensor Units Typical Use
x-acceleration integer X-axis acceleration
y-acceleration integer Y-axis acceleration
x-variable integer Weighted X acceleration?
y-variable integer Weighted Y acceleration?
temperature 1 degC Unknown temperature
temperature 2 degC Unknown temperature
keyboard active boolean Keyboard activity
mouse active boolean Mouse activity
lid open boolean Lid state


The aps driver first appeared in OpenBSD 3.8 and was then ported to NetBSD 5.0.


The aps driver was written by Jonathan Gray <>.


Few issues can be mentioned.
  • The aps driver does not maintain state and subsequently does not take evasive action when it thinks the hard drive is in danger. Possible actions would include spinning down the hard drive in case excessive tremor is detected by the sensors.
  • The Y axis on X40 and possibly other models seems to be inverted. It is unknown how to distinguish between different versions of the accelerometer to compensate for this in the driver at this time.
  • The sensor values are refreshed every 0.5 seconds. Because no protection measures are taken, this is unnecessary and may have a negative effect on battery life.
  • As IBM provides no documentation, it is not known what all the available sensors are used for.
July 13, 2011 NetBSD 7.0