aboutsummaryrefslogtreecommitdiff
path: root/ja/handbook/scsi.sgml
blob: ca2316f94a055e6aec6c0028418ed6c3dd12c3a6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
<!-- $Id: scsi.sgml,v 1.1.1.1.2.3 1997-03-15 23:33:07 jkh Exp $ -->
<!-- The FreeBSD Japanese Documentation Project -->
<!-- Original revision: 1.22 -->

<!--
      <title>SCSIの概要と FreeBSDでの使い方</title>


      <author>(c) 1995-1996, Wilko Bulte, <tt/wilko@yedi.iaf.nl/
      <date>Sat Jul  6 20:57:39 MET DST 1996</date>
     Copyright 1995-1996, Wilko C. Bulte, Arnhem, The Netherlands 


      <abstract>
	このドキュメントはSCSIの背景, FreeBSDでの使い方,
	よくある落し穴について書いてあります.
      </abstract>
      
-->

    <sect1><heading>SCSIとは?<label id="scsi"></heading>

<!--
      <p><em>Copyright &copy; 1995, &a.wilko;.<newline>July 6, 1996.</em>
-->
	<p><em>原作:&a.wilko;. <newline>July 6, 1996.</em>

	<p><em>訳: &a.yoshiaki;. <newline>
	 4 November 1996. </em>

	SCSI は	Small Computer Systems Interface (小規模コンピュータシ
	ステムインタフェース) の頭文字をとったものです.
	これはANSI標準でコンピュータ業界においては最もよく使われるI/O
        バスの一つになっています. SCSIはシュガート社 (ミニフロッピーディ
        スクを世界で最初に販売しました) の開発した SASI (Shugart
        Associates Standard Interface) バスが元になって規格化されました.

	その後の業界の努力により,異なるベンダのデバイスが混在して使え
	るようにより厳密な規格へと規格化されました.この結果が ANSIの
	SCSI-1規格として認可されました. SCSI-1の仕様は (1985年ごろ
	に規格化されました 訳注: SCSI-1の最終案決定は1985年, ANSIの標準
	規格としての認可は1986年です) すでに現在では時代遅れです.
	現在の標準は SCSI-2 (<ref id="scsi:further-reading" name="さらに詳
	しい情報">を参照してください) で, SCSI-3へ移行していくでしょう.

	物理的な相互接続の規格に加えて, SCSIではディスクドライブに不可欠な
	論理的な規格 (コマンドセット) も定義しています.
	この規格は標準コマンドセット (CCS : Common Command Set) と呼ばれ, 
	ANSIのSCSI-1とほぼ同時期に制定されました. SCSI-2には (改定された)
	CCSが規格の一部として組み込まれました. コマンドはデバイスの種
	類によって変わります. 例えばスキャナでは Writeコマンドは意味が
	ありません.

	SCSIバスは多くの種類があるパラレルバスです.  最も古く, 最も利用
        されているのが 8 bit 幅, シングルエンド (不平衡) 信号, 50線の信号線
        のバスです. (もしシングルエンドの意味が分からなくても気にするこ
        とはありません. このドキュメントの中にその説明があります.)  よ
        り新しい設計では 16 bit幅で平衡信号のバスを使います. この場合, 
        転送速度は 20Mbytes/second まで,ケーブルの長さは 25mまで可能です. 
        SCSI-2では追加のケーブルを使った最大32 bitのバス幅までが含まれ
        ます.
	早くも Ultra SCSI (Fast-20とも呼ばれます) と Ultra2 (Fast-40とも
	呼ばれます) が現れています. Fast-201秒間に 2000万回の転送 (8bit
	バスで20Mbyte/sec), Fast-401秒間に 4000万回の転送 (8bitバスで
	40Mbytes/sec) をおこないます.

	 訳注: ここでは電気的な用語としては平衡,不平衡を用いて,バ
	 スの名称としては基本的にはシングルエンド,ディファレンシャルとしま
         した.

	もちろん SCSIバスにはデータ信号だけではなく, 多くのコントロール信
	号線があります. 複数のデバイスがバスを効率よく共有するための複
	雑なプロトコルも規格の一部です. SCSI-2ではデータは常に独立した
	パリティ信号を使ってチェックされます. SCSI-2以前ではパリティは
	オプションでした.

	SCSI-3ではさらに高速なバスタイプが導入され, それと共にケーブル
	の線数を減らし, より最大バス長を伸ばしたシリアルSCSIが導入されま
	す. SSAや Fiberchannelといった名前を聞いたことはありませんか?
        シリアルバスは現在ではまだいずれの方式も普及していません (特に一般的な
        FreeBSD環境では) . このためシリアルバスタイプについてはここでは
        これ以上は触れません.

	今までの記述から想像されるように SCSIデバイスはインテリジェント
	です. これは SCSIの規格 (ところでこの文書は2インチ以上の厚さがあり
	ます) と切り離すことはできません. このため例えばハードディスク
	では特定のブロックをさすのに ヘッド/シリンダ/セクタ によって決
	めるのではなく単に必要なブロック番号を指定します.
	巧妙なキャッシュ動作や,不正ブロックは自動置き換えなど
        の機能はこの 「インテリジェントデバイス」のアプローチによって可
        能になっています.
	
 	SCSIバスでは任意のデバイスの組で通信することが可能です. 
 	(訳注: 任意のデバイスがイニシエータになれるという意味です.) 
 	デバイスの機能がそれを許すかどうかは また別の問題ですが, 規格では
 	禁止されていません. 信号の衝突を防ぐために2つ
	のデバイスはバスを使う前に調停 (arbitrate) をおこなう必要があります.

	SCSIの考え方として古い規格のデバイスと新しい規格のデバイスが同
	じバスの上で動くように規格を作っています. したがって, 古い SCSI-1の
	デバイスは SCSI-2バスの上でも普通は動きます. 普通は, とことわった理
	由は, ある古いデバイスが新しいバスでも問題ない程に (古い) 規格に
	対して十分沿った実装になっているかどうかは絶対的に保証はできな
	いということです. 最近のデバイスは普通はよりうまく動作します. そ
	の理由は規格化はより厳密になり,デバイスの製造においてより支持
	されるものになって来ているからです.

	一般的に言って, 単一のバス上で動かすデバイスは SCSI-2あるいはよ
	り新しいデバイスであればうまく動く可能性は高いと言えます.
	これは新しい 2GBのディスクを手に入れたとしたら古いデバイスを捨
	ててしまわなければならないという意味ではありません. 私のシステ
	ムでは SCSI-1以前のディスク, SCSI-2の QICテープユニット,SCSI-1
	のヘリカルスキャンテープユニット (訳注: VTRのような回転ヘッドを
	持ったテープ装置のことです. DATテープドライブもその一つです) , 
	2台の SCSI-1 ディスクが一緒に問題なく動いています. ただし効率
	の点から古いデバイスと新しい (= 速い) デバイスを分けたいかもしれ
	ません. (訳注: 古いデバイスの中には disconnectをサポートしな
	いために一連のコマンド実行中に SCSIバスを占有してしまうデバイス
	もあります.)

    <sect2><heading>SCSIの構成要素</heading>
      <p>
      <sect3><heading> <it>インテリジェント</it> インタフェース</heading>
        <p> (訳注:原文では  smart interface です)

	  先に述べたように, SCSIデバイスはインテリジェントです. 
          つまりハードウェア細部にからむ知識は SCSIデバイス自身に
          持たせてしまおうという考え方です. この考
          え方では SCSIデバイスはそれ自身のハードウェアの詳細を知って
          います. この場合, ホストシステムはハードディスクがいくつのヘッ
          ドを持ち, テープデバイスがいくつのトラックを持つかというよう
          なことを知る必要がありません.
	  もしあなたが知りたいのであれば, 規格で定義されているコマンド
          を使ってデバイスにハードウェアの詳細について質問することがで
          きます.

	  インテリジェントデバイスの利点は明らかです. ホストのデバイス
          ドライバはより一般的に書くことができ, 新しいデバイスを導入す
          る場合でも変更の必要がありません.

      <sect3><heading>接続でおこなうべきこと, してはならないこと</heading>
        <p> 
	  ケーブルの接続には鉄則があります. よい部品を使うことです. バ
          スの速度を上げることができ, 多くの災難を防ぐことができます.

	  ですから, 金メッキのコネクタ, シールドケーブル, 固定器具付き
	  の頑丈なコネクタカバーなどを選ぶのは正しいことです. 2つ目の
	  鉄則は, ケーブルを必要以上に長くしないことです. 
	  私は以前にあるマシンでトラブルの 原因を探すのに 
	  3日間悩んでいましたが, SCSIバスを 1m短
          くすることで問題を解決したことがあります. もちろん, 元のバス
	  の長さでもSCSIの仕様はきちんと満たしていたのですが.

      <sect2><heading>SCSI バスのタイプ</heading>
        <p>
	 電気的に互換性のない 2種類のバスのタイプがあります. シングルエ
	 ンドとディファレンシャルのバスです.  これは SCSI
         デバイスとコントローラは同一のバス上に混在することのできな
         い2つのグループにに大きく分けられるということを意味しています.
         しかし,特別なハードウェアを使えばシングルエンドバスをディファ
	 レンシャルバスに (その逆も) 変換することはできます. これらのバ
         スのタイプの違いは次のセクションで説明します.

	  SCSI関連のドキュメントでは異なるタイプのバスを一種の用語とし
	 て略語で表します. これを次の表に示します.

          <itemize>
            <item>FWD:	Fast Wide Differential (高速 ワイド 平衡)
            <item>FND:	Fast Narrow Differential (高速 ナロー 平衡)
            <item>SE:	Single Ended (不平衡)
            <item>FN:	Fast Narrow (高速 ナロー)
            <item>etc.
          </itemize>

	  少し想像力を働かせればどのような意味であるかはわかるでしょう.

          ワイド (Wide) はいくらか曖昧で, 16 または 32 bitのバスを示しま
          す. 私の知る限りでは, 32 bit のインタフェースは (まだ) 使わ
          れていませんので Wide は通常 16 bitを意味します.

	  高速 (Fast) はバスのタイミングがいくつかの点で異なり, ナロー 
	  (8 bit) バスでは 低速 (slow) SCSIバスの 5 Mbytes/sec に対して 10
          Mbytes/sec の能力があります. 前にも述べたように, 20Mbytes/sec や
 	  40Mbytes/sec のバス速度を持つものも現れてきています
 	  (Fast-20 == Ultra SCSI で Fast-40 == Ultra2 SCSI です). 

	  データ線の上位 (&gt; 8) はデータの転送とデバイスの指定だけに
	  利用されているという点を指摘しておきます. コマンドの送出とス
	  テータスメッセージ等は下位側の 8 bitのデータ線のみを使います. 
	  この規格によりナローデバイスはワイドバス上でも動作する事がで
	  きます. 利用できるバスの幅はデバイス間で調停 (ネゴシエーショ
	  ン) されます. デバイスの IDについてはワイドとナローが混在する
	  時には気をつけなければなりません.

        <sect3><heading>シングルエンドバス (不平衡バス) </heading>
          <p>
	    シングルエンド SCSIバスは 5Vと 0Vの電圧 (実際はTTLレベルです)
            を信号として使い,それらは共通のグラウンド (GND) レベルを基準
            にします. シングルエンド SCSI 8 bitバスは約25本のグラウンド線
            を持ち, すべてのデバイスを「直線状」に接続しま
            す.  基準ではシングルエンドバスは最大の長さは 6mです. これ
            は Fast-SCSIデバイスを使う場合は最大長さは 3mに短くなります.
            Fast-SCSIでは 5Mbytes/sec ではなく 10Mbytes/sec の転送速度
            が可能になります.

	    Fast-20 (Ultra SCSI) と Fast-40ではそれぞれ1秒間に2000万 (20M)
            ないしは 4000万 (40M) 回の転送ができます. したがって, Fast-20では
            8bitバスで 20Mbytes/sec, 16bitバスで 40Mbytes/secとなりま
            す. Fast-20ではバスの最大の長さは 1.5m, Fast-40では 0.75mに
            なります. Fast-20は限界を相当に広げるものなので SCSIバス
            に雑音が多い場合はその影響を即座に受けます.

	    バス上のいずれかのデバイスが「高速の」転送を利用する場合は
	    Fastバスの長さの制限を受けるということに注意してください.

	    最近の Fast-SCSI デバイスではバスの長さが実際の問題になり
            つつあるのが明らかになっています. これがデファレンシャル
            SCSIバスがSCSI-2の規格に導入された理由です.

	    コネクタのピン配置やコネクタの種類については SCSI-2の規格
            (<ref id="scsi:further-reading" name="さらに詳しい情報">を
            ) を参照してください.コネクタ等について詳細なリ
            ストがあります.

	    非標準のケーブルを使うデバイスに気をつけてください. 例えば 
            Apple (の Macintosh は) 25pin の D-type のコネクタ (シリア
            ルポートやパラレルプリンタに使われているコネクタ -- 訳注:
            日本では一般的に D-sub 25pinと言っています) を使っています.
            公式なSCSIバスでは50 pin が必要である事からこのコネクタで
            は 「独創的なピン配置」が必要な事が想像できるでしょう. ここ
            でおこなわれているようにグラウンド線の数を減らすことはよい考え
            ではありません. SCSIの規格通りの 50 pinの接続の方が望まし
            いです.  Fast-2040 でこのようなケーブルを使おうなんて
            考えてはいけません. 

        <sect3><heading>ディファレンシャル (平衡) バス</heading>
          <p>
	    ディファレンシャル SCSIバスは最大長が 25m です. シングルエ
            ンド Fast-SCSIバスの 3mとはまったく違います. 平衡信号の背景と
	    なっている考え方は, それぞれのバスの信号はそ
            れぞれ独立したリターン信号線を持つというものです.  つまり,
            それぞれの信号は (できればより線の) ペアの信号線で伝えられま
            す. これら2つの信号線の差分の電圧で信号が「真」(assert) で
            あるか「偽」(de-assert) であるか判定されます.  かなりの電圧
            がグラウンド電位と信号線ペアの間にかかったとしても影響があ
            りません (だからといって 10kVの電圧をかけてみたりしないでく
            ださい.. ).

	    なぜ平衡信号がよいのかについての説明はこのドキュメントの範
	    囲を越えています.  電気的に平衡信号はノイズマージンの点で
            非常に優れたものとして利用されているということを受け入れて
            ください.  ディファレンシャルバスは普通は外部接続に利用さ
            れています. これは低コストのシングルエンドバスが筐体内の短
	    い距離のバスでは非常に多く利用されているからです.

	    FreeBSDを使うにおいて, FreeBSDでサポートされているデバイス
           ドライバがあるのであればディファレンシャルバスの利用で問題
           になることは何もありません. 例をあげれば, アダプテックの 
           AHA1740はシングルエンドで, AHA1744はディファレンシャルで
           す. 双方のソフトウェアインタフェースはまったく同一です.

        <sect3><heading>ターミネータ</heading>
          <p>
	    SCSIにおける用語でのターミネータとはインピーダンスの
            マッチングを正確におこなうための抵抗ネットワークです. インピーダンス
            マッチングは反射やリンギングを抑え, バスの信号をきれいにす
            る重要なものです.  たとえば,あまり状態のよくない回線で長距
            離の電話をかけた時にあなたは反射をどんなものか感じるかもしれません.
            20Mbytes/sec で信号の伝わる SCSIバスでは信号のエコーはあ
            りがたくありません. 

	    訳注: 電気信号に限らずすべての波で反射
            という現象は起きます. ここの例はあまり実感がわかないと思う
            ので簡単に書きますと, 3mのバスの端からパルスを入れた場合, 
            反対の端からの反射波は 20ns後 - 本当は電線中の信号の伝達は
            光速よりも少し遅くなるのでもう少し時間がかかりますが - 
            に帰ってきます.  10MHzのクロックは1:1のパルスだとすると幅
            50nsのパルスで, 反射波がやってくる時間とそれほど変わりません.
	    このため, 場合によっては反射波によってクロックや信号が異常
	    になってしまう可能性があります. 


	    ターミネータはいろいろな - 洗練されたものもそうでないもの
            も - 実現方法があります.  もちろん,内蔵のものと外部という
            区別もあります. ほとんどすべての SCSIデバイスにはいくつかの
            ソケットがあり,その中には抵抗ネットワーク (集合抵抗) が入っ
	    ているものもあるかもしれません (いや,おそらく間違いなくあ
	    るでしょう). ターミネータを
            デバイスから外す時は大事にしまっておいてください. SCSIの接
            続の変更をしようと思った時に必要になるかもしれません.  ま
            た, それらしい抵抗ネットワークが見つからないこともあります. 
            この場合, SCSIデバイスは内蔵ターミネータの有効と無効を切替
            えるジャンパがあります.  フラットケーブルに取り付ける特別
            なターミネータもあります. 他には外部コネクタのような形をし
            たものやケーブルのないコネクタヘッドだけのものもあります.
            いろいろと見られるように多くの選択があります.

	    どのような場合に単純な抵抗 (パッシブ) ターミネータからアクティ
            ブターミネータへ切替えるかという問題があります.アクティブ
            ターミネータはいくらか精巧な回路が信号をよりきれいにするた
            めに入っています.  一般的に一致する意見としては, 長いバス
            を使ったり 高速なデバイスを使う場合はアクティブターミネー
            タの有効性は増加すると言えます.  SCSI バスですでに問題が起
            きているならアクティブターミネータを試すことを考えていいで
            しょう.  まず借りることができないか探してみてください. ア
            クティブターミネータは非常に高価だそうですから.

	    ディファレンシャルとシングルエンドバスのターミネータは互換
            性がないということを覚えておいてください. これらの2つの種
            類を <bf>混在させることはできません</bf>.

	    OK, ではあなたはターミネータをどこに入れればいいでしょうか?
	    これは SCSIで最も多く誤解されているところです. しかし, これ
	    は極めて単純なことです..  ここでのルールは <bf>すべての SCSI
            バスは 2個のターミネータをそれぞれの両端に入れる</bf>とい
            うことです.  つまり 2個であって1個でも3個でもありませ
            ん. このルールを受け入れてしたがってください. そうすれば終りの
            ない苦しみから救われるでしょう. なぜなら間違ったターミネー
            ションは不可解なバグを引き起こす可能性が非常に高いから
            です.

	    よく陥りやすい落し穴はマシンの内部 (フラット) ケーブルと外部
            ケーブルがコントローラにつながっている場合です. よく見られ
            るのはコントローラのターミネータを外すのを忘れることで
            す. ターミネータは最後の外部デバイスで必要で, コントローラ
            には必要ありません! 一般的に, SCSIバスの接続の変更をする場
            合はこのようなことに注意をしなければなりません.

	    私自身は, すべてのデバイスとコントローラのターミネータを外し
            ています. 2個の外部ターミネータをセントロニクスタイプ (訳注:
            日本ではケーブルに対してこういう言い方はあまりしないのでは
            ないでしょうか) 外部ケーブルと内部フラットケーブルのコネク
            タの両端に接続しています. こうすることにより接続の変更はか
            なり簡単になります.

	    最近のデバイスは, ICターミネータが使われることもあります.
	    コントロールピンにより無効/有効を設定できる特別のICがあり
            ます. これは物理的にデバイスから外す必要がありません. 新し
            いホストアダプタではセットアップツール等を使ってソフトウェ
            ア的に設定をおこなう場合があります. マニュアルを調べてくださ
            い.

        <sect3><heading>ターミネータの電源</heading>
          <p>
	    ここまでの章で議論したターミネータは正常に動作するためには
            電源が必要です. SCSIバス上にはこの目的のために利用される線
            があります.  だから特に気にする必要はないと思いますか?

	    ところがそうではないのです. それぞれのデバイスはデバイス上
            にあるターミネータソケットに電源を供給することはできま
            す. けれども外部ターミネータがある場合やSCSIバスにターミネー
            タの電源を供給するデバイスのスイッチがオフになっているよう
            な場合にはトラブルが起きるかもしれません.

	    イニシエータ (ここではバスの動作を開始-initiate-させるデバ
            イスを指します -- 訳注: 簡単に言えばホスト側のアダプタです 
            がSCSIの規格によれば, 例えばディスク側がコマンドを発行する
            ようなシステムがあってもかまわないことになっているのでこう
            いう言い方をしています) はターミネータ電源を供給しなければ
            なりません. すべてのSCSIデバイスはターミネータの電源を供給す
            ることができます (必ずしも供給しなければならないというわけ
            ではありません).

	    スイッチがオフになっているデバイスがバス上に存在することを
            許すために, ターミネータの電源はダイオードを通して供給され
            なければなりません.  これはスイッチを切ったデバイスに電流
            が逆流することを防ぐためです.

	    最悪の事態を避けるために, ターミネータの電源は普通はヒュー
            ズが入っています.  当然ヒューズは飛ぶかもしれません. この
	    場合でもバスが機能停止するとは限りません. 複数のデバイスが
            ターミネータの電源を供給しているのであれば, ヒューズが一つ
            飛んでも全体の機能には影響しません. ただ一つの供給線のヒュー
            ズが飛んだのであれば確かに問題になるでしょう. 外部ターミネー
            タによっては LEDでターミネータ電源が与えられていることを示
            すものもあります.

	    最新の設計ではある程度の時間がたつと 「リセット」され自動復
	    帰するヒューズが使われることもあります.

        <sect3><heading>デバイス アドレッシング</heading>
          <p>
	    SCSIバスでは接続された異なるデバイスを区別して指定できなけ
            ればなりません.

	    これには SCSIではターゲットIDが使われます. それぞれのデバイ
            スは特定のターゲットIDを持ちます. デバイスの IDはジャンパや
            DIPスイッチなどで設定できます. より詳しい情報はデバイスの
            マニュアルを見てください.

	    複数のデバイスを使う場合は IDの重複に気をつけてください. 重
	    複すると普通は混乱状態になります. 同じ IDを共有しているデバ
  	    イスがI/Oリクエストに答えようと処理をおこなうことが落し穴にな
	    ります. 

	    8 bitバスでは, 最大8台のターゲットまで可能です. 最大8台で
            ある理由は, バスの8本のデータ線がデバイスの選択に使われる
            からです. バス幅の広いバスでは使えるデバイスの数は増えます.
            同時にバス使用の要求が発生した場合, 最も IDの大きいデバイス
            が優先されるという調停がおこなわれます. このことは (ナローバス
            では) SCSIホストアダプタの IDは通常7番が使われる理由でもあり
            ます.

	    さらにサブユニットとして, 規格では ロジカルユニット,短縮形
            で LUNを持つことができます. 一つのターゲットIDが複数の LUNを
            持つことができます. 例えば, テープチェンジャを持つテープ
            ドライブは LUN 0をテープドライブ自身, LUN 1をテープチェン
            ジャ に与えることができます. このようにして, ホストシス
            テムはテープチェンジャの目的のテープユニットの部分を指定す
	    ることができます.

        <sect3><heading>バスレイアウト</heading>
          <p>
	    SCSIバスは直線状です.  つまり, Y接続, スター接続, クモの巣
	    状の接続などの直線以外の接続ではありません.

	    先に議論したターミネータの問題は直線状以外の場合ではより困
	    難になるだろうということに注意してください.

	    電気的特性はそのノイズマージンや全体の信頼性において,直線
	    状のバスのルールに強く依存しています.

            <bf>直線状バスであるというルールにしたがってください!</bf>

    <sect2><heading>FreeBSD で SCSIを使う</heading>
      <p>
      <sect3><heading>トランスレーション, BIOS, そしてマジック...</heading>
        <p>
	  まず始める前に, 電気的に問題のないバスであるか調べておいてく
	  ださい.
	  
	 SCSIディスクをPCでブートディスクとして使う場合に, PC BIOSに
         関する気まぐれについて知っておく必要があります. PC BIOSは ハー
         ドディスクへの低レベル物理インタフェースを利用するように実
         現されています.  したがって, BIOSに (セットアップツールやBIOSビル
         トイン セットアップを使って) ディスクの物理パラメタを教えてや
         る必要があります. これはヘッドの数, シリンダの数, トラックあ
         たりのセクタなどがあり, プリコンペンセーションや書き込み電流を
         減少させるトラック, などのあまりよく知られていないものもあります.

	  SCSIディスクはこれらのことをユーザは気にする必要がないはず
          だと考えるかもしれません.  しかし, 不思議なことに (これらの項
          目の) セットアップはいまだにあるのです. システム BIOSはブート
          時にFreeBSDのカーネルを読み込むためにSCSIディスクに
          /ヘッド/シリンダ/セクタ を指定する方法でアクセスするため, 
	  パラメタを知る必要があるのです.

	  AT/EISA/PCIバスなどにあり,ディスクに接続される SCSI ホストア
          ダプタや SCSI コントローラは それ自身のオンボードBIOSを持っ
          ています.  システムの起動時に, SCSI BIOSは システムBIOSのハー
          ドディスクのインタフェースルーチンを乗っ取ります.  システ
	  ム BIOSをごまかすために システムセットアップでは普通は
	  `No hard disk' とします. 簡単ですね?

	  SCSI BIOS はドライブの<bf>トランスレーション</bf>と呼ばれる機
          能を持ちます. これはPCがブートするために作られたドライブテー
          ブルをごまかすものです. このトランスレーションは多くは (すべて
          の場合ではありません) トラックあたり64あるいは32個のヘッドを
          持つ仮想的なドライブを使います. シリンダの数を変更することで 
          SCSI BIOS は実際のドライブのサイズに適合させます. 総セクタ数
	  を 32 * 64 / 2 で割った結果がメガバイト単位のドライブのサイズ
	  になります.  2で割っているのは, 通常 512バイトのサイズのセク
	  タを kByte 単位に変換するためです.

	  ではこれですべてうまくいくのでしょうか. いいえ, そういう訳で
          はありません. ブート可能なハードディスクのシリンダ数は 1024よ
	  り多くすることはできないのです.  トランスレーションを使った
          場合でもディスクの 1GB以上の領域は見えません. ディスクの容量
          がどんどん増加していくにつれこれは問題になってきました.

	  幸いにして, 単純な解決方法があります. 単に別のトランスレーショ
          ンを使えばよいのです. 例えば, 32個に代わり,128個のヘッドを使いま
          す. ほとんどの場合, 古いSCSIホストアダプタをアップグレードす
	  るための新しいバージョンの SCSI BIOS が用意されています.
          新しいアダプタではジャンパ
          やセットアップソフトによって SCSI BIOSの使うトランスレーショ
          ンが選択できる物もあります.

	  ここで非常に重要なことは, ディスク上の<bf>すべての</bf>オペレー
          ティングシステムが <bf>同一のトランスレーション</bf>により正
          しいパーティションを得ることです. つまり FreeBSDをインストー
          ルする時に, ヘッド/シリンダなどについての質問にあなたのホスト
          アダプタが使用しているトランスレートされた値を使わなくてはな
          りません.

	  トランスレーションによる失敗で見られるのは, ブートしないシス
          テムや他のパーティションを上書きしてしまうことです. すべてのシ
          ステムが見えるように fdiskを使うべきです.

	  あなたはデバイスについてこれとは食い違った話を聞いたことがあ
          るかもしれません. 古い FreeBSDのカーネルはブートする時に SCSI
          ディスクのジオメトリ情報を報告していました. 私のシステムの
          一つの例を示しましょう.  

          <verb>
	aha0 targ 0 lun 0: <MICROP  1588-15MB1057404HSP4>
	sd0: 636MB (1303250 total sec), 1632 cyl, 15 head, 53 sec, bytes/sec 512
          </verb>
	  最近のカーネルは, 普通はこのような情報を報告しません. たとえば,
	  このようになっています.

	  <verb>
	 (bt0:0:0): "SEAGATE ST41651 7574" type 0 fixed SCSI 2
	 sd0(bt0:0:0): Direct-Access 1350MB (2766300 512 byte sectors)
	  </verb>

	  なぜこのように変わったのでしょう?

	  この情報は SCSIディスク自身から得られます. 最近のディスクで
          はよくゾーンビット記録方式 (zone bit recording) という技術が使
          われています. これはドライブの外側のシリンダは内側よりもスペー
          スが広いのでトラックあたりのセクタ数を増やすことができるとい
          うアイディアです. この結果, 外側のシリンダ上のトラックの容量
          は内側のシリンダよりも大きくなり, 全体ではより大きな容量とな
          ります.  この場合, ドライブにのジオメトリについての報告は, 
          最善のものかどうか疑わしく, ほとんどの場合誤解を招くものであ
	  ることがわかるでしょう.
 	  ジオメトリを調べる場合, ほとんどの場合は BIOSの用い
          ている値を与える方がよい結果となり, <em>BIOSがそのディスクに
          ついてまったく関知しないのであれば</em> (例えばブートディスクで
          はないなら) 都合のよい仮想のジオメトリを与えればいいでしょう.


      <sect3><heading>SCSI サブシステムの設計</heading>
        <p>
	  FreeBSDでは階層的な SCSIサブシステムを用いています. 各々異な
          るコントローラカードのデバイスドライバが書かれています. この
          ドライバはコントローラのハードウェアの詳細を知っています. ド
          ライバは SCSIサブシステムのより上位の階層のコマンドを受け取り,
          ステータスを報告するインタフェースを持ちます.

	  カードのドライバの最上位には, デバイスのクラスのためのいくつ
          かの一般的なドライバがあります. 具体的にいうと, テープドライ
          ブのためのドライバ (略号は: st), 磁気ディスク (sd), CD-ROM
          (cd) などです. これらのソースコードは<tt>/sys/scsi</tt>にあり
          ます.  マニュアルページ (man) のセクション 4 にはより詳しい内
          容があるので見てください.

	  多階層の設計は低レベルとより高位のレベルを分離させることがで
          きます. 新たに他の種類のハードウェアのサポートを加えることを
          より処理しやすい問題にします.

      <sect3><heading>カーネルコンフィグレーション</heading>
        <p>
	  あなたのハードウェア構成にしたがって, カーネルのコンフィグファイ
          ルにホストアダプタについて 1行あるいは数行程度の記述をする
	  必要があります.
	  これには I/O アドレスや割り込みなどについての内容も含
          みます. あなたのアダプタのドライバについてのマニュアルページ
          にはより多くの情報があるのでよく読んでください. これとは別に 
          /sys/i386/conf/LINT にはカーネルコンフィグファイルについての
          概要があります. LINTには一般的なものについては可能なすべてのオ
          プションが含まれています. ただし, LINTでは実際に動作するカー
          ネルを作ることは <em>できません</em>.

	  おそらく何をするかは明らかでしょう. カーネルコンフィグファイ
          ルは実際のハードウェア構成を反映すべきです. そのように割り込
          みやI/Oアドレス等に合わせてカーネルコンフィグファイルを書か
          なければなりません.  システムのブート時のメッセージは実際に
          見つけたハードウェアの設定を表示します.

	  例として FreeBSD 2.0.5-Releaseのいくつかのコメント
	 (&lsqb;&rsqb;の中) をつけた LINTカーネルコンフィグファイルを示
         します.


	  <verb>
		
# SCSI host adapters: `aha', `ahb', `aic', `bt', `nca'
#
# aha: Adaptec 154x
# ahb: Adaptec 174x
# ahc: Adaptec 274x/284x/294x
# aic: Adaptec 152x and sound cards using the Adaptec AIC-6360 (slow!)
# bt: Most Buslogic controllers
# nca: ProAudioSpectrum cards using the NCR 5380 or Trantor T130
# uha: UltraStore 14F and 34F
# sea: Seagate ST01/02 8 bit controller (slow!)
# wds: Western Digital WD7000 controller (no scatter/gather!).
#

&lsqb; Adaptec AHA274x, 284x などのコントローラ&rsqb;
controller	ahc0	at isa? bio irq ? vector ahcintr # port??? iomem?

&lsqb; Adaptec AHA174x コントローラ&rsqb;
controller	ahb0	at isa? bio irq ? vector ahbintr

&lsqb;Ultrastor アダプタ&rsqb;
controller	uha0	at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr

# Map SCSI buses to specific SCSI adapters
controller	scbus0	at ahc0
controller	scbus2  at ahb0
controller	scbus1  at uha0

# The actual SCSI devices
disk sd0 at scbus0 target 0 unit 0	[SCSI ディスク 0 は scbus 0, LUN 0]
disk sd1 at scbus0 target 1		[unit を省略すると暗黙で LUN 0]
disk sd2 at scbus1 target 3		[uha0 上の SCSIディスク]
disk sd3 at scbus2 target 4		[ahb0 上の SCSIディスク]
tape st1 at scbus0 target 6		[SCSI テープ は ターゲット (ID)6]
device cd0 at scbus?			[最初に見つけた CDROM, 固定にしない]

	  </verb>

	  上の例では カーネルは ahc (Adaptec 274x) コントローラをまず
          探し, その次に Adaptec 174x のボードというように順番に探して
          行きます.  その下の行の controller の記述ではデバイスの詳細
          を記述して, 対応するバスでターゲット ID と LUN が指定された
          ものと一致する場合<em>だけ </em>認識するようにカーネルに伝え
	  ています. 

	  固定された (Wired down) デバイスは 「最初に」ユニット番号が与え
          られるので, 「固定」されいないデバイスは同じ種類の「固定」され
          たユニット番号の最も大きい番号の1つ上の番号から割り当てられ
          ます.
	  したがって, ターゲットID 2の SCSIテープを加えると, ターゲットID 6
          のテープがユニット番号1に固定されているので, それはst2に設定
          されるでしょう. ブート時に見つからなくても<em>固定されたデバ
	  イスにはユニット番号が常に割り当てられる</em>ということに注
	  意してください. 固定のデバイスに
          割り当てられたユニット番号は,もしそのデバイスのスイッチがブー
          ト時に切られていてもそのデバイスにリザーブされています. 
	  これは, 電源を入れて接続した時のユニット番号が与えられます.
	  デバイスのユニット番号は SCSIバスのター
	  ゲットIDとは <em>何の関係もない</em>ことに注意してください.

	  下の例は FreeBSDのバージョン 2.0.5 以前の カーネルコンフィ
          グファイルです. 最初の例との違いはデバイスの「固定 (wired
          down)」がないことです. 「固定」によりどのSCSIターゲットをどの
          デバイスに割り当てるかを記述できるようになりました.

	  下のコンフィグファイルにより構築されたカーネルでは最初に見つ
          けた SCSIディスクが sd0になり, 次に見つけたディスクが sd1に, 
          という具合に割り当てられます. もしディスクの削除や追加をおこなう
          と, 他の同じタイプのデバイス (この場合はディスク) のすべてが 
	  「移動して」しまうかもしれません. これによりそのたびに
          <tt>/etc/fstab</tt> を変更する必要があります.

	  古いスタイルでも動きますが, 新しいスタイルを使うことが<em>強
          く</em> 推奨されています. これにより SCSIバスのハードウェアを
          どのように変更した場合でもトラブルを避けることができます.
          ですから, 2.0.5.R以前の FreeBSDからアップグレードした後に古い
          信頼できるコンフィグファイルを再利用する時はこの部分をチェッ
          クして直してください.

          <verb>
&lsqb;Adaptec 174x用のドライバ&rsqb;
controller      ahb0    at isa? bio irq 11 vector ahbintr
&lsqb;Adaptec 154x用のドライバ &rsqb;
controller      aha0    at isa? port "IO_AHA0" bio irq 11 drq 5 vector ahaintr
&lsqb;Seagate ST01/02インタフェースのドライバ&rsqb;
controller      sea0    at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr
controller      scbus0

device          sd0	&lsqb;4台のSCSI ディスクのサポート, sd0 から sd3&rsqb;

device          st0	&lsqb;2台の SCSI テープのサポート&rsqb;

&lsqb;cdromのドライバ&rsqb;
device          cd0     #Only need one of these, the code dynamically grows
          </verb>


	  両方の例で SCSIディスクがサポートされています. ブート中に
	  「固定」の記述がされているタイプ(例えば sd ディスク) のデバ
	  イスで記述より多くのデバイスが見つかると,
	  システムは単純に最後の「固定」のデバイスの番号より
          1つずつ増加させた番号をデバイスに割り当てて行きます. もし 
          「固定」のデバイスがなければユニット番号は0から始まります.

	  <tt>man 4 scsi</tt> によって SCSIサブシステムの最新の情報を
          チェックしてください. より詳細なホストアダプタドライバの使い
          方は, たとえば Adaptec 154xドライバの場合は<tt>man 4
          aha</tt> にあります.

      <sect3><heading>カーネルセットアップでの SCSI チューニング</heading>
        <p>
	  経験的に SCSIバスリセット (ブート時におきます) 後のINQUIRYコマ
          ンドに対して応答が遅くなるデバイスがあります. INQUIRYコマン
          ドは ブート時にカーネルがどの種類のデバイス (ディスク, テープ,
          CDROMなど) がどのターゲットIDに接続されているかを調べるために
          発行します. ちなみにこのプロセスをデバイスプロービング (デバ
          イス検出) と言います.

	  「応答の遅いデバイス」の問題を解決するために, FreeBSDは SCSIバ
          スをリセットした後に SCSIデバイスの検出をおこなうまでのディレ
          イタイムを調整することができます. カーネルコンフィグレーショ
          ンファイルの下に示すような行にディレイタイムを設定してくださ
          い.

	  <verb>
options         SCSI_DELAY=15         #Be pessimistic about Joe SCSI device
	  </verb>
	  この行ではディレイタイムは 15秒です. 私のシステムでは, 信頼
          できる古い CDROMが認識できるように3秒の値を使っています. もし
          デバイスの認識で問題が起きる時は大きな値 (30秒であるとか) から
          始めてください. うまく動いたら,値を減らしてちょうどよい値に
          にチューニングしてください.


      <sect3><heading>Rogue な SCSI デバイス</heading>
        <p>  

	(訳注: rogue は有名なゲーム, ではなくて 悪党, 群から離れた, 凶暴
	な, という意味)

	  SCSIの規定は完全で簡潔なものにしようという努力はされましたが, 
          複雑な規定となり, 正確に実現するのは簡単なことではありません. 
          いくつかのベンダは他よりもよい仕事をしています.

	  ここで 「イカレた」デバイスが現れることになります. このような
          デバイスは FreeBSD のカーネルにいくらか標準的
          ではない振舞をするものと認識されます.  「イカレた」デバイスは
          ブート時にカーネルによって報告されます. 次の例は私の2つのカー
          トリッジテープユニットです.

	 <verb>
Feb 25 21:03:34 yedi /kernel: ahb0 targ 5 lun 0: <TANDBERG TDC 3600       -06:>
Feb 25 21:03:34 yedi /kernel: st0: Tandberg tdc3600 is a known rogue

Mar 29 21:16:37 yedi /kernel: aha0 targ 5 lun 0: <ARCHIVE VIPER 150  21247-005>
Mar 29 21:16:37 yedi /kernel: st1: Archive  Viper 150 is a known rogue
	 </verb>

	  例えば, あるターゲットIDから実際には1つのデバイスしかないの
          にすべての LUNからの応答があるようなデバイスがあるとします. カー
          ネルはその特定のターゲットIDに8個の LUNがあると誤解してしまう
          かもしれません.  このような混乱の起きる原因については読者へ
          の課題にしておきます.

	  FreeBSDの SCSIサブシステムは 検出時の INQUIRYの応答を見て
          悪い習慣を持つデバイスの認識をしています. INQUIRYの応答にはデ
          バイスのファームウェアのバージョン番号が含まれるため, 異なる
          動作をするファームウェアのバージョンを区別することも可能です.
	  例えば, /sys/scsi/st.c や /sys/scsi/scsiconf.c を見てくださ
          い. どのように行っているか, より多くの情報があります.

	  この方法はうまく行きますが, もちろん既知のデバイスがつながっ
          ている場合だけうまくいくということに気をつける必要があります. 
          もしあなた以前に Mumbletech SCSI CDROM (訳注: 架空のメーカ
	  のデバイスです) を接続した人がいないとしたら, どんな「ワザ」
          を使ってそれを使うか自分で見つけないといけないかもしれません.

	  あなたの Mubletech を動かすことができたらその成果を FreeBSDの
          次のリリースへ含めるために FreeBSD開発チームへ送ってくださ
          い. 他の Mumbletechの利用者たちはあなたに感謝するでしょう.


      <sect3><heading>複数の LUNを持つデバイス</heading>
	<p>
	 単一の SCSI ID上に複数の論理ユニット (LUN) を持つデバイスを使う
	 ような場合もあるかもしれません. 多くの場合では FreeBSDは LUN 0
         のみを検出します. このような例としては2台の SCSIではないハード
         ディスクを SCSIバスにつなぐブリッジボード (例えば古い Sunシステ
         ムに見られる Emulex MD21) があります.

         LUN が0ではないデバイスは普通はシステムブート時の検出では
         見つかりません. この問題にうまく対処するには 
         /sys/scsi/scsiconf.c に適切なエントリを加えてカーネルを再構築
         しなければなりません.

         以下のように初期化されている構造体を探します.
         <verb>
         {
                T_DIRECT, T_FIXED, "MAXTOR", "XT-4170S", "B5A",
                "mx1", SC_ONE_LU
         }
         </verb>

         LUNが複数あるあなたの Mumbletech BRIDGE2000 はハードディスク
        として働きます. またファームウェアのリビジョン123などを次のよ
        うに書き加えます.

         <verb>
         {
                T_DIRECT, T_FIXED, "MUMBLETECH", "BRIDGE2000", "123",
                "sd", SC_MORE_LUS
         }
         </verb>

	 訳注: 複数 LUNに対応するためには構造体の最後の要素を 
	 SC_MORE_LUSにします. エントリを作る必要がある場合は scsiconf.c
	 にある MBR-7等のエントリを参考にするといいでしょう.

	 カーネルは INQUIRYに一致するデータをブート時にテーブルから探し
	 てこれにしたがって振舞います. より多くの情報はソースコードを見て
	 ください.

      <sect3><heading>タグ コマンド キューイング</heading>
	<p>
	 最近の SCSI デバイス, 特に磁気ディスクではタグ コマンド キュー
	 イング (tagged command queuing: TCQ) がサポートされています.

	 要約すれば, TCQは複数のI/Oリクエストを同時に受けることを可能
         にすることです. デバイスはインテリジェントですから,リクエスト
         キューにある処理 (ヘッドのポジショニングなど) の最適化をおこなうこ
         とができます. RAID (Redundant Array of Independent
         Disks) のようなSCSIデバイスではTCQ機能はデバイスの持つ並列性の
	 利点を生かすために不可欠です.

	 各々の I/O リクエストは単一の `tag' (タグ コマンド キューイン
         グの名前の由来) が与えられます.  FreeBSDはこの tagによりデバ
	 イスドライバのキューの中のどの I/Oリクエストが完了したかの識
	 別をおこないます.

	 TQCのリクエストはデバイスドライバがサポートしていたとしても
	 あるデバイスのファームウェアではインプリメントが正しくないかもし
	 れません. このような問題に出会うと非常に不可解な問題につ
	 ながります. このような場合は TCQ を無効にしてみてください.

      <sect3><heading>バスマスタ ホストアダプタ</heading>
        <p>
	  すべてではありませんが多くの SCSIホストアダプタはバスマスタコ
	  ントローラです. これはホストCPUにデータ転送の負荷をか
	  けず, ボード自身がI/Oをおこないます.

	  これは FreeBSDのようなマルチタスクのオペレーティングシステム
          では大きな利点になります. しかし, 何らかの問題の起きることも
	  あります.

	  例えば Adaptec 1542 コントローラは ホストバス (ここではISAま
          たはATバス) を異なった転送速度に設定できます. コントローラが
          異なるレートに設定できるのはすべてのマザーボードで高速な転送が
          できる訳ではないからです. マザーボードに合っていない高速の
          データ転送速度を用いた時には, ハングアップやデータの損傷等の
          問題が起きるかもしれません.


	  これを解決する方法は明らかです. より低いデータ転送速度に設定
          してうまく動くか確かめることです.

	  Adaptec 1542の場合, 可能な限り高速な転送レートを動的に読み取って, 
          正しい決定をおこなうためのオプションをカーネルコンフィグファイルに
          追加することができます. このオプションはデフォルトでは無効に
	  なっています.


	  <verb>
options        "TUNE_1542"             #dynamic tune of bus DMA speed
	  </verb>
	  
	  あなたの使うホストアダプタについてのマニュアルページをチェッ
         クしてください. また最終的な手段としては究極のドキュメントを
         使ってください (つまりドライバのソースを読んでくださいというこ
         とです).

	 訳注: 2.1.5Rの時点ではすべてのドライバに関してマニュアルページ
         があるわけではありません. また上の例の TUNE_1542のオプション
         も <tt>man aha </tt>にはないようです. ソースのコメントだけで
         も一度見ておいてもいいかもしれません.


    <sect2><heading>問題を突き止める </heading>
      <p>
	以下は SCSI で一般的に問題が起きた場合に解決をするためのチェッ
	クリストの試みです. これは完全な物ではありません.

        <itemize>
          <item>
	    コネクタとケーブルがゆるんでいないかチェックする.
          <item>
	    ターミネータの場所と数を念には念を入れてチェックする.
          <item>
	    少なくとも1つのターミネータの電源の供給源があるかチェック
	    する (特に外部ターミネータを使う場合).
          <item>
 	    ターゲットIDが重複していないかチェックする.
          <item>
	    使用するすべてのデバイスの電源がONになっているかチェックする.
          <item>
	    必要最小限のデバイスだけの構成を試してみる.
          <item>
	    可能であれば, ホストアダプタのスピードを遅くする.
	  <item>
	    問題をより単純にするために, タグコマンドキューイングを可能
 	    であれば無効にする. (NCRベースのホストアダプタについては 
	    man ncrcontrol を見てください)
          <item>
	    カーネルのコンパイルができるのであれば, SCSIDEBUGオプショ
            ンをつけて makeして, デバイスをデバッグモードにしてアクセ
            スしてみてください.  もしそれでも起動時にデバイスが検出
            されないのであれば, デバイスの設定アドレスが間違っている
            のかもしれません. また, <tt>/sys/scsi/scsidebug.h </tt>に
            あるデバッグレベルを変えてみてください.  検出はされるが
            動かないのであれば, <tt>scsi(8)</tt>コマンドで (SCSIDEBUG
            をつけてmakeした) カーネルが動いている状態で動的にデバッグ
            レベルを設定することができます. これは guru (UNIXの達人) で
            も混乱してしまうほどの非常に大量のデバッグ情報を出すでしょ
            う. <tt>man 4 scsi
            </tt>にはより正確な情報があります.  また<tt>man 8
	    scsi</tt> も見てください.
        </itemize>

    <sect2><heading>さらに詳しい情報<label id="scsi:further-reading"></heading>
      <p>
	もしあなたがいくらかは本気で SCSIハッキングをする気があるなら
	たぶん正規の規格を持っていたくなるでしょう.

	承認ずみのアメリカ工業規格は ANSI から購入できます. 住所と電話
        番号は11 West 42nd Street, 13th Floor, New York, NY 10036,
        Sales Dept: (212) 642-4900 です.
	また, ANSIの規格および委員会の規格案 (ドラフト) のほとんどはGlobal
	Engineering Documentsより買うことができます. 連絡先は  15
        Inverness Way East, Englewood, CO 80112-5704, Phone: (800)
        854-7179, Outside USA and Canada: (303) 792-2181, FAX: (303) 792-
        2192です.

	X3T10のドラフトの多くは電子的に利用できる形で SCSI
	BBS (719-574-0424) と ncrinfo.ncr.com の Anonymous FTP (誰でも
	ファイルを取ってくることができるFTPサービス) サイトから得るこ
	とができます. 

	最新の X3T10委員会のドキュメントは:
        <itemize>
<item>AT Attachment (ATA or IDE) &lsqb;X3.221-1994&rsqb; (<em>Approved</em>)
<item>ATA Extensions (ATA-2) &lsqb;X3T10/948D Rev 2i&rsqb;
<item>Enhanced Small Device Interface (ESDI) &lsqb;X3.170-1990/X3.170a-1991&rsqb;   (<em>Approved</em>)
<item>Small Computer System Interface - 2 (SCSI-2) &lsqb;X3.131-1994&rsqb; (<em>Approved</em>)
<item>SCSI-2 Common Access Method Transport and SCSI Interface Module (CAM) 
                                   &lsqb;X3T10/792D Rev 11&rsqb;
        </itemize>
	追加情報を得ることのできる出版物は:
<itemize>
<item>"SCSI: Understanding the Small Computer System Interface", NCR社 
編.  出版: Prentice Hall, Englewood Cliffs, NJ, 07632
Phone: (201) 767-5937 ISBN 0-13-796855-8

<item>"Basics of SCSI", a SCSI tutorial, Ancot Corporation 編
 Ancot の連絡先:
Phone: (415) 322-5322  Fax: (415) 322-0455

<item>"SCSI Interconnection Guide Book", AMP社の出版物 (発行 4/93, カ
タログ 65237) 色々な SCSI コネクタのリスト と ケーブル接続方法のガイド.  
 AMP 社より入手可能. (800) 522-6752 または (717) 564-0100

<item>"Fast Track to SCSI", 富士通によるプロダクトガイド,
入手先: Prentice Hall, Englewood Cliffs, NJ, 07632
電話: (201) 767-5937 ISBN 0-13-307000-X

<item>"The SCSI Bench Reference", "The SCSI Encyclopedia",  "SCSI Tutor",
ENDL Publications, 14426 Black Walnut Court, Saratoga CA, 95070
電話: (408) 867-6642
        
<item>"Zadian SCSI Navigator" (クイックリファレンス) および  "Discover the Power of SCSI" 
(最初の本は1時間のビデオとチュートリアルが付属), Zadian Software, 
Suite 214, 1210 S. Bascom Ave., San Jose, CA 92128, (408) 293-0800
        </itemize>

        Usenet のニュースグループ <htmlurl
        url="news:comp.periphs.scsi" name="comp.periphs.scsi"><htmlurl url="news:comp.periphs" name="comp.periphs">
        は特により多くの情報を得るには注目すべき場所です. また定期的に
        ポストされる SCSI-FAQをここから得ることができます.

	多くの主要な SCSIデバイスとホストアダプタの供給元は FTP サイト
        や BBSを開いています. これらはあなたの持っているデバイスに関す
	る貴重な情報源となるでしょう.