Since I've gotten my X40, I've been conversing with
about OpenBSD support since he also owns one.
a driver for the TCPA/TPM security chip and one thing I always wanted to do was
hook into the blue "Access IBM" button to run
xautolock -locknow for one-touch locking.
program can hook into this button on Linux, but all of the work is handled by an
NVRAM driver in the Linux kernel.
Apparently the X40's BIOS toggles various bits in the CMOS RAM (NVRAM)
when certain buttons are pushed, like the volume buttons, ThinkLight, and of
course, the blue "Access IBM" button.
Last night I started looking into making an NVRAM driver for OpenBSD, which
turned out to be relatively easy, since the i386's clock code already has
functions for reading and writing to the NVRAM.
I put together a simple driver to provide user-land read-only access to the
NVRAM through a
jcs@hypotenuse:~> ls -l /dev/nvram crw-r--r-- 1 root wheel 85, 0 Jun 26 12:05 /dev/nvram jcs@hypotenuse:~> hexdump /dev/nvram 0000000 0000 0000 00f0 8003 0002 01fc 0000 1f00 0000010 000e 0200 0000 0000 0001 bb00 00bb 0000 0000020 1804 fc00 c820 86c1 0b70 0000 0000 0000 0000030 0000 0400 bb80 6300 d4bb 072f 00d0 0080 0000040 0000 0000 05c0 0052 b6ed 5b6d 0203 0003 0000050 0400 0000 0000 20f0 7200 7000 0200 0087 0000060 0007 fe80 8000 0c40 1185 00fc 0000 5349 0000070 00b2 0000072
With that loaded, tpb now works on OpenBSD without any modifications required:
jcs@hypotenuse:~> tpb -v Volume changed: Level 42 Volume changed: Level 50 Mute on Mute off ThinkLight is on ThinkLight is off ThinkPad button pressed
And with a
~/.tpbrc of "
THINKPAD xautolock -locknow", the "Access IBM"
button now locks my X11 session.