This page used to contain lots of information however it is a far better idea to go and have a nosey at the Thinkpad T40p pages over at ThinkWiki website. The information there is far more readily accessible and generally kept up to date. This includes the useful information I put together on how to update your BIOS without Windoze or a floppy drive and throw together custom BIOS splash screen.
The only bits that remain here are things that are not on the ThinkWiki site.
Pretty much you can follow the ThinkWiki Fingerprint page however some amendments need to be made to make it work smoothly. So once you have it working, then follow my instructions.
Create a 'bioapi' group and add to your udev rules (ignore the crappy suggestion on the ThinkWiki site) with:
BUS=="usb", DRIVER=="usb", SYSFS{product}=="Biometric Coprocessor", \
GROUP="bioapi", SYMLINK="misc/fingerprint", \
RUN+="/bin/sh -c 'chgrp bioapi /proc/$RESULT; chmod g+rw /proc/$RESULT'"
Hopefully you have been sensible and used my Local PAM Goodness suggestions, so tweak the following PAM related files:
/etc/security/group.conf
# local group settings login; vc/*; *; Al0000-2400; audio,floppy,video,cdrom,plugdev,powerdev,bioapi wdm; :*; *; Al0000-2400; audio,floppy,video,cdrom,plugdev,powerdev,bioapi
/etc/pam.d/common-auth
This file should really just look like:
auth required pam_unix.so nullok_secure
# fingerprint action
auth sufficient /usr/local/lib/security/pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi1.10/pam/
auth optional pam_group.so
N.B. as with all pam related things, the order is important
Really most of the details you need are already on the ThinkWiki TV-Out page however you might want to make use of the following for your X config:
Section "Monitor"
Identifier "TV"
HorizSync 10-63
VertRefresh 43-60
Modeline "735x575i" 14.16 735 760 824 904 575 580 585 625 interlace -hsync -vsync
#Option "DPMS"
EndSection
I personally recommend against using tpb as it polls NVRAM all the time which means:
the user running tpb needs read permission to the whole of NVRAM
if you are using dynticks then you will find your computer has to wake up at least five if not ten times a second to check if one of your hotkeys has been pressed
Instead what I recommend is that you acpi-hacking? to generate HKEY events (as per 'lentinj's recommendations) for all these keys and then your hotkeys will be event driven via the ACPI infrastructure.
One problem some of my international chummies have found out is that tpb can complain with:
unable to initialize xosd, Running without onscreen display
If you strace the problem (strace tpb 2> errors.dump'), from the relevent section you get:
open("/usr/share/locale/fr_FR@euro/LC_MESSAGES/tpb.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr@euro/LC_MESSAGES/tpb.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr_FR/LC_MESSAGES/tpb.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr/LC_MESSAGES/tpb.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, "Unable to initialize xosd. Runni"..., 60Unable to initialize xosd. Running without onsceen display.
The problem is due to locale codepages or something not being found. You should edit /etc/X11/Xsession.d/90tpb and change the line:
TPB=/usr/bin/tpb
to instead:
TPB="LANG=en /usr/bin/tpb"
A addition suggestion is to install the ‘xfonts-base-transcoded’ package and use the font '-*-lucidatypewriter-*-*-*-*-*-240-*-*-*-*-*-*'.