Redhat 9 on an IBM Thinkpad G40.

This operation system installation didn't cost me a penny, so the least I thought I could offer in return was to document my experience in order to (hopefully) help others:

I found the following two articles really helpful:
http://www.hardeman.nu/~david/thinkpad/
http://www.userve.nl/laptop-g40.html

I did things in the following order which (possibly in a roundabout way) worked.

(NB I had already been running XP for a little while, but only a couple of hours, so was happy to reinstall it, blatting over any existing data)

1. Reformat the hard drive to FAT32

Press the "Access IBM" button on startup. Select the "Recover to factory contents" option. This will spend a couple of minutes reformating the NTFS partition to FAT32, and copying the XP install images from the (BIOS-)hidden section of the hard disk. It will then reboot (a number of times, if you let it) BUT...you need to interrupt this reboot, in order to run the RedHat installation. My experience was that the "recovery to factory contents" procedure disables the "Access IBM" button until the whole recovery process is finished. I solved this by holding down the OFF button immediately as the first reboot was commencing. When you power up, you should be able to use the "Access IBM" button again, and choose to boot from the RedHat CDROM.

2. Resize the FAT32 partition

I performed this step, because RedHat's Disk Druid wasn't able to resize the FAT32 partition during installation (part 3., below). It was greyed-out. I therefore did it manually, using parted, as follows:
Boot from the RedHat installation CD. When prompted to press ENTER to continue installation, instead run "linux rescue". This will install a minimum linux kernel, enabling you to partition the hard drive. Resize the large FAT32 partition, using "parted". This will be your windows XP partition, so make it as big as you think you'll need. I've read that you need up to 10GB for the "restore to factory defaults" procedure to work.

3. Install Redhat

Reboot (from the CD ROM, again), and install Redhat, partitioning the hard drive as you see fit. (Note, I've subsequently found that the 1024 cylinder limit for booting from the hard drive DOESN'T apply to this Thinkpad. My Thinkpad happily boots from my /boot partition at cylinder 2033).
NB CREATE A BOOT FLOPPY, just in case!!

4. Reinstall XP

Once Redhat is installed, you can then perform another "restore to factory defaults" procedure which will reinstall windows xp into the first (fat32) partition. It will ignore your linux partitions, but it will reinstall the XP bootloader. I got a couple of messages about dodgy partition tables, but I *think* it was because of step 2. I just clicked "ok" and the XP installation sorted them out.

5. Install bootloader

I didn't install a bootloader during the Redhat installation, choosing to create an install floppy instead.
The XP installation then wrote its own. However, the RH installation appeared to have at least written a valid /etc/grub.conf file as I then ran
/sbin/grub-install /dev/hda
and the GRUB bootloader was installed!

6. Network

I installed the driver from Broadcom, following this advice.
NB In order to compile the driver, you need to install the "Kernel Development" and "Development Tools" packages (from the installation CDROM).

Configuring Redhat to boot up without the trying to initialise eth0.

Annoyingly, the DHCP negotiation (during boot) takes ages to time out if the ethernet cable isn't plugged in.
Apparently there's a way of setting the timeout to be shorter but...this can lead to dhcp not functioning properly.
I chose, instead to add a new option to the GRUB configuration so that - if desired, Linux can be started up without networking support. (I would imagine the process would be similar for LILO, but I haven't used it and so don't know!)
I'm no expert, and I followed somebody else's guidelines, but here's what I came up with. And it works!
Your versions of the following two files need to be edited as follows:
NB As with all such tinkering, MAKE BACKUPS FIRST!!

/etc/grub.conf
default=0
timeout=10
splashimage=(hd0,1)/grub/splash.xpm.gz
title Red Hat Linux
        root (hd0,1)
        kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ hdc=ide-scsi
        initrd /initrd-2.4.20-8.img
# This is a copy of the above, but with NO_NETWORKING=yes appended to the kernel parameters.
title Red Hat Linux NO NETWORK
        root (hd0,1)
        kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ hdc=ide-scsi NO_NETWORKING=yes
        initrd /initrd-2.4.20-8.img
title Windows XP
        rootnoverify (hd0,0)
        chainloader +1

/etc/network-scripts/ifcfg-eth0
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
USERCTL=no
PEERDNS=yes
TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=dhcp
# The below used to simply read ONBOOT=yes
if [ "$NO_NETWORKING" = "yes" ]; then
  ONBOOT=no
else
  ONBOOT=yes
fi

7. Modem

Apparently, according to this article the internal AC'97 modem can be installed under Linux. Download the driver from here. This is version 2.7.10. Apparently later versions don't work. You have to change line 75 of amrmo_init.c from

#define PCI_DEVICE_ID_ICH3                      0x2486

to

#define PCI_DEVICE_ID_ICH3                      0x24C6

...and follow the instructions in README. I haven't tried running it yet, I'll post more details when I find my modem lead.
It works!
For some reason, using the graphical configuration tools, I couldn't get the modem to work. I had to perform the following steps:

On my Thinkpad, this seems to work.
It's very inelegant, and I could probably spend some time getting "ifup ppp0" to work, but...I only rarely use the dial-up so I probably won't bother.
NB I don't know much AT ALL about networking; this article seemed interesting, and helped me.
The wvdial man pages were quite helpful, too.

8. Automounting digital camera

I made the following changes in order that my (USB) digital camera be automatically mounted (with desired permissions) whenever it be plugged in:

/etc/auto.master
# Uncommented the following line:
/misc   /etc/auto.misc  --timeout=60

/etc/auto.misc
# Added the following line:
# uid=500 means that it's mounted being owned by user 500 (who
# happens to be me).
camera -fstype=auto,uid=500,mode=775 :/dev/sda1

You can then either reboot, or simply restart the autofs process:
/etc/init.d/autofs restart

Now this is done, I can now magically view the contents of my digital camera by simply executing "cd /misc/camera". No more hassles with "mount", etc.

9. Mounting the windows NTFS partition (read-only)

I went to http://linux-ntfs.sourceforge.net/rpm/redhat9.html
and downloaded kernel-ntfs-[KERNEL-VER].i686.rpm
NB [KERNEL-VER] should be replaced by your kernel version; in my case "2.4.20-30.9".
I then followed these instructions.

In order that the NTFS partition be mounted automatically, I added the following line:
/etc/fstab
/dev/hda1               /mnt/windows            ntfs    ro,umask=0222   0 0

(Thus far) it all seems to work.
Kieran.
Apr 2004