Red Hat AS 4 questions

Rick Stevens rstevens at vitalstream.com
Thu Aug 11 22:29:55 UTC 2005


Allen, Jack wrote:

 > Rick Stevens wrote:
<serious snippage of historical stuff...>
>> > Thanks for the information Rick. I will have to read up on udev. I just
>>> rebooted the system before I read this and noticed the first thing that
>>> gets started is udev. I had found the boot.log file and looked through it. I
>>> did not see anything about the 2 SCSI controllers the tape drives are
>>> connected to. There is a tape drive on each controller, one is a DLT1 and the other
>>> is a 4mm. As I said they show up in the preboot messages, but it looks like
>>> the kernel does not see them. The controllers are IBM Ultra320 SCSI Controller
>>> 2 by Adaptec. Any Ideas?
>>
>> Ah.  Sounds like the drivers for the controllers weren't loaded.  Try
>> doing an "lsmod" and see if any "aic7*" drivers were loaded (there
>> are two primary Adaptec drivers, "aic7xxx" and "aic79xx").  If not,
>> try "modprobe aic7xxx" and see if it loads.  If it doesn't, try
>> "modprobe aic79xx".  One or the other should load.  When they do, check
>> the "dmesg" command's output and see if the drives show up.  If they do,
>> then add lines to /etc/modprobe.conf:
>> 
>> 	alias scsi_hostadapterX aic7xxx
>> 
>> Replace "X" with the next sequential number from the other
>> "alias scsi_hostadapter" lines in the file, replace "aic7xxx" with
>> "aic79xx" if you're using the aic79xx driver, and repeat for each
>> Adaptec you have.  For example, if you have two RAID controllers in your
>> machine and two Adaptecs which use aic79xx, you'll have the following
>> lines in /etc/modprobe.conf:
>> 
>> 	alias scsi_hostadapter0 raid-controller-driver-name
>> 	alias scsi_hostadapter1 raid-controller-driver-name
>> 	...
>> 	alias scsi_hostadapter2 aic79xx
>> 	alias scsi_hostadapter3 aic79xx
>> 
>> When you reboot, the drivers _should_ load and "lsmod" should show them.
>> If they don't load (because you don't immediately start whacking the
>> tape drives at boot), you may also need to add "modprobe aic79xx" or
>> "modprobe aic7xxx" to your /etc/rc.d/rc.local file, just to make sure
>> the drivers get loaded.
> 
> I had not had a chance today to answer some of my own questions again.
> 
> Last night using the strings and grep command I looked at all the loadable
> modules for 29320 and found it in the aic79xx file. So I did modprobe
> aic79xx and it took several seconds to run. At first I thought it had gotten
> stuck. When it finished I did lsmod and scsi_mod had aic79xx and the use
> count increased by 1. So I did "ls -l /dev/st*", and there were the 2 tape
> drive nodes, actually several for each tape drive. Then I was able to do "mt
> -f /dev/st0 status" and it showed online.
> 
> My next question for today was going to be what do I need to put in the
> module.conf file to get the driver to load at boot time? But now I do not
> have to ask it, because you have already provided the answer. I has some
> what figured that would be what was needed.
> 
> I do have another question. I know I need to add stinit to rc.local to set
> some parameters and I know I could do some testing by rebooting the system.
> The question is, does the loading of aic79xx and it sees tape drives, will
> it load the st driver? Or when the tape drive is first accessed will the st
> driver be loaded? Or do I need to add another line in module.conf?

st should load on demand (e.g. the first time you touch the drives), so
no additional line is needed in rc.local.

If you don't want to do the rc.local "modprobe" operation, another way
to do it is to force the aic79xx driver into your boot ramdisk image.
That can be done in two ways: add "alias scsi_hostadapterN aic79xx"
lines to /etc/modprobe.conf and rebuild the initrd image or to add
"--with=aic79xx" or "--preload=aic79xx" to the mkinitrd command line
when you do rebuild the initrd image.

The ramdisk is only there to make sure any modules that need to be
loaded to get at your "/" partition are available.  Any "alias 
scsi_hostadapter" lines in /etc/modprobe.conf are assumed to indicate
that "/" may be on a drive that's controlled by that driver, so mkinitrd
puts those drivers in the ramdisk image.  The "--with=aic79xx" does
the same thing, but forces in modules that you want in the ramdisk image
that AREN'T in /etc/modprobe.conf and places them AFTER any modules
that DID have "alias" lines.  "--preload" is identical to "--with", but
the named modules are put into the ramdisk image BEFORE any modules
with "alias", e.g.

     Ramdisk image using "--preload=aic79xx":
	1. aic79xx
	2. raid-controller-driver

     Ramdisk image using "--with=aic79xx":
	1. raid-controller-driver
	2. aic79xx

If you put the "alias" lines in /etc/modprobe.conf, the commands to
rebuild the initrd image FOR THE RUNNING KERNEL are:

     # cd /boot
     # mkinitrd -v -f initrd-`uname -r`.img `uname -r`

(yes, those are backticks or "graves"...the character under the "~' on
your keyboard)  If you DON'T want to bugger /etc/modprobe.conf, the
commands are:

     # cd /boot
     # mkinitrd -v -f --with=aic79xx initrd-`uname -r`.img `uname -r`
OR
     # mkinitrd -v -f --preload=aic79xx initrd-`uname -r`.img `uname -r`

Be careful with these mkinitrd commands...if you screw them up you may
make your system unbootable.
----------------------------------------------------------------------
- Rick Stevens, Senior Systems Engineer     rstevens at vitalstream.com -
- VitalStream, Inc.                       http://www.vitalstream.com -
-                                                                    -
-             To iterate is human, to recurse, divine.               -
----------------------------------------------------------------------




More information about the Redhat-install-list mailing list