Debian Linux on an IBM Thinkpad R50
Last updated 28th March, 2004
Please forward comments to
Brian Williams (remove the # from the email address).
Selection of PC
I recently decided to purchase a notebook. There were many different
brands and models to choose from. I eventually selected the IBM
Thinkpad R50, type 1829-4AM. This model appeared to be a relatively
good price, while satisfying my main requirements on capabilities.
Looking at the specifications, this model appears to be only a small
upgrade of the Thinkpad R40, which by oither accounts is quite well
supported by linux. Thus, I expected this model to also be well
I installed Knoppix to give a base debian setup, then started modifying
the system to my preference (although having done so, I think I still
prefer a straight debian install where I know more about exactly what
is installed and needs to be configured).
I have compiled custom 2.4.25 and 2.6.3 series kernels running
satisfactorily on this machine.
The sound chip is identified as the Intel i8x0, and works without any
problems. The volume up/down buttons above the keyboard can be used to
control the volume, as an alternative to the normal software controls.
The display under Xfree86 was configured and works reasonably for my
needs using the 14" 1024x768 LCD screen. The function keys allow
switching between the internal and external monitors.
After a bit more googling around and looking at some information, I
have adapted the XFree configuration to support Xinerama. It works
quite well with my current window manager (sawfish). At some time I
will try out metacity again, but so far, everytime I play with it I end
up dropping back to sawfish. At present, the "primary" display appears
to be the LCD, and the secondary display is the external VGA. I have
tried various changes to the configuration file to make the
external display the primary, but either it did not change it, or the
external display did not come up. For now, I am living with the LCD as
the primary display.
My XF86config file is here.
The R50 sports one double height PCMCIA slot, with a TI PCI-4520
controller. Initially I had
difficulty with the PCMCIA cards. The PC did not appear to react when
cards where inserted or removed during operation, on both the 2.4.x and
2.6.x series kernels I had compiled. The PCMCIA card did work if it was
inserted when the PC was booted, but would no longer operate if it was
then removed/re-inserted (no indication that the removal/re-insertion
events were noted). From a quick google around, I changed the file
/etc/default/pcmcia (*) to use PCIC=i82365 instead of
and this appeared to fix the problem.
(*) Note: since the problem occurred again as indicated below, this
change was removed.
However, at some point my original problem returned. I could not work
out the reason, and considered that it might be a result of the BIOS
update I performed. I tried various changes to the settings using
information from the PCMCIA Howto, and information about the hardware
available from within windows. All to no avail. Then I realised
something very interesting; the card removal/insertions are recognised
if I have logged in to X, but not if I am still at the GDM screen (I
was often doing testing from the virtual terminals, rather than from
logging into X). I still can't explain it, but the the PCMCIA interrupt
handling seems to be dependent on the video. Any suggestions welcomed.
slot has been tested with 3 different wireless cards, and an ethernet
Hard Disk and Dual Booting
Since the original primary partition is fat32, but will be converted
to NTFS at first boot, the first time I booted the PC was using a
Knoppix CD into linux (i.e. so it never booted into windows at this
point). I could then repartition the disk easily, after which I could
boot into windows and let the c: partition be converted to NTFS.
I could then repartition the hard disk to have a mixture of fat32 and
linux partitions, and an NTFS c: partition only for the windows system
(no need for access from linux).
I installed linux into /dev/hda7, and also did a grub-install into
/dev/hda7. I initially selected to do this because the hard disk
initially contains a reserved area which is not visible. This is used
for the "access IBM" functions, including all software for recovery of
the hard disk to the status "as delivered from factory". At this time I
did not want to lose the possibility to boot into these functions using
the blue "Access IBM" button.
In order to allow linux to be booted from the hard disk, I
installed grub into this partition. I then used dd to read the first
sector (512 bytes) from /dev/hda7, and put this into a file
bootsect.lnx. I copied this file into a fat32 partition, then allowed
the PC to boot into windows.
Within windows, I copied the bootsect.lnx file to the location
indicated, and added the line below to the file c:\boot.ini:
With this setup, my PC now boots into a short menu from the NTFS loader
which offers either WinXP, or linux. If I select linux, it then starts
the grub menu.
Since I intend to keep regular backups of the windows area of the
system using another program, I no longer require this IBM restore
functions here (and the additional rapid restore feature for
performing/restoring backups, but which apparently does not handle
extended partitions). However, it was not until some time after the
initial setup that I decided I no longer required this hidden IBM area
at all, and recovered it.
I then reinstalled grub so that grub boots
directly, instead of the NTFS loader. WinXP is then just an option in
the grub menu, and the boot.ini file can be removed.
The built in ethernet is an Intel eepro100, and it is detected
correctly under linux, and works without any problems.
The R50 comes with an inbuilt Intel ipw2100. Preliminary drivers for this
are just now becoming available. I have downloaded and compiled them,
but not yet had the opportunity to test with them.
I run 802.11g though, so I prefer to use my PCMCIA cards based on the
Atheros chipset. The cards I have access to (a Dlink DWL-G650, and a
Netgear WG-511T) are working correctly using the madwifi
The USB interface is correctly detected and supported, and has been
tested with a memory key, a USB2 HDD enclosure, and a card reader.
Parallel, Infra red
I don't currently have a need for any of these devices, and have not
done any tests with them.
I have compiled in both APM and ACPI. I have not had any success
with ACPI, but APM works reasonably. The standby function (Fn-F5) and
recovery works. I have not yet setup the suspend to disk.
I also don't have much need for the modem at present, so it is not yet
tested (but it is not too far down my list of things to do). I have
compiled and installed the driver for the smart modem from www.smlink.com (and working through
the support/download options to get the linux drivers).
I have compiled and installed the drivers under both the 2.4 and 2.6
series kernels. In both cases, I can communicate with the modem, but
have not tested connection to an ISP yet. For some reason, there were
problems compiling/installing the software which I have not looked
into. The end result is that I have different versions of the modem
software used for the two different series kernels (more details will
be provided when I have actually tested the modem).
The IBM UltraNav device works sufficiently for my normal use (mouse
movement and tapping), but I have not configured X to support the
extended features available with a trackpad (i.e. the equivalent of
wheel functions). To get the tapping function to work, I had to add the
parameters psmouse.proto=imps2 to the command line for booting linux.
The keyboard light controlled by Fn-PgUp works.
Not Tested/To Do
2) built-in wireless
3) Suspend to Disk
4) middle mouse button, and enhanced trackpad functions
5) 3D acceleration
6) infrared, serial, parallel