For suggestions, improvements or if you just want to talk to somebody, please
mail to: Dag Wieërs
IBM Thinkpad X20
big Linux-supporter and most of their hardware is supported. That's
why these thinkpads are probably the best choice for running Linux
on a laptop. Let's go through it in detail.
Model number: 2662-32G
List of hardware:
CPU: Intel Pentium III (Coppermine) 600, 256 KB cache
I only installed Red Hat 7.1, everything worked off the shelf. I compiled
my own kernel afterwards. (make rpm)
Chipset: Intel Corporation 440BX/ZX - 82443BX/ZX
Intel Corporation 82371AB PIIX4
Memory: 320MB RAM, 100 MHz, non-parity, 64-bit SDRAM SO DIMM memory
Hard disk: 20 GB IBM ATA DISK, IBM-DJSA-220
DVD-ROM: HITACHI ATAPI DVD-ROM GD-S200
Video: ATI Rage Mobility P/M AGP 2x (Mach64) 4Mb
Soundcard: Crystal SoundFusion CS 4281
PCMCIA: Ricoh Co Ltd RL5c476 II
Internal modem: Lucent Microelectronics WinModem 56k
Please note that if a graphical installation does not work, you can always try
to install it text-based.
To avoid problems with booting large harddisks, please use a recent version of
LILO that supports LBA with large hard drives and that doesn't have the 1024
cilinder limitation for kernel-images.
The nice thing about Linux is that you can configure your kernel exactly to fit
your hardware and since kernels improve very fast, you can keep up with the
latest features of the kernel as soon as they arrive.
To compile a kernel for your system, you should check the
but for your convenience we've put specific
online that works great
with the Thinkpad X20.
The configuration of X works automaticaly for several distributions. However
if you have problems, please use this XF86Config-file.
For XFree86 3.3.6, you should use the XF86_Mach64 server. For
XFree86 4.1.0 you need the ati-driver (as specified in the proper
On these types of thinkpads the key-combination Fn-F7 allows you to
switch from your LCD to an external monitor or both. (Three phases) This
however leaves your
X in the same resolution as on your LCD, which is lower than the capablities
of your external monitor. At this time however, you need to restart your
X-server to change the resolution. Work is in progress to overcome this
In Windows 98 you can use the external monitor as a second head, unfortunately
this is not supported by XFree86. When this support is added is unknown.
There is a special option in your XF86Config file to specify using the
external monitor at startup.
Beware: the BIOS allows you to boot with an external monitor by default.
I had the misfortune of having an X20 with only the Linmodem Mini-card and not
the much more interesting Combo-cards (that will make the already wired and
functional Ethernet-jack at the back useful). If you have such a Combo-card,
I can assure you that they work with Linux.
The driver you need is cs4281 and it works like it should.
There is a small problem with the soundcard when rebooting from Windows 98.
It refuses to load the driver (the device doesn't seem to work correctly).
Halting and powering down the system solves the problem.
APM seems to work perfectly here. I haven't tried ACPI.
You can suspend your laptop by pressing Fn-F4.
Beware: check your BIOS for additional configuration.
PCMCIA is supported and will most probably work off the shelf with your
distribution. But if you have build your own kernel you need the right drivers
for your PCMCIA-devices. To get more information about PCMCIA-drivers and how
to configure them, check the
Although the system indicates you have 2 PCMCIA slots, one is used by the
Flashcard reader. I haven't tried it (yet).
The laptop comes with a Lucent winmodem. Unfortunately, there is no real
Open Source driver, the module that does exist uses a binary object containing
all the real code to use your winmodem. The wrapper-module (that uses
the binary object) can be compiled with all the recent kernel-versions.
You can find the
and more information about winmodems on the
If you used the kernel-config above, you're able to use the VESA framebuffer driver
by adding the following lines to your /etc/lilo.conf:
Here's a list of different modes:
| 640x480 800x600 1024x768
256 | 0x301 0x303 0x305
32k | 0x310 0x313 0x316
64k | 0x311 0x314 0x317
16M | 0x312 0x315 0x318
If you want to use the faster text-mode with smaller fonts (80x60) then you can simply use:
If you used the kernel-config mentioned above, just link /dev/mouse to
/dev/input/mouse0 and load the following modules usb-uhci, usbmouse and
You can have both mouses (internal and USB or serial) work together in X by specifying the following
in your "ServerLayout":
InputDevice "Mouse 1" "CorePointer"
InputDevice "Mouse 2" "SendCoreEvents"
And ofcourse defining both mouses.
Some people reported problems in enabling the numeric keypad. To enable NumLock (or NumLk)
press Shift+ScrollLock (or Shift+ScrLk). BUT... this does not work in XFree86. I don't know yet how to enable this.
The internal DVD-ROM player works out of the box and works better under Linux than both
Windows 98 and Windows 2000. The software I use is
(or vlc). The sound signal is
weak though and subtitles don't always work as they should, overall I had less problems with just playing.
I'm using journaling filesystems on most of my systems nowadays. I use ext3 because at this
moment I don't trust neither reiserfs and XFS nor JFS or included in the kernel. And
Red Hat comes by default with all the tools to use ext3 (although I've build a newer
e2fsprogs package myself).
You don't really need a journaling filesystem, but occasionaly you find your machine
locked up because it ran out of power or because you were experimenting a bit too much.
And then you will enjoy a journaling filesystem more than ever.
The X20 consists of 2 parts. A very thin laptop and a small docking station. You can
have the docking station attached to the X20 all the time (if you don't mind it being
not that thin anymore). To undock the X20 however, you need to halt the system first
and power it down, at least in Linux. It's a pity though that software to handle the
undocking process does not exist for Linux.
Some settings allow to use both your trackpoint and an external mouse at the
same time without a problem. TODO
IBM released some BIOS updates, unfortunately these updates are distributed as
DOS or Windows executables which is a pain for Linux users. It would be nice
of IBM to just distribute the images created by these disks so users of other
platforms can upgrade their BIOS without needing DOS or Windows.
Only update your BIOS if you really need to.
For your convenience we've put these images online:
Beware: you cannot upgrade your BIOS if this is disabled in your BIOS. (Doh!)
Here's my /etc/modules.conf file,
alias char-major-10-170 thinkpad
alias char-major-13 mousedev
alias char-major-62 lt_serial
alias char-major-90 tun
alias parport_lowlevel parport_pc
alias sound-slot-0 cs4281
#options eepro100 options=64
pre-install mousedev modprobe usb-uhci && modprobe usbmouse
Although I would recommend a thinkpad to everyone, my X20 has the following flaws:
- Suspend does not always work properly (could be the Linux kernel itself)
- Sometimes X goes blank after suspend
- ps/2-wheelmice don't work (because red knob shares the ps/2-protocol).
Use USB or serial if possible and configure X.
- DVD-sound signal is very weak and making it stronger (with an external amplifier)
reveals sqeaky noises.
- Soundcard locks up after rebooting from Windows 98.
Here are some pointers to more information about these thinkpads and other
- If screen is blank after suspend.
- Just press Function+F7 (Fn+F7) three times. This should work.
- Press some keys or move mouse and wait about 20 seconds.
Sometimes screensaver is causing problems.
- Don't panic.
- Try to switch to see if virtual consoles still work. (Ctrl+Alt+F1)
If so, switch back and kill X (Ctrl-Alt-Backspace)
- Try to suspend again. Wait. Unsuspend.
- If all else fails, use sysrq-keys to sync and umount filesystems and reboot.
If sysrq is enabled (Alt+SysRq+S, Alt+SysRq+U, Alt+SysRq+B)
- If network is gone.
Restart pcmcia subsystem and reconfigure interface
- If soundcard locks up after booting Windows 98.
Halt and power down the system and then restart Linux.