SCSI subsystem documentation¶
The Linux Documentation Project (LDP) maintains a document describingthe SCSI subsystem in the Linux kernel (lk) 2.4 series. See:http://www.tldp.org/HOWTO/SCSI-2.4-HOWTO . The LDP has singleand multiple page HTML renderings as well as postscript and pdf.It can also be found at:http://web.archive.org/web/%2E/http://www.torque.net/scsi/SCSI-2.4-HOWTO
Notes on using modules in the SCSI subsystem¶
The scsi support in the linux kernel can be modularized in a number ofdifferent ways depending upon the needs of the end user. To understandyour options, we should first define a few terms.
The scsi-core (also known as the “mid level”) contains the core of scsisupport. Without it you can do nothing with any of the other scsi drivers.The scsi core support can be a module (scsi_mod.o), or it can be built intothe kernel. If the core is a module, it must be the first scsi moduleloaded, and if you unload the modules, it will have to be the last oneunloaded. In practice the modprobe and rmmod commands (and “autoclean”)will enforce the correct ordering of loading and unloading modules inthe SCSI subsystem.
The individual upper and lower level drivers can be loaded in any orderonce the scsi core is present in the kernel (either compiled in or loadedas a module). The disk driver (sd_mod.o), cdrom driver (sr_mod.o),tape driver[1] (st.o) and scsi generics driver (sg.o) represent the upperlevel drivers to support the various assorted devices which can becontrolled. You can for example load the tape driver to use the tape drive,and then unload it once you have no further need for the driver (and releasethe associated memory).
The lower level drivers are the ones that support the individual cards thatare supported for the hardware platform that you are running under. Thoseindividual cards are often called Host Bus Adapters (HBAs). For example theaic7xxx.o driver is used to control all recent SCSI controller cards fromAdaptec. Almost all lower level drivers can be built either as modules orbuilt into the kernel.
| [1] | There is a variant of the st driver for controlling OnStream tapedevices. Its module name is osst.o . |