My T42 is running Dapper Drake now. Upgrading via apt-get went fine. The biggest improvement I noticed so far: Hibernation is way faster now.
Another configuration change I made a while ago: I now use the ATI fglrx drivers (they finally support Hibernation), and they allow me to use the DVI port of my Port Replicator.
Updated the osd section again, this time there’s a more elegant and (maybe?) final solution to the osd problem:
Now there is a script to write the name of the user owning the X server out to
The osd script then uses this information for doing
su - to this user account, in
order to be allowed to write to his X display. So no hardcoded username anymore :-)
I just upgraded to Ubuntu 5.10 (Breezy Badger). No problems so far, works like a charm. I also updated the OSD/ACPI section with information about TPB. Further a solution to the problem of osd messages only showing up after restarting acpid right after booting was added.
The T42 is a 2373M1G: - 1.8 GHz Pentium M 745 - 1GB RAM (upgraded from 512 MB after purchase) - 80GB 5400rpm HDD - 14.1 SXGA+(1400x1050) TFT LCD, 64MB ATI Radeon 9600 - 24x24x24x/8x CD-RW/DVD - IBM 802.11a/b/g wireless(MPCI), Bluetooth, Infrared port - Modem, 1Gb Ethernet port, Fingerprint Reader
WinXP Pro was pre-installed on the system. I didn’t try out the IRDA port, and the modem is only supported by non-free drivers. Besides these, everything worked out of the box or with very little configuration. I’m running the standard ubuntu 686 kernel: 2.6.10-5-686.
Worked like a charm. Just boot from the Ubuntu CD (I used the 5.04 ‘Hoary Hedgehog’ release), answer some questions, reboot from disk when asked to do so and wait for the install to finish. Just pay attention to the partitioning and grub installation if you intend to keep the Windows XP and/or IBM rescue partitions.
The great thing about the Ubuntu installer is that it is able to resize NTFS partitions. Just choose the manual partitioning option, select the XP partition and change it’s size. The partition should not be fragmented as this may cause problems during resizing. Doesn’t hurt to run the XP drive defragmentation tool before shrinking the partition this way.
The 80GB disk of my T42 had two partitions on it: - Windows XP taking up around 75 GB - 5GB IBM Rescue system you can boot into by pressing the blue Access IBM key during startup. Interesting thing, seems to contain a complete OS including Opera browser, somehow looks like Win 3.11 or 95.
As the disk is large enough, I decided to keep both systems. I changed the size of the windows partition to around 20 GB and created my new partitions in the now free space between xp and ibm rescue partition:
hda5 will become the root fs, hda6 my /home partition.
I told the Ubuntu installer to install Grub into the MBR. The following entries in /boot/grub/menu.lst allow to boot Windows and the IBM rescue system:
I don’t remember if the installer added those automatically, or if I did so, anymore. Just make sure they are there.
Check if everything works
You should now be able to boot into all three systems without problems.
Well supported as expected, I use it with my WPA setup with the following entry in /etc/network/interfaces:
wpa_supplicant.conf is just the same as described there.
Built-in soft modem
This modem is supported by the Linuxant HSF drivers. They offer a free (as in beer) version limited to 14kBps, the upgrade to full speed and fax functionality costs $14,95. Not nice but better than not being able to use the modem at all. At least, the installation of the drivers works without problems. Just download the deb archive and install it. You need to have the linux-headers package matching your running kernel installed.
The deb also contains an init script for loading/unloading the driver modules. This comes in handy as it turns out that the modules need to be removed before going into suspend modes. Add hsf (the name of the init script) to the list of services to be stopped before suspend in /etc/default/acpi-support:
Can be turned on by doing
as root. See the ACPI section below for how to toggle bluetooth via a hotkey.
I use the radeon driver which is part of x.org. I never tried to install the ATI drivers, don’t intend to play Q3A on this machine and already had my bad experiences with crappy ATI linux drivers on another machine…
Below you find three different configurations for one single and two multiscreen setups.
Notebook LCD only.
Notebook LCD to the left, CRT monitor to the right, forming one big desktop.
Enabling FVWM Xinerama support
To make FVWM know about Xinerama, it has to be rebuilt from source with Xinerama development files installed. This will give you an FVWM that knows where one monitor ends and the other begins. This knowledge is needed to avoid the annoying placment of windows exactly on the borders of screens.
This is what I use now. No movement of windows between screens (except applications like The Gimp which explicitly allow ‘Send to Screen’ via their own menus), but separated FVWM instances and the ability to assign a different background to each screen. I never managed to find backgrounds fitting the whole Xinerama width, anyway ;-)
Last, but not least, not need to recompile FVWM on every update…
Suspend to RAM and suspend to disk (hibernation)
Suspend to RAM worked out of the box. For hibernation the partition which should be used to store the system state while it is turned off has to be entered as a kernel parameter in /boot/grub/menu.lst:
The relevant piece here is the resume parameter, which names my swap partition as the place where hibernation information is stored. Run update-grub after changing the file. Now suspend to disk needs to be enabled in /etc/default/acpi-support:
After restarting the system, pressing Fn-F12 should send the machine into suspend to disk mode. It can be brought back to life as usual by pressing the power on key.
Various other things
Output of lspci
On Screen Display
TPB mainly gives you the advantage of being able to map the various ThinkPad specific buttons to custom actions. Besides this, it features a neat OSD display e.g. on volume and brightness changes through those buttons. Note that volume changing, muting, setting display brightness and toggling the ThinkLight work fine without tpb, it just adds OSD to these functions. To enable TPB, change the value of START_TPB in /etc/default/tpb to true.
Please note that I first tried out TPB after upgrading to Breezy. The Hoary version doesn’t seem to support OSD, but there exists a workaround.
This gives you the osd_cat command which can be used to display arbitrary content on the display. This makes a nice supplement to TPB for actions triggered by Fn-F[1..12]. I use it to display status messages when turning on/off WLAN and bluetooth. See below for how to do this.
ACPI features and IBM specific buttons
As mentioned above, changing display brightness, volume and toggling the ThinkLight work out of the box. Btw, the ThinkLight is one of those little things which make this notebook worth it’s money :-)
The Fn-F1..F12 keys all generate ACPI events whose processing is controlled by the scripts in /etc/acpi and /etc/acpi/events (which you get by installing the acpi-support package). The scripts in events are each mapped to a specific button, e.g. ibm-sleepbtn for the Fn-F4 key:
The event line defines the key this script belongs to, and action names the script to be executed when the event occurs. So in this case, when the user presses Fn-F4 the machine is suspended to RAM.
So it is easy to add new mappings for the unused function keys, or to customize the behaviour of the already configured ones. I added a new mapping for Fn-F6 to toggle bluetooth:
As you can see in the bluetooth script, I factored out the osd stuff into it’s own file, to
be sourced wherever it is needed. To make this script work for you, install the
(see above). You will also need to put the script named
This will write your username to the file
/tmp/X_user_for_osd once you log in through gdm.
The osd script uses this information to switch to this username to be able to write
to your X display.
-d parameter in the call to osd_cat determines the time in seconds a message will
be displayed, the
tell osd_cat where to put the message on the screen. See the osd_cat manpage for more information.
In case a newly mapped hot key isn’t recognized, try the following command as root:
According to the docs this
enables all possible hot keys. To make this change permanent, edit the file
/etc/modprobe.d/ibm_acpi.modprobe and make it look like this:
If you kept your XP partition, you can use the IBM tools to learn your fingerprint and assign it in addition to a system or harddisk password. You can always access the system using the password instead of the fingerprint, so no need to worry if you once loose that important fingertip ;-)
Didn’t try to protect the harddisk with this yet, as this seems to be pretty low level and everybody warns you that there will be no recovery from a lost password.
The whole fingerprint checking at boot time then is OS independent, seems to be part of the bios. The interesting point is, that IBM’s XP software somehow gets access to the fingerprint read by the bios, using it to auto-log in the user identified by this fingerprint. Pretty nice solution, anybody to write a PAM module doing the same ? That would be neat :-)
Update: According to this article, this wish seems to become reality soon…
Update (2005-11-10): Somebody has written instructions on how to get the fingerprint reader of his T43 to work with Ubuntu. Didn’t have the time to try it, but I soon will.