Bug 112795

Summary: Installation fails on "unsupported" hardware, e.g. advansys
Product: [Fedora] Fedora Reporter: Paul Howarth <paul>
Component: anacondaAssignee: Jeremy Katz <katzj>
Status: CLOSED WONTFIX QA Contact: Mike McLean <mikem>
Severity: low Docs Contact:
Priority: medium    
Version: 1CC: paul
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-01-03 20:48:45 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Paul Howarth 2004-01-01 12:10:13 UTC
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):


How reproducible:
Every time.

Steps to Reproduce:
1. Attempt install/upgrade on system with only SCSI disks attached to
"unsupported" SCSI controller.
  
Actual results:
On attempting installation, no disks can be found so it is not
possible to continue with installation.

Expected results:
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.

Additional info:
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.

Comment 1 Paul Howarth 2004-01-01 12:12:25 UTC
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
CD 1.
                                                                     
                                     
# 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
# ls
boot.cat  general.msg  isolinux.bin  memtest      param.msg  
snake.msg   TRANS.TBL
boot.msg  initrd.img   isolinux.cfg  options.msg  rescue.msg 
splash.lss  vmlinuz
                                                                     
                                     
The files we need from here are vmlinuz (the kernel) and initrd.img
(the ramdisk).
                                                                     
                                     
# 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
/lib/modules/2.4.22-1.2115.nptl/unsupported/drivers/scsi/advansys.o .
                                                                     
                                     
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
11795 blocks
# gunzip -c modules/modules.cgz | cpio -i -d
11795 blocks
# 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
11988 blocks
# 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
        "Advansys SCSI Cards"
                                                                     
                                     
modules.dep doesn't need editing as the following line is already there:
                                                                     
                                     
advansys: scsi_mod
                                                                     
                                     
pcitable should have the following lines (from /usr/share/hwdata/pcitable)
added:
                                                                     
                                     
0x10cd  0x1200  "advansys"      "Advanced System Products|ASC1200
[(abp940) Fast SCSI-II]"
0x10cd  0x1300  "advansys"      "Advanced System Products|ABP940-U /
ABP960-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
# sync
# 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
        root (hd0,0)
        kernel /boot/install-kernel ramdisk_size=8192
        initrd /boot/initrd-advansys.img
title Fedora Core 1 Install (text)
        root (hd0,0)
        kernel /boot/install-kernel text ramdisk_size=8192
        initrd /boot/initrd-advansys.img
title Fedora Core 1 Install (expert)
        root (hd0,0)
        kernel /boot/install-kernel expert ramdisk_size=8192
        initrd /boot/initrd-advansys.img
title Fedora Core 1 Install (lowres)
        root (hd0,0)
        kernel /boot/install-kernel lowres ramdisk_size=8192
        initrd /boot/initrd-advansys.img
                                                                     
                                     
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
SCSI card.
                                                                     
                                     


Comment 2 Jeremy Katz 2004-01-03 20:48:45 UTC
This is intentional.  'unsupported' hardware means that it's not
supported for installatoin as well.