Bug 57351

Summary: can't load ide-scsi on machine with both ide cdrom and scsi cdrom
Product: [Retired] Red Hat Linux Reporter: Need Real Name <rngreen>
Component: initscriptsAssignee: Bill Nottingham <notting>
Status: CLOSED NOTABUG QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.2CC: krahn, rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-01-28 17:45:03 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 Need Real Name 2001-12-10 18:30:40 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.78 [en] (Win95; U)

Description of problem:


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


How reproducible:
Always

Steps to Reproduce:
1.put machine together 
2.turn it on
3.
	

Actual Results:  loading of ide-cdrom with kernel prevents loading of ide-scsi driver as script is wrong

Additional info:

line in /etc/rc.d/rc.sysinit currently reads
# If they asked for ide-scsi, load it
if grep -q "ide-scsi" /proc/cmdline ; then
        modprobe ide-cd >/dev/null 2>&1
        modprobe ide-scsi >/dev/null 2>&1
fi
it should read
 # If they asked for ide-scsi, load it
if grep -q "ide-scsi" /proc/cmdline ; then
        modprobe -r  ide-cd >/dev/null 2>&1
        modprobe ide-scsi >/dev/null 2>&1
fi

Comment 1 Joe Krahn 2002-01-02 15:59:53 UTC
Norm Green wrote:
> It appears that the kernel (2.4.7-10) has the ide-cd mod loaded for hdc
> by the time the /etc/rc.sysinit script is run.

This has always been the case with Linux; ide-cd automatically
gets precedence over ide-scsi while linux is loading, before
any init scripts get a chance. The proper way around it is to
identify drives for ide-scsi with kernel arguments. In LILO:
	append="hdb=ide-scsi"
Look for the above string in the CD-Writing HOWTO.

Of course, with modules, you can just unload ide-cd and let
ide-scsi take over. But, that won't let somebody leave one
of two IDE drives as ide-cd, which normally doesn't matter.

An even better way with modules is to add
this to your /etc/modules.conf:
  options ide-cd ignore=hdb

But then the modules should get automatically loaded, and that
rc.sysinit stuff RedHat did isn't needed. SO, I'm not sure what
RedHat is doing there. Maybe they really do want to force all to
ide-scsi, as your version does.

Joe Krahn

Comment 2 Need Real Name 2002-01-26 16:21:14 UTC
The whole point is that the rc. sysinit is wrong, if you look at what it tries
to do you will see that it looks for the string idc-scsi in the kernel arguments
and the tries to load ide-cd with modprobe, it fails because it is all ready
loaded, then it tries to load ide-scsi this also fails because the device is
already using ide-cd.  The first modeprobe should be modprobe -r to unload the
module so the second statement can load ide-scsi for the device.

Comment 3 Joe Krahn 2002-01-28 17:44:58 UTC
I think that correct kernel arguments and/or modules.conf entries
will direct the right driver to the right IDE CDROM. Maybe there's
a case where this isn't true. Whatever the solution is, be sure to
allow for one system with two IDE CDROMs to support one via
ide-scsi and one via ide-cd. (Right now, I need this for a system
that has one CD-RW, but can lock up if both use ide-scsi and are
under a load. There may also be non-bug reasons for having ide-cd
on only one drive.)

Also beware that rmmod-ing a cdrom's driver and then modprobing it
back has the effect of incrementing the drive number for devfs
users, and is therefore best avoided.


Comment 4 Bill Nottingham 2002-04-10 06:11:15 UTC
I think the current situation is right... the installer adds
'hd<something>=ide-scsi' to the kernel commandline arguments if a CD-R/CD-RW/etc
is detected. This causes that device to be ignored by ide-cd, and then ide-scsi
can take it.