Red Hat Bugzilla – Bug 112795
Installation fails on "unsupported" hardware, e.g. advansys
Last modified: 2007-11-30 17:10:34 EST
Description of problem:
Fedora Core Linux 1 does include the "advansys" SCSI module, but it's
in with the "unsupported" modules rather than the main group of kernel
modules. As a result of this, it isn't included in the boot disk, nor
the block device drivers disk, nor even the boot.iso image, which
contains all of the "main" kernel modules.
As a result of this, it is not possible to use any of these install
media to install or upgrade a system where an important filesystem
resides on a disk connected to the Advansys SCSI card. The same
problem would apply to systems using other "unsupported" hardware.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Attempt install/upgrade on system with only SCSI disks attached to
"unsupported" SCSI controller.
On attempting installation, no disks can be found so it is not
possible to continue with installation.
There ahould be a way of accessing the modules that appear in the
"unsupported" area of the kernel RPM. Perhaps an additional
"unsupported" driver disk? I think the ISO boot image should include
the "unsupported" modules as well as the "supported" modules. After
all, the kernel, once installed, runs just fine.
I managed to work around this problem by creating my own ramdisk image
with the advansys module included and using that as the starting point
for the installation.
Here is the workaround approach I used to upgrade my Red Hat Linux 9
box with an Advansys SCSI card to Fedora Core Linux 1. The approach I
used uses the existing system to host the install media, but it could
be modified to use install media burned to a CD.
The first step is to find a good starting port for a custom install
image. I chose the boot.iso image, found in the "images" directory on
# mkdir /mnt/disc1
# mount -r -o loop yarrow-i386-disc1.iso /mnt/disc1
# cd /mnt/disc1/images
# mkdir /mnt/boot.iso
# mount -r -o loop boot.iso /mnt/boot.iso
# cd /mnt/boot.iso
# cd isolinux
boot.cat general.msg isolinux.bin memtest param.msg
boot.msg initrd.img isolinux.cfg options.msg rescue.msg
The files we need from here are vmlinuz (the kernel) and initrd.img
# mkdir /tmp/boot
# cp -p vmlinuz initrd.img /tmp/boot
# cd /tmp/boot
We're also going to need an advansys.o module that will load in this
kernel. The kernel in the installer is
kernel-2.4.22-1.2115.nptl.i586.rpm so we need to install this RPM and
grab the kernel module from it.
# rpm -ivh /mnt/disc1/Fedora/RPMS/kernel-2.4.22-1.2115.nptl.i586.rpm
# cp -p
You can leave this kernel installed if you wish (a Red Hat 9 box will
run quite happily with it), or you can remove it:
# rpm -e kernel-2.4.22-1.2115.nptl
If you remove it, you'll need to remake the links for System.map,
vmlinuz and possibly module-info in the /boot directory.
The ramdisk image is compressed, so it needs to be uncompressed before
we can mount it.
# mv initrd.img initrd.img.gz
# gunzip initrd.img
# mkdir /mnt/initrd
# mount -o loop initrd.img /mnt/initrd
The bit we need to fiddle with is the modules directory:
# cp -rp /mnt/initrd/modules .
# gunzip -c modules/modules.cgz | cpio -t > modules-list
# gunzip -c modules/modules.cgz | cpio -i -d
# mv advansys.o 2.4.22-1.2115.nptl/i586
# echo 2.4.22-1.2115.nptl/i586/advansys.o >> modules-list
# cpio -o --format=crc < modules-list | gzip -c -9 > modules.cgz
# mv modules.cgz modules
mv: overwrite `modules/modules.cgz'? y
# cd modules
At this point some file editing is necessary.
Add the following entry in the appropriate place in module-info
(between the acenic & aha152x entries):
"Advansys SCSI Cards"
modules.dep doesn't need editing as the following line is already there:
pcitable should have the following lines (from /usr/share/hwdata/pcitable)
0x10cd 0x1200 "advansys" "Advanced System Products|ASC1200
[(abp940) Fast SCSI-II]"
0x10cd 0x1300 "advansys" "Advanced System Products|ABP940-U /
0x10cd 0x2300 "advansys" "Advanced System Products|ABP940-UW"
0x10cd 0x2500 "advansys" "Advanced System Products|ABP940-U2W"
after this line:
0x10c3 0x1100 "e100" "Samsung Semiconductors,
Inc.|Smartether100 SC1100 LAN Adapter (i82557B)"
This should provide for autodetection of the Advansys SCSI card.
The modules directory can now be moved back into the ramdisk image.
# cd ..
# rm -rf /mnt/initrd/modules
# mv modules /mnt/initrd
# umount /mnt/initrd
# gzip -9 initrd.img
# mv initrd.img.gz initrd-advansys.img
We're now ready to set up the bootloader to offer the customised
install image as a boot option. I use grub, as follows:
# mv initrd-advansys.img /boot
# mv vmlinuz /boot/install-kernel
Add the following entries to /etc/grub.conf:
title Fedora Core 1 Install
kernel /boot/install-kernel ramdisk_size=8192
title Fedora Core 1 Install (text)
kernel /boot/install-kernel text ramdisk_size=8192
title Fedora Core 1 Install (expert)
kernel /boot/install-kernel expert ramdisk_size=8192
title Fedora Core 1 Install (lowres)
kernel /boot/install-kernel lowres ramdisk_size=8192
The root () lines should be copied from your existing grub.conf
entries so that the /boot partition is identified correctly.
Finally, unmount the images and clean up:
# umount /mnt/boot.iso
# umount /mnt/disc1
# cd ..
# rm -rf boot
You should now be able to boot your machine and choose one of
the installer options above, with auto-detection of the Advansys
This is intentional. 'unsupported' hardware means that it's not
supported for installatoin as well.