www.volker-lanz.de
<< Thinkpad function keys on SUSE Linux 9.2 Linux

Introduction

I have been a happy Apple iBook user (a 12" iBook with a 600 MHz G3 CPU) for the past three years, but new requirements in my job arose and I needed a new notebook, specifically one that could run Linux well, had a decent CPU and three mouse buttons. I got a used IBM Thinkpad T41p, a notebook with a reputation to work fine under Linux. The Thinkpad T41p I got had been running Windows XP and SUSE Linux 9.0 before (a LOT more Windows than SUSE Linux, though, as I have been told). The SUSE Linux 9.0 obviously was too old to be run on a notebook: Too many things did not work that well, or even not at all. So I purchased the recently released SUSE Linux 9.2 and began setting it up.

Basic installation of SUSE Linux 9.2 on a Thinkpad T41p

The Thinkpad's previous owner had not bothered to get the Recovery CDs from IBM, so I decided not to wipe the Thinkpad's disk clean, but only to resize partitions, reserving most of the space for Linux, but leaving the hidden recovery partition and the Windows XP partition in place. Installing SUSE Linux 9.2 via YaST went both quickly and smoothly, no problems here.

Setting it up

Touchpad

The most annoying thing at first was the tapping-is-clicking feature of the T41p's touchpad. I could hardly use KDE as long as this mis-feature was active.

It turns out I had to add this to my /etc/X11/xorg.conf:

Section "InputDevice"
Driver "synaptics"
Identifier "Touchpad"
Option "Device" "/dev/input/event2"
Option "Edges" "1900 5400 1800 3900"
Option "Finger" "21 30"
Option "MaxTapTime" "0"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.06"
Option "MaxSpeed" "0.30"
Option "AccelFactor" "0.0010"
Option "SHMConfig" "on"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection

I admit I am not entirely certain about the meaning of each of these lines as I just copy-and-pasted them from some web page. The important part seems to be setting "MaxTapTime" to "0" and "AccelFactor" to "0.0010" to make the mouse cursor's movement speed bearable.

This also adds a nice twist to the touchpad: I can use the rightmost and bottommost parts of it to scroll, not move the mouse. Windows XP does have this feature as well, as I have only found out later.

Sound, CD-R/DVD and multimedia

Sound worked out of the box without any problems. Same for the CD-R/DVD drive: Just works. Of couse I had to go through the usual (licensing/patent/whatever-induced) process of installing packages from Packman to make DVD playback work within xine/KDE, but once that was done, there were no problems.

Network

Basically, networking just worked. SUSE Linux 9.2 recognised the Thinkpad's Atheros Wireless chip as well as its Intel LAN chip, set them up okay and I was ready to go.

Power Management with ACPI

This is usually the big one, but much to my surprise it mostly works out of the box. There are, however, a few traps. Note that I did not try APM at all; I have been told APM is working well with the T41p, but I consider it an obsolete technology I am not interested in getting to work.

So, ACPI it is. The biggest roadblock first: As long as I did not boot the kernel with acpi_sleep=s3_bios, I could not get the graphics chip to properly resumse after a suspend. Some other pages on the web about Linux on the Thinkpad recommend using radeontool to kick the graphics chip back to life, but that did not do the trick for me.

So I just appended acpi_sleep=s3_bios to the kernel parameters in /boot/grub/menu.lst, and all was well.

A SUSE supplied script in /usr/lib/powersave/scripts apparently has a bug. I had to apply this patch to make it work correctly:

--- scripts/sleep_helper_functions 28 Sep 2004 17:19:31 -0000 1.10
+++ scripts/sleep_helper_functions 9 Nov 2004 12:06:01 -0000 1.10.2.1
@@ -146,7 +146,7 @@
if [ "$SERVICES_TO_RESTART" ]; then
D=false
for X in $SERVICES_TO_RESTART; do
- /etc/init.d/$X status; RET=$?
+ /etc/init.d/$X status >/dev/null 2>&1 ; RET=$?
if [ $RET -eq 0 ]; then
echo "stopping $X:" >> $LSMOD_LOG
/etc/init.d/$X stop 2>&1 | awk '{print "## "$0}' >> $LSMOD_LOG

Before I fixed this bug, the system would not stop any services before a suspend-to-disk or suspend-to-ram if I told it to. This can lead to problems with autofs and maybe networking.

In the end, I found it not necessary to stop networking before a suspend, but only if I use the ifplugd service for the internal LAN. Otherwise, the routing after a successful resume is broken: The default route is always via eth0, even though there may not even be a cable plugged in.

The Xorg shipping with SUSE Linux 9.2 comes with a radeon driver that supposedly supports some sort of power-savings mode the graphics chip has. One has to add

  Option       "DynamicClocks" "on"

to the radeon's Device-section in /etc/X11/xorg.conf in order to turn this feature on. I have not conducted any tests if this has some effect, but it sure does not hurt either.

Bluetooth

Bluetooth just works out of the box. This is good news, but the bad news is: KDE does not yet offer anything remotely close to what Mac OS X can do when it comes to bluetooth connectivity with cell phones. So, yes, bluetooth works, but communicating with my Sony Ericsson T610 alone is not helpful in any way as long as Kontact cannot sync its address book with the cell phone, let alone send SMS messages or dial numbers by clicking on them in the address book. They say Evolution is one step ahead here, but I am not going to drop the otherwise excellent Kontact in favour of Evolution just for this one reason.

I have a Logitech MX900 for my workstation and quickly tried if the T41p could talk to it (it can under Windows, took less than a minute to set up), but that did not work without further investigation. As I have no intentions to really use the MX900 with the Thinkpad, I gave up.

OSD for brightness and volume

SUSE Linux 9.2 comes with the tpb program to allow for easy setup of an onscreen display for brightness and volume. tpb works reasonably well, but needs access to /dev/nvram to be able to do anything. Unfortunately, /dev/nvram is only accessible by root per default, so I set it up in /etc/permissions.local to be 644. This did not work permanently, after the next reboot the permissions were back to 600.

Some searching via Google turned up that I needed to modify an entry in /etc/udev/permissions.d/50-udev.permissions. /dev/nvram is listed there as being 600. I changed this to 644 and it seems to work ok. I finally added tpb to the /opt/kde3/share/autostart dir to have it run each time a user logs on to KDE.

By the way: tpb does not seem to like Xorgs new compositing eye-candy features for dropshadows: If I turn these on, tpb's display is garbled.

Special Thinkpad keys

The following Thinkpad keys either just work (because they are driven by the notebook's BIOS) or generate ACPI events I could easily make use of:
  • Power
  • Volume up and down
  • Mute
  • Screen brightness up and down
  • ThinkLight
  • Standby/Suspend (Fn+F4)
  • Bluetooth on/off (Fn+F5) -- this one also turns WLAN on and off under Windows, a "feature" I am not missing at all
These do not work:
  • Access IBM
  • Backlight on/off (Fn+F4)
  • Fn+F7, whatever it's supposed to do
  • Hibernate (Fn+F12)
  • Browser back- and forward (the keys next to the cursor keys)
The tpb manpage suggests one can make the Access IBM button work with it, but I did not bother to try that. Of the non-working keys above, the only one I would have liked to make work is the hibernate key. (Update, 2005-04-10: I have written an article on how to get the Thinkpad's special function keys to work under Linux.)

I would have liked to use the power key to suspend the system to disk, but this turned out impossible, because this key is also used to wake the Thinkpad from suspend-to-ram when the lid is open. Unfortunately, the power key not only resumes the Thinkpad from suspend-to-ram, but also triggers a button/power event; this leads to the notebook resuming from suspend-to-ram and instantly performing a suspend-to-disk.

There are workarounds possible for this glitch, but I did not bother and set the power key to "ignore" in YaST.

Speed-stepping for the Pentium M CPU

SUSE Linux 9.2 set up speed stepping automatically for me, there was nothing to do or improve. It Just Works.

3D support from the ATI graphics chip

I did not even try it. I have some experience with ATI drivers and notebooks: It is all really just a shame for ATI to produce such utter crap. Also, I for the life of me cannot understand why IBM would pick ATI and not nvidia for a top line notebook like the Thinkpad T41p. If ATI and their software engineering have not improved by some orders of magnitude over the last couple of years, the Windows drivers for this card aren't much better than the Linux ones, either.

VGA out

I did not manage to get this to work in any useful way. The best one apparently can hope for is a clone of the internal display, but this is hardly useful: The internal resolution of 1400x1050 is unlikely to be supported by video projectors or desktop TFTs.

Note that the Thinkpad T41p's VGA out port is supposed to work fine, but the radeon driver that comes with SUSE 9.2 seems to be defective in this regard.

Video out

I have yet to try this one out. From what I have read so far, it is pretty painful to get to work.

Internal modem

I have absolutely no use for the internal modem. I hear it is working, but I could not care less.

Some comments on the Thinkpad T41p

  • The overall hardware quality of the Thinkpad T41p is only so-so. For a notebook this expensive, I would expect a higher quality. The palm rest is noisy and feels cheap. The touchpad is too small. The keyboard is okay, but certainly could be better. There is no battery-meter on the device itself (even the iBook's battery has this), just a not-terribly-helpful single LED.
  • The screen is too dark for my liking. This has been said numerous times before by others.
  • The missing firewire port is a shame. If IBM had dropped the internal modem and the parallel port for firewire, I would have been happier.
  • The harddisk is noisy. Much more so than the one in the iBook, but maybe that is to be expected: It is an 7200 rpm drive versus a 4200 one in the Apple notebook.
  • The Thinkpad T41p gets very warm on the bottom side if I am working for more than an hour or so on it. This makes having the device on my lap while working feel uncomfortable.
  • And of course: The ATI FireGL graphics chip is a costly pile of crap. Very annoying.

Summary: The IBM Thinkpad T41p and SUSE Linux 9.2

All in all, the IBM Thinkpad T41p and SUSE Linux 9.2 seem to be an almost-ideal combination for any Linux user looking for a decent notebook to get his job done. It definitely is not a toy: It is way too expensive for that and also cannot do gaming (not at all under Linux). Few things regarding the overall setup have to be dealt with at all; only two or three problems remain unsolved. For the most part, though, this combo just works, and does so brilliantly. I find it especially noteworthy how much attention SUSE seem to have spent with this release of their distribution on making it work seamlessly with mobile computers. Although some edges still remain, I think they did a great job here and consider my money well spent. The T41p in itself is a fantastic machine, undoubtedly.

Other very helpful ressources



<< Thinkpad function keys on SUSE Linux 9.2 Linux