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