Wednesday, January 24, 2007

Debian GNU/Linux (sid) on the IBM/Lenovo ThinkPad T60

(Link to webpage)
Specification
IBM/Lenovo ThinkPad T60
  • Intel Core Duo processor T2500 (2.0 GHz)
  • Mobile Intel 945PM Express Chipset
  • 2 GB RAM (PC2-5300 667 MHz DDR2)
  • 100 GB SATA 5400 rpm hard disc (Fujitsu MHV2100BH)
  • ATI Mobility Radeon X1400 M54 128 MB
  • 14.1" SXGA+ (1400x1050) TFT color
  • DVD burner / Super Multi-Burner
  • PC Card Slot
  • Gigabit Ethernet (Intel 82573L)
  • 3 USB 2.0 ports
  • 56K V.90 (V.92 designed) modem
  • High Definition (HD) Audio AD1981HD
  • Infrared port
  • Bluetooth
  • Intel PRO/Wireless 3945ABG
  • Fingerprint reader

First Impressions

The build quality of the T60 is extraordinary. Compared to the HP Omnibook XT1000 which I own as well and which isn't bad quality at all, the ThinkPad T60 is even better. Everything feels rock solid, you cannot bend the notebook, it sits in front of you like a black beautiful monolith. Regarding the opinions on the net that the T60 doesn't look as good as its predecessors, I have to disagree. I think the T60 looks much more "finished" and business-like than even the T43.

Installation Preparation

The ThinkPad comes preinstalled with Windows XP Professional. There's an additional partition on the hard disc which contains "Rescue and Recovery" tools in case something goes wrong. This is a hidden partition, accessible via the "ThinkVantage" button during booting.
As I didn't want to lose either Windows XP itself nor the recovery partition, some investigations were necessary. The Master Boot Record (MBR) seems to be a special one that checks for the "ThinkVantage" button. So, installing GRUB in the MBR will render the button useless. Installing GRUB into the GNU/Linux root partition and making it bootable, is a nice idea but doesn't work with this MBR either.
The installation procedure I took is this:

  • First of all I created the recovery media set (one CD and one DVD) from within Windows. In case something goes wrong, you can always restore to the factory settings this way.
  • Then I shrank the Windows partition down to only 30 GB.
  • I installed Debian GNU/Linux with the latest Debian Installer Beta 2 for the forthcoming Etch release. Installation works like a charm. SATA and the Gigabit Ethernet are recognized without problems. No manual fiddling necessary here.
  • As mentioned above, I didn't install GRUB in the MBR of the hard disc, but in the GNU/Linux root partition.
  • In order to make Debian really bootable, I used the Windows XP boot loader. Therefore, the 512 bytes GRUB installed in the GNU/Linux root partition (/dev/sda4 in my case) have to be copied over to the Windows partition. The Debian installer offers you the option to open a shell where you can do:
    dd if=/dev/sda4 of=bootgrub.bin bs=512 count=1
    Now copy bootgrub.bin to some removable media or to some other computer via network for later on.
  • When the Debian installer prompted for a reboot, I booted into Windows XP, copied the bootgrub.bin file into C:\ and added the following line to C:\boot.ini:
    C:\bootgrub.bin="Debian GNU/Linux"
    I also made this the default and decreased the timeout to 5 seconds, but that's just personal taste.
  • When I rebooted into Debian, the first this was changing /etc/apt/sources.list from etch to unstable and doing an apt-get dist-upgrade.

Once you know how to do it, it's not very hard. ;-)

Framebuffer Booting

If you want to see your two Tuxes when booting, add the following option to your kernel options when booting:
vga=0x323

Kernel

I'm using Linux kernel 2.6.16 on the T60. The most important configuation option I had to change after the installation was multi-processing. If the machine has two processors, we would be stupid not to use both! Here's my config-2.6.16 in case you want to have a look at it.

X11

The ATI Mobility Radeon X1400 is relatively new and is not yet supported by the ati drivers included in XFree86 or Xorg. However, there is a binary only driver (called fglrx) by ATI themselves available. This driver is included in Debian and comes with source for a kernel module (for kernel 2.6.16 at present) which you should compile as well.
If you think the fonts are too small, have a look whether your X server is started with the -dpi 96 option. If so, remove it and enter the dimensions of your screen in the xorg.conf as DisplaySize in the Monitor section. Then X calculates the DPI setting and the fonts get larger. In order to make most of the touchpad, use the Synaptics driver which is supplied with Xorg. My xorg.conf is here as a reference.
Especially interesing is the Generic Mouse section as this enables middle mouse button scrolling of the UltraNav.

Sound

For sound, just compile ALSA into the kernel and especially the snd-hda-intel module (configuration option CONFIG_SND_HDA_INTEL). That was enough to make it work for me.

Network

The Gigabit Ethernet in the T60 is supported by the e1000 driver (configuration option CONFIG_E1000) and just works.

WLAN

At present you need to disable all WLAN and IEEE80211 stuff in the kernel. Then you have to build it from http://ieee80211.sf.net/ and install the driver for the WLAN card from http://ipw3945.sf.net/ which works quite well for me. But connecting to an access point can take very long at some times.

USB

Configure USB support in your kernel and install udev then hotplugging should just work as well.

Mouse

The internal touchpad and TrackPoint are on /dev/psaux. In order to make USB mice work, configure your kernel in a way that mice are enabled in the HID section of USB. In my xorg.conf I have defined the touchpad and the TrackPoint as CorePointer and have set up an additional input device that sends core events as soon as an USB mouse is plugged in.

Fingerprint reader

There's an excellent guide of how to enable the fingerprint scanner which I followed to the letter. Afterwards you can log into your account using the fingerprint scanner like you can on Windows. Cool!

Modem

I haven't spent any time in configuring it as I don't need it.

IrDA

I have not yet spent any time getting it to work.

Bluetooth

I have not yet spent any time configuring it.

ACPI

I have all ACPI modules enabled, especially ibm-acpi. If you compile that as a module and add the following line to /etc/modules, you have control over the fan via /proc/acpi/ibm/fan (although you can only enable or disable it):
ibm-acpi experimental=1

ThinkPad keys

Using either tpb or hotkey-setup makes the additional buttons emit key codes which you can map to actions.

Problems

The only thing that is worrying me a little is the fact that the fan is constantly spinning. I had hoped the T60 would be a machine near quiet. But due to the spinning fan this is not the case. That's the only disappointment for me.

Related pages

ThinkPad T60 - Installation Guide for Linux

Debian Linux on an IBM Thinkpad T43p

Click here to go back to the index page.