Note: I haven't updated this page since Sep. 2000. I don't regularly use a 600X anymore. The tips below might still be helpful though. Good luck.
See Thomas Hood's excellent Linux on TP600 page for more detail. So far, I'm just including differences between his work and my own, but I plan to make this more user friendly once the content changes settle down a bit. I installed Red Hat 6.1, and have since upgraded to RH 6.2, but this info should be applicable to any 2.2 kernel-based distribution with a recent XFree86. Thanks to the numerous people who have provided tips and corrections.
Also, upgrading to the very latest BIOS version seems to make suspend/resume with the ORiNOCO wireless LAN cards (a.k.a. WaveLAN IEEE) and the wvlan_cs driver more reliable, thought not 100%.
Victor Yarosh <vy@nac.net> says that he couldn't use his DVD until he applied the 1.01 BIOS update. I never had any problem, but I also use DVD patches (which have now been integrated into 2.2.16).
I had to run Red Hat's installer in expert mode to boot successfully. When the installer asks for a driver disk, just hit "Cancel". Also, the graphical install was messed up on my machine, so I had to specify a text install. So, the Red Hat users that aren't using an update floppy should specify:
text expert
Red Hat users with an update floppy should instead use:
linux updates text expert
The next annoyance was partitioning. Disk Druid seemed to have
trouble with hard drives > 1024 cylinders (and others have had
problems with it), so for a Red Hat install, I'd suggest using fdisk
and doing the partitioning yourself by choosing a Custom
installaion. It would only see 1024 of the 1559 cylinders at first.
But, there is an expert command "c", which lets you
specify 1559. Then, you'll be able to use all of the hard drive.
You can also use PartitionMagic, but according to Red Hat, PM 4.0 doesn't create Linux partitions correctly, so Red Hat completely ignores them. Use PM 5.0.
I didn't use extended partitions at all, but Todd Ross <ToddRoss@Attachmate.com> says that you have to make sure to use the 0x0F partition type ("ExtendedX" in PartitionMagic 5, "Win95 Ext'd (LBA)" in fdisk) for your extended partition.
If you have more than 64MB of memory, 2.2 kernels won't properly
detect it. There are two solutions. One is to specify memory
explicitly to the kernel. On the LILO boot line, specify
"mem=######k" (without the quotes). The number to fill
in the #s is the number that appears in the upper left
of your screen at the very beginning of the boot process before LILO
starts. If this works, it can be made permanent with an
append= line in lilo.conf.
The ubergeeks among you will notice that that number of kilobytes is not equal to the number of MB of RAM in the machine. Trust me, if you try to specify the number of MB in the machine instead, the kernel will crash.
A better solution is to apply a fancy memory detection patch to your kernel. This allows Linux to detect all available RAM without silly workarounds. Enable all of the memory detection options when configuring the kernel. See my kernel configuration for more specifics. This even detected more memory than the Thinkpad reports on boot (and it all works too).
NM2200", a.k.a. a 256AV. I also told
XF86Setup explicitly that I have 4MB of video RAM, since only 2.5MB
was detected, but I don't know if that makes a real difference.
Here's my XF86Config for
3.3.6. Use it with the SVGA server.
I've now upgraded to XFree86 4.0.1 using the Red Hat Rawhide RPM; here's the
XF86Config for it. 4.0.1
has native 256ZX support, meaning that the correct amount of video
RAM is detected, and 24-bit color is now supported. I use 16-bit
mode, because it's faster and you can't tell the difference on an
LCD. I don't know if the new driver supports better acceleration,
but 4.0.1 feels faster to me. I have a minor problem when I close
the lid without suspending and I'm not using console framebuffer.
Doing anything to reset the display, like xvidtune or switching
virtual consoles back and forth, will fix the problem.
One advantage of the newer versions of pcmcia-cs (3.1.9 or later)
is that they automatically use the PCI IRQ for card status
notifications and Cardbus I/O. If you're using an earlier version,
you can change PCIC_OPTS in /etc/sysconfig/pcmcia. This may be done in
a different spot if you're not using Red Hat.
Make sure to run a kernel other than 2.2.15 (2.2.16 or later is preferable), or stop running apmd. A change in 2.2.15 broke suspends when apmd is running. If you must run 2.2.15, apply this patch.
Some Cardbus cards continuously assert CLKRUN, so that when they are active, the problem goes away. One such card is the 3com Megahertz 10/100 Cardbus Ethernet card (which is what I have). Also, as of kernel 2.2.17pre16, the cs46xx driver supports controlling CLKRUN. But, no other device drivers that I know of support it, so if you run in to trouble with the modem, or certain Cardbus cards, I'd recommend disabling it.
To do this, run "ps2 pcibusp disable" under DOS.
Now, there are problems with this as well. Naturally, you'll use
more battery power. Also, I have found that I sometimes can't
suspend properly under APM with this setting enabled. A recent BIOS
or kernel may have fixed this, since I didn't have this problem the
last time I tried it.
insmod -f. The ltinst script takes care of
this for you.
I've gotten a report that shutting off PCI bus power saving (see the Sound section) fixes the crashes. I haven't tested this, though.
Here is a project to build an open-source driver.
I used this kernel configuration. See
the entries with FB if you are rolling your own config.
Then, you need to specify the video mode to the kernel. I did this
by adding "vga=0x305" on a line by itself to the top of
/etc/lilo.conf.
With the very latest patches, the Thinkpad 600X has full FIR (4 Mb/s) support under Linux (though I've only tested SIR). IrDA for Linux is still in heavy development, so expect things to be a little more difficult.
First, make sure to enable the IR port. For now, I think the only
way to do this persistantly is with the DOS Thinkpad Configuration
tool (PS2). Get at least kernel 2.2.15pre5 and and use
the parameters from the IrDA section of my kernel configuration to rebuild your
kernel. Build and install the irda-utils.
Then see the Linux IrDA
Project page, READMEs from
irda-utils and the Linux IR HOWTO to
help configure everything.
You will want to use the nsc_ircc module, with the
option dongle_id=0x09. Also make sure that you
modularize the serial driver, and load it only after
you load IrDA. So far, I have my Palm Vx
syncing with the Thinkpad, and object beaming works to the Palm. I
haven't tried other PalmPilot tricks or any high-speed applications
yet.
For a long time, the only support for this chipset was through ALSA, but there were still problems with that driver, such as not supporting PCI power saving.
But ALSA, isn't needed anymore. Recently, Alan Cox and others
have ported this driver over to the base 2.2 kernel, and added PCI
power saving support, so that you don't have to turn it off anymore
to make sound work. I'd recommend getting at least kernel
2.2.18pre2 to have the most stable support. See the sound section
of my kernel configuration for the
appropriate options to enable when recompiling your kernel. Under
Red Hat, add "alias sound cs46xx" to your conf.modules to get the module
loaded on boot.
Last I checked, this module didn't support suspend and resume, so
configure apmd to unload and reload the sound modules. On Red Hat,
look for the appropriate entries in
/etc/sysconfig/apmd.
