||Saturday, February 7th, 2004
That was one arduous linux install process. If I had known that Fedora didn't include Highpoint RAID support, I would have picked another distro. The final method went something like this:
- Boot up the install CD on L1, the target system with HPT374 RAID and a floppy drive. To prevent Fedora from wrongly detecting the individual drives in the array, use the kernel flags
- On L1, switch to a vt with a shell, and determine the kernel version:
- Find L2, a working linux system with rpm and a network connection.
- Fetch and install the Fedora kernel source rpm for the right kernel version on L2.
- Fetch and untar the Highpoint driver source on L2
- Compile the Highpoint drivers on L2, with the KERNELDIR set to the freshly installed kernel sources.
- Find W1, a computer with a network connection, floppy drive, and hex editor.
- Copy the finished driver,
hpt374.o over the network from L2 to W1. You are now finished with L2.
- The bootup SCSI module has different symbol-garbage than the stock kernel, so we need to hack our HPT module to match it. Extract the boot SCSI driver on L1, and copy to a floppy disk:
gzip -cd modules.gz|cpio -i --make-directories '*scsi*'
mount /dev/fd0 /mnt/floppy
cp scsi_mod.o /mnt/floppy
- Unmount the floppy from L1 (
umount /mnt/floppy) and insert it into W1.
- On W1, make a copy of
- On W1, open
scsi_mod.o in a hexeditor, and find scsi_register and scsi_unregister, and note the garbage after their symbols. Find those symbols in
hpt374-boot.o and edit them to match.
- Copy the new hpt drivers to the floppy on W1, and insert it into L1. You are now finished with W1.
- Mount the floppy on L1 (
mount /mnt/floppy) and insert the bootdisk module (
- If all went well, you now have RAID support in the currently running kernel. Run the rest of the install like normal, up to the final reboot.
- Switch back to your shell. Make a device node for your new linux partition (e.g. for /dev/sda6,
mknod /dev/sda6 b 8 6
- Mount your recently completed linux install:
mkdir /mnt/fedora; mount /dev/sda6 /mnt/fedora
- Copy the main HPT driver to the new install:
cp /mnt/floppy/hpt374.o /mnt/fedora/tmp
- Chroot the new install:
chroot /mnt/fedora /bin/bash; source /etc/profile
- Mount the current ramdisk:
cp /boot/initrd<whatever>.img image.gz
gzip -d image.gz
mount -o loop image /initrd
- Copy the HPT module and the SCSI module to the initrd lib directory:
cp /tmp/hpt374.o /lib/modules/<whatever>/scsi_mod.o /initrd/lib
/initrd/linuxrc and add 2 lines to the top:
insmod /lib/scsi_mod.o and
- Update the initrd image:
cp image.gz /boot/initrd<whatever>.img
- Okay, you're good to go. Well, maybe. I did write this all from memory, and there's probably mistakes. But you get the idea, yeah?
I actually used my cellphone's web browser to look up some of the info to get this thing working. Not easy, but more convenient than rebooting!
I have to say that when it comes to installing Linux on a standard, run-of-the-mill desktop, Fedora worked extremely well. It didn't have any issues detecting my video card/monitor/sound card/mouse like I've had with other distributions. So far, I'm really happy with it. That said, I do realize that different Linux distributions are good for different things. Maybe your situation was not the Fedora-intended situation. :P
That's just the thing! The actual Fedora install, sans-RAID driver problem, was only "step 15" on that whole list. That part was easy, and once I got it booting, it was great. This is more of a problem of Fedora not being quite finished. No driver for HPT RAID (which is actually pretty common on "enthusiast" motherboards), broken support for VMware networking, ...you have to *restart* X to change the resolution, etc. I'm still going to reccomend fedora, but hopefully I won't have to do another install until they've done a new version.