Using Debian Linux Linux can sometimes be a bit tricky to install on a laptop machine, and a few hints can come in very handy in this process. This document shares my experiences installing and configuring Debian Linux on an IBM Thinkpad X20. My particular x20 is model 2662-35U, i.e., with a Pentium III-600, a 20 gig hard disk, XGA (1024x768) display, and an IBM-manufactured ethernet card. I installed Debian 2.2 off of the official Debian CDs. Partitioning the hard diskThe machine arrived from the factory with Windows 2000 installed on a single large partition (hda1), with the System Recovery Data stored in a second one-gigabit "hidden" partition (hda2). Since no recovery CD is shipped with the machine, deletion of this partition prevents future restoration of Windows 2000. Deletion of one or both partitions may also void some or all of the system's warranty coverage; I don't know, and I'm certainly not about to read the legal agreements necessary to find out! Anyway, I decided to leave the recovery data intact, so I split up the first partition into a set of smaller partitions (hda1, hda3, and hda4), and left the "hidden" partition alone for the time being. I can always wipe it later if I run out of disk space.Network configurationNetwork installation was pleasingly easy. The built-in ethenet/modem card on my particular model of the X20 (i.e., the card made by IBM, not the one made by 3Com) functions as an EtherExpress Pro 100. When choosing device modules, simply select the eepro100 driver from the Net category. No additional PCI drivers are necessary.APM (Advanced power management for laptops)It was also pleasingly easy to get most of the APM features working: I simply included APM support in the kernel, and employed the default settings for all APM-related options. The machine can now be suspended (sleep mode, which consumes a small amount of power) from the keyboard or simply by closing the lid. I have not been able to get the machine to "hibernate" (store the current state of memory on disk and then suspend with no power use). Perhaps I ruled out this possibility by erasing the windows partition; I don't know.Installing XFreeThis was the hard part. I chose to go with XFree 3.3.6, the version included in Debian 2.2. Suggestions about how to deal with the ATI Rage Mobility M card vary; here I will list what worked for me.First of all, anXious was unable to handle the setup, and XF86Setup will not run on this system. Instead, I used xf86config, a text-based configuration utility. This program (like anXious and XF86Setup) creates a file called XF86Config which specifies the details of the xserver configuration. This file resides in /etc/X11 on my Debian 2.2 system, though its location may vary. Among other things, xf86config requires you to select sync rates for the monitor; the following work for me: Horizontal Sync: 31.5-48.5 Vertical Sync: 50-90 Here is my XF86Config file. Drivers:The 3.3.6 versions of the XF86_SVGA and XF86_Mach64 both work for my machine/screen/card combination; I use the XF86_Mach64 driver. Some users report problems with the XF86_Mach64 driver and suggest a patch or an altered binary. These patches did not work for my particular setup, but the original form in the Debian 2.2 distribution works fine. Note that when compiling the kernel configuration, the console driver ATI Mach64 display support must be set to No. ModelinesModelines are generated automatically by xf86config; these worked fine for me once I got the sync rates (listed above) and video mode (listed below) set properly. Video ModesMy Thinkpad X20 model supports a native graphics mode of 1024 by 768. In order to force X to start up in this mode, I removed all other display modes from the Screen:Display section of my XF86Config file. Mouse (GlidePoint)Select PS/2 or GlidePointPS/2, with /dev/psaux. I ran into a conflict between gpm (which provides mouse support in the text console) and X. While gpm was running, the mouse was erratic on /dev/mouse and not found on /dev/psaux. Once gpm was removed, the mouse works perfectly on /dev/psaux (and is not found on /dev/mouse). Since I don't really use gpm anyway, my favored solution was to get ride of the gpm package entirely. To do so, simply type (as root): dpkg -P gpm Obviously, this is a rather ugly solution. Some may prefer to simply disable gpm before running X: gpm -k and start it again upon returning to the console: gpm -t ps2 -m /dev/psaux A note about font paths:Because Debian and Redhat handle fonts differently, Debian users who borrow an XF86Config file from their Redhat brethren need to change the font path information. The Files section of a Redhat XF86Config will probably look something like the following:
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "unix/:-1"
EndSection
With Debian 2.2, it should specify full font path information, as follows:
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection
SoundMy X20 uses the the Cirrus Logic Crystal CS4281 sound card; support for this card is available in the 2.2.19 kernel (and the 2.2.18, I believe) but not in earlier versions. To install sound, I simply got the 2.2.19 kernel sources and compiled CS4281 support directly into the kernel. To allow all users to access the sound system, I had to change the file permissions on /dev/dsp to from crw-rw---- to crw-rw-rw-. You can do this by typingchmod a+rw /dev/dspwhile logged in as root. WinmodemThe X20 has a built-in winmodem based on the Lucent chipset. When I bought the machine, I figured this would be useless weight, plain and simple. But this is not quite so - one can get the thing running if you are willing to use non-open-source code. The procedure is actually relatively easy. I downloaded the source code ltmodem-5.99b.tar.gz (actually a wrapper around a binary object) from Christoph Hebeisen's Linux Drivers for Lucent Winmodems page. Included with the source are a simple set of instructions for how to create a loadable kernel module providing modem support; following the instructions and loading the module were sufficient to get the modem working. (Before compiling the ltmodem module, make sure /usr/src/linux points to the kernel sources or kernel headers corresponding to the kernel that you are running.) If you run into further trouble, take a look at Daniel Rees' tutorial on using a winmodem with Linux.AcknowledgementsI am extremely grateful for all the help I have received in getting my X20 running, and in improving this page. Two other web pages got me started by providing overviews of installation process for the X20 using Red Hat 7.0 and the X20 using Debian Linux. Since putting this page online, a number of people - including Berndt Schwerdtfeger, Serge Rey, Michael Lachmann, and Steve Durst - have provided helpful comments and suggestions, which I have incorporated into the notes above. Nick Okasinski pointed me to a useful page about running SuSE Linux on the X20, and I stumbled across an additional useful page that Dag Wieers has written on running Linux on an X20. Finally, Brett Eldridge also has notes on the X20 Linux installation process.
Last modified July 20, 2004 |