8.3. proc インタフェース

現在 SCSI サブシステムに接続している(認識されている) SCSI デバイスを 表示するには、cat /proc/scsi/scsi としてください。

出力は下記のようになります。

    Attached devices:
    Host: scsi0 Channel: 00 Id: 02 Lun: 00
      Vendor: PIONEER  Model: DVD-ROM DVD-303  Rev: 1.10
      Type:   CD-ROM              ANSI SCSI revision: 02
    Host: scsi1 Channel: 00 Id: 00 Lun: 00
      Vendor: IBM      Model: DNES-309170W     Rev: SA30
      Type:   Direct-Access       ANSI SCSI revision: 03

「Attached devices:」行に続き、認識されているデバイスそれぞれについて、3 行 ずつが表示されます。これらのうちの最初の行は、Section 3.1で 論じた SCSI アドレスの情報です。 あとの 2 行は、デバイスの接続時に実行された INQUIRY コマンドから得たデータ です。これらのデバイスの順序と sg ドライバでの順序との関係については、 Section 9.4を見てください(たいていの場合は同じ)。

既存のデバイスは、 echo "scsi remove-single-device <h> <b> <t> <l>" > /proc/scsi/scsi を使って削除できます。引数は、ホストとバス(チャネル)、ターゲット(SCSI ID)、 LUN です。このコマンドが成功したかどうかは、そのコマンドの後に cat /proc/scsi/scsi を実行すればわかります。デバイス が busy だと(例えばデバイスがファイルシステムにマウントされていれば)削除は 失敗するでしょう。

新規のデバイスは、 echo "scsi add-single-device <h> <b> <t> <l>" > /proc/scsi/scsi を使って追加できます。引数は、ホストとバス(チャネル)、ターゲット(SCSI ID)、 LUN です。このコマンドが成功したかどうかは、そのコマンドの後に cat /proc/scsi/scsi を実行すればわかります。 [1]

SCSI サブシステムは、SCSI デバイスのホットプラグをサポートしていません (SCSI パラレルバスに関連した電気的な問題もある)。 add+remove-single-device して、接続し直そうとする場合は、その SCSI バス上の 他のデバイスも間違いなく停止させてください。

内部 SCSI コマンドをまとめてリスト出力するには、 echo "scsi dump <n>" > /proc/scsi/scsi を使ってください。<n> の数値は何でもかまいません。数値に興味を持つのは、 恐らく SCSI サブシステム内部のバグを追跡する方だけでしょう。

ロギング情報をコンソールやログに出したり止めたりするには、 echo "scsi log <token> <n>" > /proc/scsi/scsi を使用してください。 <token> には、「all、none、error、timeout、scan、mlqueue、mlcomplete、 llqueue、llcomplete、hlqueue、hlcomplete、ioctl」のどれか 1 つを指定します。 <n> は、0 から 7 の数字です。「all」と「none」は、<n> 引数 をとりません。接頭辞の意味は下記の通りです。

  	
    hl    高レベルのドライバ(例外:sg は「timeout」を使う]
    ml    中間レベル 
    ll    低レベルのドライバ
          (アダプタドライバには独自のフラグがあることがよくある)
「0」という値はロギングを無効にし、「7」は出力をできるだけ詳細にします。 ロギング情報は、カーネル構築の際に CONFIG_SCSI_LOGGING を選択した場合のみ 出力されます。

Warning

警告:「scsi log all」(および同様の他の指定)とすると、ログファイル (たいてい /var/log/messages)が SCSI ディスクにある 場合、ログの無限ループを引き起こすかもしれません。カーネルのロギングデーモン を無効にするか、出力を SCSI デバイスではないデバイスへ向けてください。

Notes

[1]

「add-single-device」と「remove-single-device」でのパーズは融通が利き ません。 よって余分な空白(やタブ)を入れず、例で挙げた書き方そのままにするように してください。