SCGCHECK(1) | Schily´s USER COMMANDS | SCGCHECK(1) |
名前
scgcheck - libscg の ABI のチェックと確認をおこなう書式
scgcheck [ options ]説明
scgcheck は libscg の Application Binary Interface のチェックと照合をおこなう。device はドライブの scsibus/ target/ lun を指す。 SunOS での通信は汎用 SCSI ドライバ scg を用いて行われる。他の OS では、このドライバをシミュレートするライブラリを使う。使用可能な書式は、 dev= scsibus, target, lun または dev= target, lun である。後者の場合、ドライブはマシンのデフォルトの SCSI バスに接続されていなければならない。 scsibus, target, lun は整数である。 OS や SCSI 転送の実装のなかには、これに加えてデバイスファイル名を指定しなければならないものもある。この場合の正しい書式は、 dev= devicename: scsibus, target, lun または dev= devicename: target, lun である。このようなシステムでは、指定されたデバイスノード名が 1 つの SCSI デバイスのみを参照している場合、 dev= devicename: scsibus, target, lun の代わりに、省略形の dev= devicename: @ または dev= devicename: @, lun を使うことができる。
リモートの SCSI デバイスにアクセスするためには、リモートのデバイスであることを示すインジケータを SCSI デバイス名の前に付ける必要がある。リモートデバイスのインジケータは REMOTE:user@host: または REMOTE:host: という形式である。
指定可能なリモート SCSI デバイス名は、 REMOTE:user@host: または REMOTE:user@host:1,0,0 という形式である。 1 つ目の形式では、リモートで SCSI デバイスのスキャンを行わせる。 2 つ目の形式では、 host の SCSI bus # 1,target 0 lun 0 に接続されている SCSI デバイスにアクセスする。
readcd を全ての UNIX 系プラットフォームで汎用的にするためには、 dev= devicename: scsibus, target, lun という書式が好ましい。これによりデバイスについての各 OS 特有の知識をユーザーに対して隠蔽することができる。またこれにより、実際のデバイスファイル名や scsibus, target, lun を指定する方法を、特定の OS 上でサポートする必要がなくなる。
scsibus 0 はマシンのデフォルトの SCSI バスである。マシンの SCSI 設定についてのより詳細な情報は、ブート時のメッセージや /var/adm/messages を参照すること。 scsibus, target, lun にどのような値を指定してよいか分らない場合は、 cdrecord の -scanbus オプションを使ってみること。
オプション
- -version
- バージョン情報を表示して、終了する。
- dev= target
-
SCSI バスのスキャンテストで使われる SCSI target のデフォルト値を設定する。上記の注意事項を参照すること。例えば、バスのスキャンのときに Solaris USCSI やリモートの SCSI を指定することができる。
- timeout= #
- SCSI コマンドのデフォルトのタイムアウトを # 秒にする。 SCSI コマンドのデフォルトのタイムアウトは、 SCSI コマンドを送る際の最短タイムアウトとして使われる。 SCSI コマンドがタイムアウトにより失敗した場合、タイムアウトの値を失敗したコマンドのデフォルトのタイムアウトより長くすることができる。タイムアウトを長くしてコマンドが正常に動作した場合は、成功したときのタイムアウト時間とそのコマンドを、このプログラムの著者に知らせて下さい。 timeout オプションが指定されない場合、デフォルトのタイムアウト 40 秒が使われる。
- debug= #, -d
- (debug=# を使って) その他のデバッグレベルを # に設定する。または (-d を使って) デバッグレベルを 1 つ上げる。 -dd を指定した場合、 debug= 2 と等しくなる。 libscg でドライバをオープンする際の問題や、セクタサイズとセクタタイプの問題を発見するのに役立つ。 -debug を使うと、処理が遅くなりバッファアンダーランの原因になるかもしれない。
- kdebug=#, kd=#
- scg ドライバに対して、SCSI コマンドを動作させているときのカーネルデバッグレベルを変更させる。
- -silent, -s
- SCSI コマンドが失敗したときの状況報告を表示させない。
- -v
- 一般的な表示の詳細度を 1 つ上げる。例えば、書き込み処理の進捗状況を表示するために使われる。
- -V
- SCSI コマンド転送に関する表示の詳細度を 1 つ上げる。 CD レコーダにおける書き込み処理での問題をデバックするのに役立つ。簡単なエラーメッセージしか表示されない場合は、このフラグを使って詳細な表示を行わせることができる。 -VV を指定すると、データバッファの内容も表示される。 -V や -VV を使うと、処理が遅くなる。
- f= file
-
check.log の代わり使うログファイルを指定する。
例
ファイル
関連項目
cdrecord(1), readcd(1), mkisofs(1), scg(7).注意
壊れた Linux SCSI generic driver で scgcheck を使う場合、 scgcheck は scg ドライバの機能をエミュレートを試みるという対処療法を使う。不幸なことに、 Linux の sg ドライバには以下のような酷いバグがある:- •
- SCSI コマンドが全く送られていないかを調べることができない。
- •
- SCSI status バイトを取得できない。このため、 scgcheck は失敗した SCSI コマンドをある状況下では報告できない。
- •
- 転送時の実際の DMA カウントを取得できない。 scgcheck は、DMA の残余カウントがあるかをユーザーに知らせることができない。
- •
- auto sense データのうち有効なバイト数を取得できない。 scgcheck は、認識したデータをデバイスが全く転送していないかをユーザーに知らせることができない。
- •
-
auto request sense では非常に少ないデータしか取得できない (CCS/SCSI-2/SCSI-3 では 18 以上でなければならない)。
返り値
SCSI コマンドの典型的なエラーメッセージは以下のようなものである:readcd: I/O error. test unit ready: scsi sendcmd: no error
CDB: 00 20 00 00 00 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00
Sense Key: 0x5 Illegal Request, Segment 0
Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 0.002s timeout 40s
2 行目には失敗したコマンドの SCSI コマンドのディスクリプターブロックが表示される。
3 行目には、コマンドの転送が成功した場合に、コマンドによって返される SCSI status コードについての情報が表示される。これは SCSI デバイスからのエラー情報である。
4 行目はコマンドの auto request sense 情報の 16 進ダンプである。
5 行目は (もし存在すれば) sense key のエラー文字列である。コマンドが copy の場合にのみ、セグメント番号が続く。エラーメッセージが現在のコマンドに直接関係していない場合、 deferred error という文字列が表示される。
6 行目は sense code のエラー文字列である。存在する場合には sense qualifier も表示される。デバイスのタイプが既知の場合、 sense data は scsierrs.c" にあるテーブルを用いてデコードされる。その文字列の後には field replaceable unit についてのエラー値が続く。
7 行目には、失敗したコマンドに関連したブロック番号とエラーフラグ文字列が表示される。ブロック番号は有効ではないかも知れない。
8 行目は、そのコマンドについて設定されたタイムアウトと、実際にコマンドが完了するまでにかかった時間が表示される。
バグ
謝辞
メーリングリスト
著者
Joerg Schilling
Seestr. 110
D-13353 Berlin
Germany
その他の情報は以下で入手できる。
http://www.fokus.gmd.de/usr/schilling/cdrecord.html
サポートに関する質問は、
cdrecord-support@berlios.de
または other-cdwrite@lists.debian.org
にメールを送ってください。
明らかなバグを見付けた場合は、
cdrecord-developers@berlios.de
または schilling@fokus.gmd.de
にメールを送ってください。
メーリングリストを購読するには、
http://lists.berlios.de/mailman/listinfo/cdrecord-developers
または http://lists.berlios.de/mailman/listinfo/cdrecord-support
を参照すること。
Version 1.10 | Joerg Schilling |