There are many SCSI related modules. The mid and upper level modules are listed below:
When upper level drivers are initialized and if there are no hosts active then the mid level will attempt to load a module called "scsi_hostadapter". An "alias" can then be used to associate "scsi_hostadapter" with the actual name of the lower level (adapter) driver. For example, a line like "alias scsi_hostadapter aic7xxx" in the /etc/modules.conf file would cause the aic7xxx module to be loaded (if there were no lower level drivers already active). [1]
There is a special relationship between the module parameter "scsi_hostadapter" and the initrd file system. For more information see man initrd and man mkinitrd. [2]
[1] | There is a sequencing issue here if the root file system is on the SCSI device controlled by the lower level (adapter) driver to be loaded since it contains the /etc/modules.conf file. Also there is the issue of how the boot loader obtains the initial kernel image from a SCSI device (often from the (master) boot record). The latter is usually taken care of by the system's or adapter card's BIOS. | ||
[2] | An example of using mkinitrd: assume the root partition is on a SCSI disk connected to a controller from Adaptec that requires the aic7xxx driver. After building a kernel with the aic7xxx driver specified as a module then load the image into the normal place (probably in the /boot directory). Next make sure a line like "alias scsi_hostadapter aic7xxx" is in the /etc/modules.conf file. Then from the /boot directory execute a line like mkinitrd /boot/initrd-2.4.5.img 2.4.5 (this assumes lk 2.4.5 is being build). This should result in the file initrd-2.4.5.img being created. The /etc/lilo.conf should then have a section added looking something like this:
|