9.3. テープドライバ(st)

テープドライバのインタフェースについては、 /usr/src/linux/drivers/scsi/README.st ファイルか、 st(4) の man ページ(man stと入力)にまとめられています。 README.st には、様々なドライバの様々なパラメタや オプション、ドライバが使っている基本的なしくみも記述してあります。

テープドライバは、通常 mt コマンド(man mt を参照)でアクセスします。mtx は、テープオート ローダーの制御に対応しているプログラムです ( mtx.sourceforge.netを参照)。

st ドライバは、周辺機器タイプが「シーケンシャルアクセス」(コード番号が 1)で ある SCSI デバイスを検出します(ドライバが「reject_list」にあるものは除く)。 (現状 reject_list にある項目は OnStream のテープドライブ[次のセクションで 説明]だけです)。

st ドライバは 32 台のテープドライブを認識できます。テープドライブ それぞれに 8 つのデバイスファイル名があります。4 つのモード(番号は 0 から 3 まで)それぞれに、リワインドあり、リワインドなしのバリエーションがあります。 テープデバイスのファイル名は、Section 3.2に例があるので見て ください。テープドライブは st ドライバのロード後にいくつでも追加できます (限度の 32 個まで)。

このドライバは、ide-scsi 擬似アダプタのドライバをともに用いれば、ATAPI テープドライブを制御できます。Section 9.2.4で論じたことは、 ATAPI テープデバイス(と ATAPI フロッピー)にも当てはまります。

9.3.1. st のブート時のパラメタ


st=xxx[,yyy] の xxx は下記の内の 1 つを取ります。
buffer_kbs:<n>
write_threshold_kbs:<n>
max_buffers:<n>
max_sg_segs:<n>


(以前のブート時のパラメタである st=aa[,bb[,cc[,dd]]] もサポートされていますが、
推奨されません)

デフォルトのドライバのバッファサイズ(buffer_kbs)は 32(つまり 32 KB)です。 デフォルトの非同期書き込み閾値は 30(つまり 30 KB)です。 デフォルトで初期化時に確保するバッファの数(max_buffers)は 4 です。 デフォルトで使用する scatter/gather セグメントの数(max_sg_segs)は 32 です。

【訳註:Scatter/Gather(スキャッタ・ギャザー) とは、DMA、バス・マスター等、 高速な転送を行う場合に、分散してしまっているメモリ上のデータをまとめて 連続転送する機能です】

9.3.2. st のモジュールのパラメタ


buffer_kbs=<n>
write_threshold_kbs=<n>
max_buffers=<n>
max_sg_segs=<n>

9.3.3. st の proc インタフェース

ありません。

9.3.4. OnStream デバイス用 osst ドライバ

OnStream が製造したテープドライブには、別のドライブがあります。 付加的な高レベルのドライバで、st ドライバと共存できます。このドライバ は「osst」です(モジュール名も同じ)。

OnStream の SC-x0 SCSI テープドライブは、標準の st ドライバでは動作 しません。そのかわりに、特別な osst ドライバと /dev/osst<x> キャラクタデバイスノード(メジャー 番号 206)が必要になります。 (<x> は Section 3.2 にあるような、st デバイスと 同様な命名規則に従います)。 usb-storage と ide-scsi を用いれば、USB-x0 と DI-x0 ドライブが動作するかも しれません。OnStream には、第二世代のテープドライブ(ADR-x0)が存在することに 注意してください。これは、テープ(QIC-157)用の標準 SCSI-2 コマンドをサポート しており、st の標準ドライバで動作します。さらに詳しい情報は、カーネルソース のファイルである /usr/src/linux/drivers/scsi/README.osst を見てください。 OnStream ドライバ情報をさらに知りたければ、 linux1.onstream.nl/test/にあります。