Bug 77244 - eratta kernel 2.4.18-17.8.0 for Red Hat 8.0 breaks USB hard disk on scsi system
Summary: eratta kernel 2.4.18-17.8.0 for Red Hat 8.0 breaks USB hard disk on scsi system
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: kernel
Version: 8.0
Hardware: i386
OS: Linux
Target Milestone: ---
Assignee: Pete Zaitcev
QA Contact: Brian Brock
Depends On:
TreeView+ depends on / blocked
Reported: 2002-11-04 06:12 UTC by greg hosler
Modified: 2007-04-18 16:48 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2003-01-27 21:02:07 UTC

Attachments (Terms of Use)

Description greg hosler 2002-11-04 06:12:32 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20021003

Description of problem:
boot device and all disks are scsi (aic7xxx). (modules.conf has

           alias scsi_hostadapter aic7xxx

I have a USB hard disk. On original Red Hat 8.0 kernel 2.4.18-14, the aic7xxx is
detected as SCSI0, and the usb hard disk is detected as SCSI1. Moreover, I can
boot with the USB hard disk connected and turned on, or turned off, with
complete success.

With eratta kernel 2.4.18-17.8.0, the USB hard disk is detected as
SCSI0, and the aic7xxx is detected as SCSI1 - this is not so terrible with all
partitions labeled, however, the unlabeled swap partition
will not be where it's supposed to because of the SCSI id renumbering.

moreover, if the hard disk is turned off, the boot process will hang
indefinately at:

      Initializing USB HID Interface

forcing a reset (hard reboot - 3 finger salute is ineffective at this point).

Note: under Red Hat 7.3, the equivalent eratta kernel does not have these
symptoms (i.e. the usb device remains as SCSI1)

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. obtain a USB hard disk, and a scsi based system.
2. install Red Hat 8.0
3. apply kernel eratta 2.4.18-17.8.0
4. plug in usb hard disk
5a) reboot with hard disk turned off.
    - observe that the usb hard disk is detected as SCSI0:0
      and that the scsi disk is detected as SCSI1:0
    - observe that the boot process hangs after displaying

        Initializing USB HID Interface
5b) reboot with hard disk turned on.
    - observe that the usb hard disk is detected as SCSI0:0
      and that the scsi disk is detected as SCSI1:0
    - observe that the boot process continues as per normal
      (but the swap partition will be flagged as "not found" due
      to the scsi renumbering)

        Initializing USB HID Interface

Actual Results:  scsi devices are renumbered
system hangs during reboot if hard disk is switched off

Expected Results:  usb hard disk should remain as scsi1
system should not hang during reboot

Additional info:

Comment 1 Ed Bailey 2002-11-05 17:23:39 UTC
This also affects people that have a USB CompactFlash reader, whether the reader
has a flash card in it at boot-time or not...

Comment 2 Guy Rouillier 2003-01-22 21:32:06 UTC
Just wanted to add me-too to this bug.  For some reason, 8.0 ships with no SMP 
kernel for Pentium, so I downloaded and installed the errata kernel 2.4.18-
19.8.0.i586, both smp and non-smp.  I have a dual Pentium 233MMX, with a USB 
Compact Flash/SmartMedia external dual-format card reader (SanDisk.)  The stock 
8.0 kernel puts things in the right order, but both errata kernels put the USB 
device first, then the SCSI hard disks.  Of course, all the mount partitions 
are now in the wrong place, so booting is a mess.

Comment 3 Pete Zaitcev 2003-01-23 00:13:46 UTC
Bizzare. I'll try to look when I can.

BTW, 7.x and 8.0 versions are built from the absolutely identical RPMs,
only the version string is changed. I do not see how they can behave

Another thing, aic7xxx must come from the initrd, so it's guaranteed
to get scsi0. Are you guys sure you're not rebuilding kernels from source?

Comment 4 greg hosler 2003-01-23 13:30:34 UTC
stock kernel (from red hat rpm).

yes it's strange, (but it is fully reproduceable :)

Comment 5 Pete Zaitcev 2003-01-23 17:15:26 UTC
Can someone do this (as root), and send me the terminal session log:

gzip -cd < /boot/initrd-2.4.18-17.8.0.img > /boot/initrd-2.4.18-17.8.0.bin
mkdir /mnt/initrd
mount -t ext2 -o loop /boot/initrd-2.4.18-17.8.0.bin /mnt/initrd
find /mnt/initrd -name 'usb-storage*'
umount /mnt/initrd

The suspicion here is that mkinitrd sneaks usb-storage into initrd
somehow. The kernels are truly identical across 7.x and 8.0, but
initrd is generated during the installation (rpm -i or up2date -u).
So, mkinitrd may see "scsi" devices and decide to grab all HBA drivers.
Or something... I need to look at the source for mkinitrd closer,
but first let's get the data.

Comment 6 Ed Bailey 2003-01-23 18:00:09 UTC
I'm running 2.4.18-19.8.0, but my initrd has usb-storage.o in it...

Comment 7 Pete Zaitcev 2003-01-23 18:37:21 UTC
Bill Nottingham says he made Phoebe mkinitrd not to include usb-storage.
Root on usb-storage is not going to work without special hackery anyway
(due to delays incured by khubd, root mount always fails).

The workaround is to unplug the USB device and do rmmod usb-storage,
then do "mkinitrd /boot/xxx.img 2.4.18-19.8.0" to re-generate the image.
After than, substitute xxx.img in grub.conf, test that it works ok,
and it it worked, "mv xxx.img initrd-2.4.18-19.8.0.img".

Mind if I close this as Fixed in Rawhide?

Comment 8 Ed Bailey 2003-01-23 20:24:19 UTC
I personally don't mind, but then, I'm not the original submitter... ;-)

Comment 9 greg hosler 2003-01-24 11:57:57 UTC
I tried Pete Zaitcev's suggestion (Additional Comment #5 From Pete Zaitcev).
Indeed there is a /mnt/floppy/lib/usb-storage.o (I mounted on /mnt/floppy),
which certainly explains the situation.

I probably had the sandisk reader plugged in (and the usb-storage modules
loaded) when I installed the eratta kernel.

Comment 10 Pete Zaitcev 2003-01-27 21:02:07 UTC
OK, closing as "fixed in rawhide", which actually means Phoebe2.
Not sure if Bill will backport it to RH8.0 though.

Note You need to log in before you can comment on or make changes to this bug.