fingers and accelerometers, oh my
I am quite enjoying the t42p thinkpad I got a while back. It’s a very nice laptop and (nearly) everything works fine under linux. It’s down to just the last 3 things I can think of that didn’t have support, and I just played around with 2 of them and they are working great, and the 3rd one is on the way.
The last 3 items I can think of that needed linux support were the fingerprint reader, the hard drive active protection system, and the accelerated X driver. Today I looked at the state of beta linux support for them:
- HDAPS, the “Hard Drive Active protection System” is pretty cool. it’s a 2 axis accelerometer thats built into the laptop. So, if the laptop is dropped suddenly it can detect that and park the heads on the hard drive to prevent damage. The support for the device is in the OS, so linux needed to have it’s own driver to support it. I went and grabbed the latest release from the HDAPS project and tried it out. It compiled and installed just fine. Some of the userspace tools to access the information are still primitive, but they work. There is a GL application that shows you a window with a laptop in it and moves it as data from the accelerometer comes in. There is a gkrellm plugin that lets you see the X/Y tilt all the time. It’s very slick. You can also enable a mouse mode so moving the laptop around moves your mouse pointer.
- Next up was the fingerprint reader. Some T4x thinkpad models have a small “swipe style” fingerprint reader on them. I have one on mine. I had set it in the bios to use that for a power on password, which was pretty nifty. The folks that make the hardware are coming out with a linux driver soon. The 2nd beta release of the driver is now out. Unfortunately it’s a binary only library, but at least it’s not a kernel module. It uses the open bioapi framework. First I needed to install the base bioapi libraries. This proved to be a pain. gcc4 (default on Fedora Core 4) isn’t supported, so I had to load the gcc32 compat packages and use them. Next it had a problem with the qt libs. I couldn’t get it to see them, so I finally just disabled the qt support. There are no rpms available, so I needed to install in /usr/local. I try and avoid doing that kind of thing, but at least it only installs in a few dirs there. Once that was in, installing the UPEK library with support for the fingerprint reader was no problem. Next up was some permssions issues. If you want to run anything as a non root user you have to tweak the permissions on your /proc/usb area and make some log files writable. After that the test worked ok. Next I pulled in the pam bioapi module. There were a number of tweaks to make that work. I had to pull some more bioapi includes, and mess with /etc/pam.d/ and /etc/bioapi areas a bunch. I did finally get it working. I can now use the fingerprint reader to login, to unlock my xscreensaver, and anything else pam related. This will be very slick once it gets polished up and pushed into the distributions.
- Not sure I am quite up for it now, but for the video the r300 project has a driver. It’s been merged into the upstream Mesa and X libraries. All it will take is compiling xorg and mesa and possibly a new kernel. I might just wait for that to get into the regular distributions. 🙂
With those items working I can’t think of anything on the laptop that doesn’t work under linux. Very impressive. We have come a long way in the last few years.