FreeBSD(98)では 2.0.5以降、複数の同種 SCSIデバイスに対して自動的に ユニット番号を割り付ける機能があります。よって一般的には 以下のように指定しておけば起動時に SCSIバスに接続された ハードディスク、光磁気ディスク、テープ、CD-ROM のそれぞれの数が いくつであっても自動的に番号が振られて使用可能な状態になります。 インテリジェントな SCSI I/F が主流となっている AT互換機では、 SCSI機器の構成を変更したりした場合にも自動的に対応できる この指定方式が推奨されています。 <hr>
controller scbus0 device sd0 device od0 device st0 device cd0<hr>
一方 従来との互換性のために以下のように割り付けを指定して 固定する事もできます。そして bsドライバでは、各 SCSI機器に対応した 転送レートを管理するなどの、インテリジェントな SCSI I/F ではカード上の CPU がやってくれることを FreeBSDカーネルが行わなければならないために、 以下のように個々のデバイスを指定して記述することを推奨します。 (指定しなくても動作に支障のない場合がほとんどですが SCSI機器の 性能を引き出すためには flags の指定が重要になるからです。) <hr>
controller scbus0 at bs0 bus0 device sd0 at scbus0 target 0 unit 0 flags 0x320c000b device sd1 at scbus0 target 2 unit 0 flags 0x320c000b device sd2 at scbus0 target 3 unit 0 flags 0x320c000b device od0 at scbus0 target 4 unit 0 flags 0x00000106 device st0 at scbus0 target 5 unit 0 flags 0x00000107 device cd0 at scbus0 target 6 unit 0 flags 0x00000106<hr>
`at scbus0'の部分は どのSCSIサブシステムにぶら下がるか (すなわち どの SCSIボードを使用するか) を指定します。
`target 0'の部分は SCSI IDを指定して下さい。
`unit 0'の部分は LUN(論理ユニット番号)を指定します。 たいていの場合は 0です。
`flags'の部分は それぞれの機器に対してどのようなアクセス方法を とるかを指定します。この値は使用するデバイスごとに最適値が 異なっています。
flagsでは 32bit を以下のように いくつかのフィールドに 区切って転送速度などのパラメータを指定します。
MSB LSB +---------------+---------------+-+---------+-+-+-----+-+-+-+-+-+ |3 3 2 2 2 2 2 2|2 2 2 2 1 1 1 1|1|1 1 1 1 1| | | | | | | | | |1 0 9 8 7 6 5 4|3 2 1 0 9 8 7 6|5|4 3 2 1 0|9|8|7 6 5|4|3|2|1|0| +---------------+---------------+-+---------+-+-+-----+-+-+-+-+-+ | s | F |n| r |n|n| r |q|l|w|d|s| | y | I |o| s |o|o| s |t|i|a|i|y| | n | F | | v | | | v |a|n|i|s|n| | c | O |S| d |p|s| d |g|k|t|c|c| | | |M| 2 |a|a| 1 | | | | | | | r | s |I| |r|t| | | | | | | | a | i |T| |i| | | | | | | | | t | z | | |t| | | | | | | | | e | e | | |y| | | | | | | | +---------------+---------------+-+---------+-+-+-----+-+-+-+-+-+ + sync 1で同期転送、0で非同期転送 + disc 1でdisconect/reselectをサポート、0で使用しない - wait 1で他のターゲットと競合するバス調停を禁止、0で許可 + link 1でコマンドリンクを使用、0なら使用しない qtag タグ付きキューのため予約 rsvd1 予約 - no sat 1でWD33C93のコンビネーションコマンドを使用しない、0なら使用 + no parity 1でパリティラインを監視しない、0なら監視する rsvd2 予約 - no SMIT 1でSMIT転送を禁止、0で許可(ボードがサポートしていれば) FIFO size 同期転送時のバッファサイズ sync rate 同期転送速度(転送速度を0.1MB単位で表す)
`+'をつけたオプションは 1にすると効率向上の効果があり、 `-'をつけたオプションは1にすると効率が下がります。
sync rateについては転送速度を0.1MB単位で表した数字になります。 例えば 5MB/secの場合は 5MB/sec = 50 * 0.1MB/secなので 0x32になります。
flagsを省略した場合はデフォルト値として 0xffff0301 が使用されます。 これは以下の指定になります。
ハードディスクについては 0x320c0003 をとりあえず用いると良いでしょう。 また CD-ROMや MOなどは 0x020c0304 あたりを指定して、 そこからチューニングしていくと良いと思います。