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 日

dgilbert@interlog.com