Also, if you have the Cisco mini-PCI wireless card, you may need to run Windows to downgrade the firmware so it will work under Linux. If you're planning to blow away Windows entirely, deal with this first; see below.
It's probably possible to access his repository through
up2date, but I haven't tried that yet.
The hibernation file needs to live in the root directory of a FAT (16 or
32) partition. This can be a dedicated partition or you can share it with
a Windows installation. It has to be FAT, though, not NTFS. If it's a
dedicated partition, you can give it partition type 16 (Hidden FAT16) so
that it doesn't show up under Windows. I think it also needs to be a
primary partition, though some people have suggested otherwise.
The file needs to be large enough to hold your main RAM and video RAM,
plus about 1MB. The
IBM hibernation utility diskette does a precise calculation for the
necessary file size: for my 512MB system it said that the minimal size was
540765K, which seems to be 512MB main + 16MB video + 3K of mystery
memory--presumably various bits of system state. It then created a file
541616K long, a further 941K. This seems to be the result of tacking on
the 938K save2dsk.xga file that comes with the utility and then
rounding up to the nearest 4K cluster boundary.
The partition will need to be larger yet, to allow for filesystem
overhead and partition sizing constraints.
In addition to the boot floppy, IBM offers a
Windows program for creating the file. Or to create the file under
Linux, download tphdisk.c
from Andrew Tridgell, compile it and follow its instructions.
Note that you need to power-cycle the laptop for the BIOS to
notice the hibernation file; a soft reboot isn't good enough.
Out of the box, the Fedora X server freezes on resume from hibernate;
apparently this is because the video hardware isn't properly reinitialized.
To fix this, you can install
new DRI drivers from Charl P. Botha. I used the
CVS tarball from his website. I tried getting a newer snapshot from
the DRI project webpage, but it was incompatible with the Fedora X server.
To install it, first you need to make sure that your kernel source tree
is properly configured for building modules:
Then unpack the tarball and run its install.sh as root.
The swsusp project is
working on software hibernate support, as seen in Windows XP. I haven't
tried it out yet.
The Fedora kernel supports clock speed modulation for the P4-M, but for
some reason it isn't enabled by default. So you need to add
The tpctl package
provides detailed control of various Thinkpad features--power management,
display configuration, touchpad support, etc. Install it with
The apmiser daemon included with tpctl claims to be
smarter about CPU throttling than the kernel; to enable it, add
There's a new GUI for tpctl called
configure-thinkpad. There don't seem to be any rpms floating
around yet.
You might also try the cpufreq or cpudyn packages, both
available via apt-get. cpufreq will load the clockspeed module
when it starts up if you edit /etc/sysconfig/cpufreqd
appropriately.
The Fedora release notes brag about the new
/proc/sys/vm/laptop-mode which is supposed to bundle disk accesses
to save battery power, but I still see the disk activity light come on
about every 5 seconds (the ext3 commit interval?). This version of the patch includes a
script which modifies /proc/sys/vm/bdflush, which the Fedora
apmscript doesn't do.
apmd also seems to be failing to run apmscript change
power when I suspend on AC and resume on battery.
This page has an
interesting hack for automatically bringing up eth0 when a cable
is plugged in.
I like to use a graphic console on my laptop via the vesafb driver; to
get that I add On a previous laptop I used video=vesa:ywrap,pmipal for the
best performance, but that seems to have problems on the T30. I tried
ypan instead of ywrap, but scrolling backwards is
horribly slow. I'm not sure that you need to write video=vesa at
all if you don't want to specify more options.
Ben Pfaff says that
the radeonfb driver also works, but causes problems.
I haven't played with TV-out yet. The GATOS project apparently has
extra-special drivers for TV in/out support on ATI hardware.
Suspend/Hibernate
Suspend seems to work fine out of the box. Hibernation is a bit more
complicated. If you're running in APM mode (which you are, unless you
explicitly enabled ACPI), you can use the BIOS hibernation support.
Other Power Management
modprobe p4-clockmod
to your /etc/rc.local or /etc/rc.modules.
apt-get install kernel-module-thinkpad tpctl
You may also need to add these lines to your /etc/modules.conf:
keep
path[thinkpad]=/lib/modules/`uname -r`/thinkpad
alias char-major-10-170 thinkpad
Not all of the features work with newer thinkpads, but many do.
apmiser -d
to your /etc/rc.local.
Ethernet
02:08.0 Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 42)
Works fine. Fedora automatically uses the e100 driver; other people have also
reported success with the eepro100 driver.
Video
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]
XFree86 4.3 seems to support the M7 chipset quite well; even 3D programs
run properly out of the box. But see above about upgrading the DRI drivers
to fix hibernation.
vga=791 video=vesa
to the kernel line in
/boot/grub/grub.conf. That's for the 1024x768 display; if you
have the 1400x1050 display, you'd use vga=834 instead.
Special keyboard support
For ThinkPad button support and on-screen feedback for the volume/mute
keys, install the tpb
package with
apt-get install tpb xosdIt works fine out of the box, but man tpb has configuration information.
The next step is making the Back/Forward buttons by the arrow keys navigate forward and back in Mozilla. Rob Mayoff has some instructions. Unfortunately, tpb interferes with this, so you need to either stop tpb or patch it to stop interfering with these keys. There is a patch here, but you'll need to apply it yourself. There's a thread dealing with this stuff.
Linuxcare has some notes on getting support for all of the features of the Synaptics touchpad under X.
Fabrice Bellet has instructions for getting middle button support by reading mouse events through gpm.
Other hacks:
I'm not currently using any of these.
00:1f.6 Modem: Intel Corp. 82801CA/CAM AC'97 Modem Controller (rev 02)The modem in the Thinkpad seems to work with the Smartlink drivers. Install them using
apt-get install kernel-module-slmdm slmdm-utilsAnd add to /etc/modules.conf:
alias char-major-212 slmodem alias slmodem slamrmo options slmdm country=USADag's comments in the SRPM, and others I've heard elsewhere, suggest that versions of the driver after 2.7.10 don't work properly, which is why his rpms have not been updated to the latest version (2.7.14 at time of writing).
Fabrice Bellet mentions a new driver, named "slmodem" rather than "slmdm", available at the SmartLink FTP site.
I haven't actually tried to use the modem other than to verify that it
responds to AT commands, so YMMV.
Wireless
02:02.0 Network controller: AIRONET Wireless Communications Cisco Aironet Wireless 802.11b
If you have the Prism2-based IBM 802.11b wireless card in your laptop, you have
many driver options; see Karl
Auer or Ben
Pfaff for more information.
If you have the Intel PRO/Wireless 2100 card, you'll have a harder time
getting it to work, as Linux support is still under development. Andrew B has more
information.
I have the Cisco MPI350 card, so that's what I'll talk about.
Install Fabrice Bellet's driver and the Cisco utilities using
apt-get install kernel-module-airo_mpi aironet-utilsActually, you probably need to be more specific about which version of the module you want, but running the above command should tell you which versions are available. If you want, you can also install the Cisco driver (kernel-module-mpi350), but it doesn't support the normal Linux wireless interface.
You may need to add this to /etc/modules.conf, if kudzu doesn't do it for you on the next reboot:
alias eth1 airo_mpi
Once the airo_mpi driver is loaded, you should be able to run
cat /proc/driver/aironet/eth1/Statusto get the firmware version of your MPI350. The conventional wisdom is that version 5.00.03 is the best version for Linux support; if yours has a later version installed, you must downgrade it to 5.00.03 before it will work under Linux. If the driver fails to load, or fails to give you its status, you probably need to downgrade the firmware first.
If getting the status works, you might be able to downgrade the firmware from within Linux using the Cisco acu program--I haven't tried this, so proceed at your own risk. To give it a try, download the 5.00.03 firmware from the MPI350 firmware page, run acu as root, and use the Commands/Load new Firmware menu option to install the new firmware.
I wasn't so brave, so I used Windows to downgrade the firmware. To do this, download the 2.1 bundle for the appropriate version of Windows from the Windows Express Bundle page and follow the instructions to install the driver, ACU, and then the firmware. If you continue to run Windows, do not upgrade the Windows drivers for the MPI350, as they tend to silently update the firmware at the same time, and newer drivers don't work properly with the older firmware.
Unfortunately, the latest entry on Fabrice's web page suggests that he won't be maintaining this driver much longer.
I note that turning the radio off in ACU doesn't show up in iwlist eth1 txpower. It does seem to turn the radio off, though. Turning it off using iwconfig eth1 txpower off does show up in the ACU status. The driver also disables the radio if you run ifconfig eth1 down, so you don't really need to worry about manually disabling the radio on airplanes and to conserve battery.
TOSHIBA MK4019GAX 00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 02)Fedora automatically enables DMA and multiple-sector transfers for the hard disk, which provides a healthy hdparm -t benchmark of about 25MB/sec.
Manually enabling 32-bit transfers (hdparm -c1) doesn't seem to have any effect. Neither does unmaskirq (hdparm -u1); it might improve system responsiveness during heavy disk access, but I've seen comments about it interfering with suspend, so I think I'll just leave it off.
HL-DT-STCD-RW/DVD DRIVE GCC-4240NFedora automatically sets the drive up to use ide-scsi, and writing a cd with cdrecord works just fine.
Warm-swapping (i.e. swapping devices during suspend) seems to work fine, but you still want to deregister/register the IDE bus if either of the devices involved is IDE. Also, if you are using a CD writer, you need to unload/reload the ide-scsi module or it (the module) will become very unhappy.
Tim Stadelmann's hotswap program was written for a Dell C600, but seems to work fine on my Thinkpad for registering/unregistering ide1 before and after the suspend. I've put together some RPMs which can be found here, along with a hotswaprc which handles the module magic.
There's an out-of-date script to automate this process called ultrabayd that mostly looks like it should work, but it needs to learn about CD-RW devices.
00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97 Audio Controller (rev 02)Works fine out of the box. I haven't messed with alsa.
I noticed that all of my devices were sharing IRQ 11. This turned out to be because the BIOS was set to assign IRQ 11 to all PCI devices. I changed all of those settings to Auto, and they spread out more. No idea if this makes any difference at all.
PCMCIA seems to work fine. I haven't tried USB.
I find that the new VM randomization feature of the kernel interferes with debugging, so I turn it off by adding
echo 0 > /proc/sys/kernel/exec-shield-randomizeto /etc/rc.local.