DAG

Shortcuts:
Dconf ∑ Dstat ∑ Dwall ∑ Dweb ∑ Dwscan ∑ Lyrics ∑ mrepo ∑ Pixies.. ∑ RPMs ∑ unoconv ∑ wascii ∑ wiipresent ∑ Yam ∑

Google Site Search:
Flemish symbol European symbol
» Dag Wieers » Howtos » Thinkpads » Linux on an IBM Thinkpad A20m 
Linux on an IBM Thinkpad A20m
IBM is a 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.
For suggestions, improvements or if you just want to talk to somebody, please mail to: Dag Wieërs <dag@wieers.com> IBM Thinkpad A20m

Model number: 2628-31U

List of hardware: Installation of several Linux distributions didn't give us unusual problems. In some specific cases some devices didn't work properly but the rest of this document explains how to fix this for every device. No matter what distribution.

Please note that if a graphical installation does not work, you can always try to install it text-based if possible. 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.

The general rule of thumb is to use the latest stable kernel, but at the time of writing (2.4.9-ac5) the stable 2.4 kernels (which are pretty nice) offer some improvements. At this time I recommend to use one of the latest 2.4-ac kernels.

To compile a kernel for your system, you should check the Kernel HOWTO, but for your convenience we've put specific config-files online that works great with the Thinkpad A20m. The configuration of X works automaticaly for several distributions. However if you have problems, please use one of these XF86Config-files. For XFree86 3.3.6, you should use the XF86_Mach64 server. For XFree86 4.0.1 you need the ati-driver (as specified in the proper XF86Config-file). 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 problem.

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. The version I recently tested didn't have the onboard NIC, but the on-board ethernet of the Thinkpad A20m was supported even before these machines existed. So basic support is no problem. However, there are reports of driver problems when suspending your laptop. This was (apparently) fixed as of 2.4.0-test8. The driver you need to load is: eepro100.

This device is a 10/100 PCI network card. To force the driver to use e.g. a Half Duplex 10Mbps medium, enter: insmod eepro100 options=64, other values will enable/disable other options.

Beware: the BIOS allows you to configure some more network-specific settings. Thanks to Alan Cox, the soundcard in these systems only recently work perfectly. Some minor problems where reported with suspending, but these can be easily fixed by configuring apmd. Rumours have it that this is no longer a problem. The drivers you need to load are: soundcore, ac97_codec and cs46xx.

Recently a seperate option appeared in the kernel-sources, if you can do this add the option thinkpad=1 when loading the cs46xx-driver.

Others advice to install and use the ALSA drivers. You can find more information about the ALSA project on their website. Some problems have been reported with APM, sudden freezes and blank screens. ACPI however works fine although you have to manually restart your sound and network and you have to sync your system clock with your hardware clock. This simple script will just do all that and more.

You can suspend your laptop by pressing Fn-F4.

Beware: check your BIOS for additional configuration.

Red Hat users are adviced to enable all the options that are mentioned in /etc/sysconfig/apmd except CHANGEVT when using apmd. The only option that works under Linux is to create a hibernation file in Windows with the IBM utility from their website. If hibernation then works under Windows, it works under Linux too. (It doesn't depend on the OS, but it needs a FAT partition and, I guess, the location of the hibernation file.) 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 PCMCIA HOWTO The laptop comes with a Xircom 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 module and more information about winmodems on the linmodems website. IRDA works off the shelf (with recent stock kernels or if you used the kernel config-file mentioned above).

By loading modules irda, irtty and serial (in that order) I am able to connect to my Nokia 6150 (using gnokii) and to my Palm Vx. (SIR)

Beware: For FIR, you have to enable your infrared device in your BIOS and use the proper module-parameters e.g. insmod irport io=0x2f8 irq=3. The module the device needs is called nsc-ircc and should be loaded as follows: insmod nsc-ircc dongle_id=0x09. 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: 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 mousedev.

You can have both mouses (internal and USB or serial) work together in X by specifying the following in your "ServerLayout":

And ofcourse defining both mouses. 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.

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.

For your convenience we've put these images online: Only update your BIOS if you really need to.

Beware: you cannot upgrade your BIOS if this is disabled in your BIOS. (Doh!) Here's my /etc/modules.conf file, Although I would recommend a thinkpad to everyone, my A20m has the following flaws (using Linux, as I don't use another OS). Here are some pointers to more information about these thinkpads and other laptops.