]> Git Repo - linux.git/blame - Documentation/scsi/scsi-generic.rst
Merge tag 'bcachefs-2024-08-08' of git://evilpiepirate.org/bcachefs
[linux.git] / Documentation / scsi / scsi-generic.rst
CommitLineData
d4d79340
MCC
1.. SPDX-License-Identifier: GPL-2.0
2
8ebddfee
RD
3========================
4SCSI Generic (sg) driver
5========================
d4d79340 6
1da177e4 7 20020126
d4d79340 8
1da177e4
LT
9Introduction
10============
11The SCSI Generic driver (sg) is one of the four "high level" SCSI device
8ebddfee 12drivers along with sd, st and sr (disk, tape and CD-ROM respectively). Sg
1da177e4
LT
13is more generalized (but lower level) than its siblings and tends to be
14used on SCSI devices that don't fit into the already serviced categories.
15Thus sg is used for scanners, CD writers and reading audio CDs digitally
16amongst other things.
17
18Rather than document the driver's interface here, version information
19is provided plus pointers (i.e. URLs) where to find documentation
20and examples.
21
22
23Major versions of the sg driver
24===============================
8ebddfee 25There are three major versions of sg found in the Linux kernel (lk):
d4d79340 26 - sg version 1 (original) from 1992 to early 1999 (lk 2.2.5) .
1da177e4
LT
27 It is based in the sg_header interface structure.
28 - sg version 2 from lk 2.2.6 in the 2.2 series. It is based on
29 an extended version of the sg_header interface structure.
30 - sg version 3 found in the lk 2.4 series (and the lk 2.5 series).
31 It adds the sg_io_hdr interface structure.
32
33
34Sg driver documentation
35=======================
8ebddfee 36The most recent documentation of the sg driver is kept at
d4d79340 37
8ebddfee 38- https://sg.danny.cz/sg/
d4d79340 39
1da177e4 40This describes the sg version 3 driver found in the lk 2.4 series.
d4d79340 41
8ebddfee
RD
42Documentation (large version) for the version 2 sg driver found in the
43lk 2.2 series can be found at
d4d79340 44
8ebddfee 45- https://sg.danny.cz/sg/p/scsi-generic_long.txt.
1da177e4
LT
46
47The original documentation for the sg driver (prior to lk 2.2.6) can be
8ebddfee 48found in the LDP archives at
1da177e4 49
8ebddfee 50- https://tldp.org/HOWTO/archived/SCSI-Programming-HOWTO/index.html
1da177e4 51
d4d79340 52A more general description of the Linux SCSI subsystem of which sg is a
8ebddfee 53part can be found at https://www.tldp.org/HOWTO/SCSI-2.4-HOWTO .
1da177e4
LT
54
55
56Example code and utilities
57==========================
58There are two packages of sg utilities:
d4d79340
MCC
59
60 ========= ==========================================================
61 sg3_utils for the sg version 3 driver found in lk 2.4
62 sg_utils for the sg version 2 (and original) driver found in lk 2.2
1da177e4 63 and earlier
d4d79340
MCC
64 ========= ==========================================================
65
8ebddfee
RD
66Both packages will work in the lk 2.4 series. However, sg3_utils offers more
67capabilities. They can be found at: https://sg.danny.cz/sg/sg3_utils.html and
1f8ee46b 68freecode.com
1da177e4
LT
69
70Another approach is to look at the applications that use the sg driver.
71These include cdrecord, cdparanoia, SANE and cdrdao.
72
73
74Mapping of Linux kernel versions to sg driver versions
75======================================================
8ebddfee 76Here is a list of Linux kernels in the 2.4 series that had the new version
1da177e4 77of the sg driver:
1da177e4 78
d4d79340
MCC
79 - lk 2.4.0 : sg version 3.1.17
80 - lk 2.4.7 : sg version 3.1.19
81 - lk 2.4.10 : sg version 3.1.20 [#]_
82 - lk 2.4.17 : sg version 3.1.22
83
84.. [#] There were 3 changes to sg version 3.1.20 by third parties in the
8ebddfee 85 next six Linux kernel versions.
1da177e4 86
8ebddfee
RD
87For reference here is a list of Linux kernels in the 2.2 series that had
88the new version of the sg driver:
d4d79340
MCC
89
90 - lk 2.2.0 : original sg version [with no version number]
91 - lk 2.2.6 : sg version 2.1.31
92 - lk 2.2.8 : sg version 2.1.32
93 - lk 2.2.10 : sg version 2.1.34 [SG_GET_VERSION_NUM ioctl first appeared]
94 - lk 2.2.14 : sg version 2.1.36
95 - lk 2.2.16 : sg version 2.1.38
96 - lk 2.2.17 : sg version 2.1.39
97 - lk 2.2.20 : sg version 2.1.40
1da177e4 98
8ebddfee
RD
99The lk 2.5 development series currently contains sg version 3.5.23
100which is functionally equivalent to sg version 3.1.22 found in lk 2.4.17.
1da177e4
LT
101
102
103Douglas Gilbert
d4d79340 104
1da177e4 10526th January 2002
d4d79340 106
1da177e4 107[email protected]
This page took 1.613857 seconds and 4 git commands to generate.