Zit Seng's Homepage @ pobox.com/~lzs
LZS' Homepage
Zit Seng's Homepage

Note: I'm not using this notebook anymore. I've since moved on to a nice X20 (which is getting quite obsolete by now).

Linux on the IBM ThinkPad T20

I got an IBM ThinkPad T20 (model 2647/41A) in August 2000. I had wanted to get an ultra-slim notebook with XGA LCD resolution, and of course, one that runs Linux well. The T20 isn't quite exactly what I'd call an ultra-slim, but nevertheless this is a pretty excellent notebook.

Overall, Linux runs quite good on the T20. This is one of the models that IBM has said will have a Linux preload option. This option wasn't available to me (it wasn't available for order anyway at that time). But knowing that IBM will make Linux run on this notebook, then Linux must be supported or will be supported.

The T20 2647/41A specs are:


Pre-Installation Preparation

Just like I had installed my other notebooks, I really prefer to have a hibernate partition than a hibernate file. The idea is that one day when I decide to permanently remove the Windows partition (where the hibernate file is contained), I don't have to fuss around with any hibernate problems.

My notebook came with the disk partitioned into roughly two halves C: and D:. I used FDISK.EXE to delete D:, then use PHDISK.EXE to delete existing hibernate file, then reboot and use the same PHDISK.EXE to create a new hibernate partition.

Installing Linux

When I first got my T20, I installed Linux Mandrake 7.1 (I've also tried 7.2 when it was released). I've since moved to Red Hat 7. Both distributions are excellent and the whole installation process was largely uneventful.

The only thing that needs attention is X. See the next section for more details.

Video and X Windows

According to Tim Robert's S3 Savage web page, XFree86 3.3.6 apparently detects but does not draw to the Savage MX and IX video chipset. The T20 uses the Savage IX8 chipset. Fortunately, a patched XF86_SVGA binary is available from him.

Download the file xf86svga.tgz and replace the binary in /usr/X11R6/bin/XF86_SVGA with the one contained in this file. You can get 1024x768 resolution in 32-bit colours.

Strangely, the DPMS power off function (eg, by running xset dpms force off) produces a strange line pattern on the LCD.

Update (14 Dec 2000): There is now a XFree86 4.0.1 driver available for this Savage chipset. Get it from Tim Robert's S3 Savage XFree86 4.0.x page.

Update (24 Sep 2001): Support for the Savage chipset has been available in the XFree86 4.x series for a while. More information, including latest driver updates, are still available from http://www.probo.com/timr/savage40.html.

Sound

The T20's sound chip is a Crystal Audio Sound Fusion PCI Audio Accelerator (CS4624). It is supported by the OSS/Free kernel drivers since around kernel 2.2.17 (or 2.2.16 as distributed in Red Hat 7). This driver does the proper power management tricks so you can enable PCI Bus Power Management in the T20's BIOS. Be sure to specify the thinkpad=1 option to the cs46xx module.

Put the following in /etc/modules.conf:

alias sound-slot-0 cs46xx
options cs46xx thinkpad=1

It is still necessary to unload the sound modules before suspend and reload after resume. Do it in your /etc/sysconfig/apm-scripts/apmcontinue script.

Lucent WinModem

The Lucen WinModem is supported. You can get the software from here. I haven't played much with this, other than dialing up in minicom. Previously, there was a problem getting the PPP code running with the Lucent driver, but this is supposedly fixed in the recent drivers.

APM

APM works for the most part. The kernel shipped with Mandrake doesn't quite have all the APM tweaks turned on. I suggest the following, taken from my kernel configuration:
CONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
CONFIG_APM_DO_ENABLE=y
CONFIG_APM_CPU_IDLE=y
CONFIG_APM_DISPLAY_BLANK=y
CONFIG_APM_IGNORE_SUSPEND_BOUNCE=y
CONFIG_APM_RTC_IS_GMT=y
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

The only APM thing I haven't got working right is hibernate. Fn-F12 produces a low beep and does nothing. I set the APM BIOS configuration to hibernate when battery low, and also hibernate when suspend after 90 minutes, but neither seem to have any effect either.

IRDA

The NSC-87338 IrDA chipset in the T20 is supported by Linux. The stock Linux Mandrake kernel has the IrDA configuration part figured out right, but you need serial support compiled as a module. The reason is that you need to load the IrDA module before the serial module in order for the IrDA module to manage the IrDA device. If serial is compiled into the kernel, then the kernel will grab control of the IrDA device and the real IrDA module (nsc-ircc) will fail to load.

Add the following lines into /etc/conf.modules:

alias tty-ldisc-11 irtty
alias char-major-161 ircomm-tty
options nsc-ircc dongle_id=0x09
alias irda0 nsc-ircc

You might also have to create the following IrDA devices (these are already there in Red Hat 7):

mknod /dev/ircomm0 c 161 0
mknod /dev/ircomm1 c 161 1
mknod /dev/irlpt0 c 161 16
mknod /dev/irlpt1 c 161 17

I haven't done much testing yet, but if I run ifconfig irda0 up, my Palm V detects something out there and can hotsync with Gnome Pilot. (However, I am having some problems with Gnome Pilot. It crashes at the end of the hotsync operation, although my Palm V thinks everything is fine.) The IrDA ircomm talks to my Nokia phone okay.

Remmeber to set the permissions on the devices appropriately if you want non-root users to use IrDA. Also, you need to block off IRQ 3 from the PCMCIA cardmgr so that card manager will not conflict with the IrDA hardware. Do this by including a exclude irq 3 in /etc/pcmcia/config.opts. (While you are at it, also block off IRQ 11 so your PCMCIA won't interfere with the IRQ used by sound, USB, etc hardware in the ThinkPad.)

USB

USB is supported in T20. The stock kernel that comes with Red Hat 7.0 works great. I've previously installed Linux Mandrake 7.1 and that worked well too. I've found that with the kernel 2.4.0 you may need to load the USB modules manually (but perhaps I didn't do something right somewhere...):

modprobe uhci modprobe hid modprobe keybdev modprobe mousedev

The USB keuboard works great and appears to be exactly your standard PS/2 keyboard. The USB mouse, however, appears as a new device under /dev/input/mice. There may be a little problem if you want your software to use both the built-in trackpoint as well as the USB mouse simultaneously. The solution (from Hugh Holbrook) is to add the following section to /etc/X11/XF86Config:

Section "Xinput"
      SubSection "Mouse"
              DeviceName   "USB Mice"
              Protocol     "IMPS/2"
              Port         "/dev/input/mice"
              AlwaysCore
      EndSubSection
EndSection

This is in addition to the usual Section "Pointer" that should already be in your /etc/X11/XF86Config file. This will tell X to use both mice at the same time. Add Emulate3Buttons and Emulate3Timeout 50 if you want to simulate 3 buttons on a 2 buttons mouse.

I don't know how you can get gpm to use both mice. But I guess if you are in text mode, the mouse doesn't matter too much :)

References and Links

Some of my other pages:

Using Linux with WaveLAN
Guide to wireless networking using Lucent WaveLAN (Orinoco) on Linux. Works for the Cabletron RoamAbout too.
Using Linux in NUSNET (or other WinNT campus network)
A guide to running Linux in a Windows network environment. This was written specifically for the NUSNET campus network but information might be useful to others too.
Linux on the Inspiron 3500
Guide to running Linux on the Dell Inspiron 3500

Pages elsewhere on the Internet:

Linux on Laptop
The reference index to running Linux on notebooks.
Linux-ThinkPad
Linux on ThinkPad information
Linux ThinkPad Mailing List
A mailing list about Linux on the IBM ThinkPad.

IR Driver Tiny HOWTO
Setting up IRDA drivers / protocol stack on a ThinkPad. Author has a 600E, but it works for a T20 as well and maybe other notebooks with similar IrDA config too.
Trackpoint Utilities
Software for better TrackPoint support, including Z-axis (button pressure) input.
Savage MX/IX Info
Information about the S3 Savage MX/IX video chipset. Patched driver for XFree86 3.3.6 available here.
USB Ethernet

Comments

Please feel free to email me any comments, corrections and additions. I would really appreciate if you can share with me any discovery that I haven't quite figured out :)


ChangeLog

8 Nov 2000: Update sound section to reflect use of cs46xx driver in Red Hat 7.

22 Jan 2001: New version of Lucent WinModem driver module available.

2 Feb 2001: Added info about simultaneous trackpoint/USB mouse use under XFree86.



Valid HTML 4.0!
© 1997-2000 by Lai Zit Seng. All Rights Reserved.
Contact information
Copyright ©1997-2005 by Lai Zit Seng. All Rights Reserved. Get Firefox!