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,从 2.2 系列的 lk 2.2.6 开始。它基于 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 日