Installing aic7xxx support with 5.2 update

Installing aic7xxx support with 5.2 update


Author: James Stoker
Email: jstoker@apu.edu
Web Page: http://www.apu.edu/~jstoker

System Architecture: Intel
RedHat Release: RHL 5.2
FAQ Category: Installing Issues
Modification Date: Feb 12, 1999

Question:

A standard 5.2 workstation install was done on a machine with an aic7770
scsi controller for the hard disk.  This was accomplished using the
recently updated boot disk image from RedHat.  The installation worked,
but was not bootable from either floppy or hard disk.  Both LILO images
contained the older version of aic7xxx.o

Answer:

The new version of aic7xxx.o is buried in the initrd.img file on the new
boot disk.  By making a rescue disk from the CD (either on another linux
or DOS machine) and booting from the new boot disk image, the aic7xxx.o
file can be extracted and placed inside the initrd-2.0.36-0.7.img file on
the hard disk.  Use lilo to fix the boot sector and the hard disk is
bootable. (I didn't say it was easy!)  If you didn't follow that I will
sketch out the steps:

1. Get the new boot disk image from Red Hat.  Put it on a floppy using the
tools found on the 5.2 install CD.

2. While you are making floppies, make a rescue floppy from images/rescue.img
on the 5.2 install CD.

3. Install Red Hat 5.2 onto your scsi hard disk using the new boot disk.  
Do a workstation install.  Don't bother creating a rescue diskette at this
point -- it won't work anyway.

4. Boot from the new boot diskette again, only type "rescue" at the boot:
prompt this time.  Insert the rescue diskette when prompted for a root
floppy disk.  Eventually you will get a bash# prompt.  The easy part is
over.

5. Create a filesystem to hold some temp files:
    dd if=/dev/zero of=/dev/ram1 bs=1k count=3000
    mke2fs /dev/ram1 3000
    mount /dev/ram1 /tmp

6. Reinsert the new boot diskette and get aic7xxx.o out of the initrd.img file:
    mknod /dev/fd0 b 2 0
    mount /dev/fd0 /mnt/floppy
    gunzip </mnt/floppy/initrd.img >/tmp/initrd
    dd if=/tmp/initrd of=/dev/ram2 bs=1k count=2000
    mount /dev/ram2 /mnt/image
    /mnt/image/bin/insmod /mnt/image/modules/aic7xxx.o
    mkdir /mnt/root
    mount /dev/sda5 /mnt/root
    mount /dev/sda1 /mnt/root/boot
    cp /mnt/image/modules/aic7xxx.o /mnt/root/lib/modules/2.0.36-0.7/scsi
    umount /dev/ram2
    rm /tmp/initrd
    umount /dev/fd0

7.  Insert aic7xxx.o into the initrd on the hard disk and run lilo:
    gunzip </mnt/root/boot/initrd-2.0.36-0.7.img >/tmp/initrd
    dd if=/tmp/initrd of=/dev/ram2 bs=1k count=1500
    mount /dev/ram2 /mnt/image
    cp /mnt/root/lib/modules/2.0.36-0.7/scsi/aic7xxx.o /mnt/image/lib
    umount /dev/ram2
    rm /tmp/initrd
    dd if=/dev/ram2 of=/tmp/initrd bs=1k count=1500
    gzip -9 </tmp/initrd >/mnt/root/boot/initrd-2.0.36-0.7.img
    /mnt/root/sbin/lilo -r /mnt/root
    umount /dev/ram1
    umount /dev/sda1
    umount /dev/sda5
    exit

8.  The hard disk should now be bootable.  Use mkbootdisk to make a floppy
bootdisk once you get booted.  Then download and apply the kernel upgrade
to the system and make yet another boot floppy.

I am guessing that this sort of approach could be used with most 2.x
kernels but I just don't know...  The /dev/sda* numbers would probably
change for a server install or other custom install.  But probably you
could figure these out.



References:

Look in the doc directory of the Insall CD for info about rescue disks.

Look in the /usr/rsc/linux/Documentation directory for info about ramdisks.

Look at the Red Hat site to find the latest boot floppy images.