SCSI 通用 (sg) 驱动程序¶
20020126
简介¶
SCSI 通用驱动程序 (sg) 是四个 “高级” SCSI 设备驱动程序之一,另外三个是 sd、st 和 sr(分别是磁盘、磁带和 CD-ROM)。 Sg 比它的同类更通用(但更底层),并且倾向于用于不适合现有服务类别的 SCSI 设备。 因此,sg 用于扫描仪、CD 刻录机以及以数字方式读取音频 CD 等。
此处不记录驱动程序的接口,而是提供版本信息以及指向 (即 URL) 在哪里可以找到文档和示例的指针。
sg 驱动程序的主要版本¶
- Linux 内核 (lk) 中有三个主要版本的 sg
sg 版本 1(原始版本),从 1992 年到 1999 年初 (lk 2.2.5)。 它基于 sg_header 接口结构。
sg 版本 2,从 lk 2.2.6 开始在 2.2 系列中。 它基于 sg_header 接口结构的扩展版本。
sg 版本 3,在 lk 2.4 系列(和 lk 2.5 系列)中找到。 它添加了 sg_io_hdr 接口结构。
Sg 驱动程序文档¶
sg 驱动程序的最新文档保存在
这描述了在 lk 2.4 系列中找到的 sg 版本 3 驱动程序。
在 lk 2.2 系列中找到的 sg 版本 2 驱动程序的文档(大型版本)可以在以下位置找到
sg 驱动程序的原始文档(在 lk 2.2.6 之前)可以在 LDP 存档中找到
关于 Linux SCSI 子系统(sg 是其中的一部分)的更一般的描述可以在 https://www.tldp.org/HOWTO/SCSI-2.4-HOWTO 中找到。
示例代码和实用程序¶
有两个 sg 实用程序包
sg3_utils
适用于在 lk 2.4 中找到的 sg 版本 3 驱动程序
sg_utils
适用于在 lk 2.2 和更早版本中找到的 sg 版本 2(和原始)驱动程序
这两个包都可以在 lk 2.4 系列中使用。 但是,sg3_utils 提供了更多的功能。 它们可以在以下位置找到:https://sg.danny.cz/sg/sg3_utils.html 和 freecode.com
另一种方法是查看使用 sg 驱动程序的应用程序。 这些包括 cdrecord、cdparanoia、SANE 和 cdrdao。
Linux 内核版本到 sg 驱动程序版本的映射¶
以下是 2.4 系列中包含新版本 sg 驱动程序的 Linux 内核列表
lk 2.4.0:sg 版本 3.1.17
lk 2.4.7:sg 版本 3.1.19
lk 2.4.10:sg 版本 3.1.20 [1]
lk 2.4.17:sg 版本 3.1.22
作为参考,以下是 2.2 系列中包含新版本 sg 驱动程序的 Linux 内核列表
lk 2.2.0:原始 sg 版本 [没有版本号]
lk 2.2.6:sg 版本 2.1.31
lk 2.2.8:sg 版本 2.1.32
lk 2.2.10:sg 版本 2.1.34 [SG_GET_VERSION_NUM ioctl 首次出现]
lk 2.2.14:sg 版本 2.1.36
lk 2.2.16:sg 版本 2.1.38
lk 2.2.17:sg 版本 2.1.39
lk 2.2.20:sg 版本 2.1.40
lk 2.5 开发系列目前包含 sg 版本 3.5.23,其功能与在 lk 2.4.17 中找到的 sg 版本 3.1.22 等效。
Douglas Gilbert
2002 年 1 月 26 日