1 |
1275 |
phoenix |
SCSI subsystem documentation
|
2 |
|
|
============================
|
3 |
|
|
The Linux Documentation Project (LDP) maintains a document describing
|
4 |
|
|
the SCSI subsystem in the Linux kernel (lk) 2.4 series. See:
|
5 |
|
|
http://www.tldp.org/HOWTO/SCSI-2.4-HOWTO . The LDP has single
|
6 |
|
|
and multiple page HTML renderings as well as postscript and pdf.
|
7 |
|
|
It can also be found at http://www.torque.net/scsi/SCSI-2.4-HOWTO .
|
8 |
|
|
|
9 |
|
|
|
10 |
|
|
Notes on using modules in the SCSI subsystem
|
11 |
|
|
============================================
|
12 |
|
|
The scsi support in the linux kernel can be modularized in a number of
|
13 |
|
|
different ways depending upon the needs of the end user. To understand
|
14 |
|
|
your options, we should first define a few terms.
|
15 |
|
|
|
16 |
|
|
The scsi-core (also known as the "mid level") contains the core of scsi
|
17 |
|
|
support. Without it you can do nothing with any of the other scsi drivers.
|
18 |
|
|
The scsi core support can be a module (scsi_mod.o), or it can be built into
|
19 |
|
|
the kernel. If the core is a module, it must be the first scsi module
|
20 |
|
|
loaded, and if you unload the modules, it will have to be the last one
|
21 |
|
|
unloaded. In practice the modprobe and rmmod commands (and "autoclean")
|
22 |
|
|
will enforce the correct ordering of loading and unloading modules in
|
23 |
|
|
the SCSI subsystem.
|
24 |
|
|
|
25 |
|
|
The individual upper and lower level drivers can be loaded in any order
|
26 |
|
|
once the scsi core is present in the kernel (either compiled in or loaded
|
27 |
|
|
as a module). The disk driver (sd_mod.o), cdrom driver (sr_mod.o),
|
28 |
|
|
tape driver ** (st.o) and scsi generics driver (sg.o) represent the upper
|
29 |
|
|
level drivers to support the various assorted devices which can be
|
30 |
|
|
controlled. You can for example load the tape driver to use the tape drive,
|
31 |
|
|
and then unload it once you have no further need for the driver (and release
|
32 |
|
|
the associated memory).
|
33 |
|
|
|
34 |
|
|
The lower level drivers are the ones that support the individual cards that
|
35 |
|
|
are supported for the hardware platform that you are running under. Those
|
36 |
|
|
individual cards are often called Host Bus Adapters (HBAs). For example the
|
37 |
|
|
aic7xxx.o driver is used to control all recent SCSI controller cards from
|
38 |
|
|
Adaptec. Almost all lower level drivers can be built either as modules or
|
39 |
|
|
built into the kernel.
|
40 |
|
|
|
41 |
|
|
|
42 |
|
|
** There is a variant of the st driver for controlling OnStream tape
|
43 |
|
|
devices. Its module name is osst.o .
|
44 |
|
|
|