|
次のページ
前のページ
目次へ
6. SCSI 機器用の起動時引数この節では、導入されている SCSI ホストアダプタと SCSI デバイスに 情報を渡すための起動時引数の説明を行います。
6.1 中位のドライバのための引数中位のドライバはディスクや CD-ROM、テープなどをホスト アダプタ固有の事情に立ち入ることなしに取り扱います。
LUN の最大検出数 (`max_scsi_luns=')SCSI デバイスは、それぞれいくつかの「下位のデバイス」を持つことが できます。もっとも良くある例は複数の CD を同時に使える最近の SCSI CD-ROM です。各々の CD は そのデバイスの `Logical Unit Number' (LUN) で識別されます。しかしハードディスク やテープドライブ等のほとんどデバイスは、内部に一つしかデバイスを持って おらず、LUN として 0 を割り当てています。 問題が起こるのは、不具合があるファームウェアを持つ単一 LUN のデバイス を使うときです。設計がよくないSCSI デバイス(古いものと、不幸なことに新 しいものも含みます)は、0 以外の LUN で検出されることに耐えられません。 このような場合、システムが動作停止したり、SCSI バスがダウンしてしまい ます。 カーネルには検出を行うときの最大 LUN を設定するオプションがあります。 デフォルトの動作では LUN 0 しか検出しません。 これは前述の問題を避けるためです。
検出を行う LUN を起動時に指定するには、`max_scsi_luns=n' を起動時 引数として与えます。ここで n は 1 から 8 までの数です。前述の問題を避 けるためには、n=1 として、いかれたデバイスによるごたごたを回避します。
SCSI ロギング (`scsi_logging=')0 以外の値をこの起動時引数に与えると、全てのSCSI イベント(error, scan,
mlqueue, mlcomplete, llqueue, llcomplete, hlqueue, hlcomplete)の
ロギングが行われるようになります。
いくつかの SCSI テープドライバの起動時設定は、以下のようにして行えます:
st=buf_size[,write_threshold[,max_bufs]] 最初の二つの数は kB 単位で指定します。デフォルトの
st=32,30,2 詳細はカーネルソースツリーの
6.2 SCSI ホストアダプタ用の引数この節での表記法について:
Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI (`aha152x=')aha で始まる名前はカードの名前を表わし、aic で始まる名前は 基板の上の実際の SCSI チップの名前を表わします。後者には Soundblaster-16 SCSI などがあります。 これらの SCSI ホスト用の検出用コードは、BIOS が導入されて いるかどうかを調べます。もしも BIOS がない場合には、カードを探す ことはできません。その場合、起動時引数を使わなければ ならないでしょう。その書式は以下の通りです:
aha152x=iobase[,irq[,scsi-id[,reconnect[,parity]]]] ドライバがデバッグ対応にコンパイルされているなら、6 番目の 値を使ってデバッグレベルを設定できます。 全てのパラメータはこの節の最初に説明した通りです。また、
aha152x=0x340,11,7,1 引数は順番通りに書かなければなりません。つまり、パリティを設定したけれ ば、iobase, irq, scsi-id, reconnect も指定しなければなりません。
Adaptec aha154x (`aha1542=')これらは aha154x 系のカードです。aha1542 系のカードは i82077 フロッピー コントローラを内蔵していますが、aha1540 系のカードは内蔵していません。 このシリーズはバスマスタカードで、他のデバイスとバスを共有するときの 「公平さ」を設定するパラメータがあります。 起動時引数は以下のようになります。
aha1542=iobase[,buson,busoff[,dmaspeed]] 有効な
Adaptec aha274x, aha284x, aic7xxx (`aic7xxx=')これらのボードは以下の引数を受け付けます:
aic7xxx=extended,no_reset
AdvanSys SCSI ホストアダプタ (`advansys=')AdvanSys ドライバは AdvanSys SCSI カードを検出するための I/O アドレスを
4 つまで受け付けます。なお、これらの値を使用しても EISA や PCI のカード
の検出には影響を与えません。ISA および VLB のカードのみが影響を受けます。
加えて、ドライバがデバッグ用にコンパイルされている場合、デバッグ出力
レベルの指定を
Always IN2000 ホストアダプタ (`in2000=')他の SCSI ホストアダプタの起動時引数と違って、IN2000 ドライバは ほとんどの整数型引数の前に ASCII による前置文字列を置きます。対応して いる引数のリストを以下に示します: ioport:addr -- addr はカード(普通は ROM なし)の I/O アドレスです。 noreset -- 後に続く引数はありません。起動時に SCSI バスをリセットしないようにします。 nosync:x -- x はビットマスクで、下位の 7 ビットが使用可能な 7 つの SCSI デバイスに 対応します(ビット 0 がデバイス #0 です)。あるビットを立てると、 そのデバイスとの同期ネゴシエーションが禁止されます。デフォルトの 動作では、ドライバは全てのデバイスの同期を無効にしています。 period:ns -- ns は SCSI データ転送周期の最小値で、単位はナノ秒です。 デフォルト値は 500、指定可能な値は 250 から 1000 までです。 disconnect:x -- x = 0 の時には切断を許しません。2 ならば常に許します。 x = 1 は、「適応的」に切断を行います。これはデフォルトの動作であり、 普通は一番いい選択です。 debug:x -- `DEBUGGING_ON' が定義されている場合は、x は表示するデバッグ出力の種類 を決めるビットマスクになります。 in2000.h における DB_xxx の定義を見てください。 proc:x -- `PROC_INTERFACE' が定義されている場合は、x は /proc インター フェースの動作を決めるビットマスクになります。 in2000.h における PR_xxx の定義を見てください。 以下にいくつか例を示します:
in2000=ioport:0x220,noreset in2000=period:250,disconnect:2,nosync:0x03 in2000=debug:0x1e in2000=proc:3
AMD AM53C974 ベースのハードウェア (`AM53C974=')他のデバイスとは異なり、このドライバは I/O、IRQ、DMA チャネル での通信に起動時引数を使いません(なぜかというと AM53C974 は PCI デバイスであるためで、これらを使う必要がないからです)。 その代わりに、引数はホストとターゲットデバイスの間の 転送モードや速度を指定するために使用します。これらは例で説明する のが一番わかりやすいでしょう:
AM53C974=7,2,8,15 これは以下のように解釈されます。「SCSI-ID が 7 であるコントローラと
SCSI-ID が 2 であるデバイスの間は、同期転送モードにより転送速度
8MHz、最大 15 バイトのオフセットをとるようネゴシエーションする」。
より突っ込んだ説明については
v1.2 カーネル用 BusLogic SCSI ホストドライバ (`buslogic=')古いカーネルを使用している場合は、buslogicドライバは
引数を一つだけとります。これは I/O ベース値を教えるために使います。
値としては以下のうちの 1 つを指定します:
v2.x カーネル用 BusLogic SCSI ホストドライバ (`BusLogic=')バージョン 2.x のカーネルでは、BusLogic ドライバはたくさんの引数を受け
付けます。(前節のドライバとは大文字と小文字が違うので注意。こちらは
B, L が大文字です!!!) 引数が多すぎて、ここでは説明できません。
完全な説明はドライバ
EATA SCSI カード (`eata=')最新の v2.0 カーネルの時点では、EATA ドライバは検出のための I/O ベースアドレスを起動時引数として受け付けます。 書式は以下の通りです:
eata=iobase1[,iobase2][,iobase3]...[,iobaseN] このドライバは、指定した順番でアドレスを検査していきます。
Future Domain TMC-8xx, TMC-950 (`tmc8xx=')これらの SCSI ホスト用の検出コードは、SCSI BIOS がインストール されているか調べ、インストールされていなければカードを検出しません。 また、BIOS のシグネチャ文字列が識別できなくてもカードを検出しません。 これらの場合、起動時引数を以下の形式で与える必要があります:
tmc8xx=mem_base,irq
Future Domain TMC-16xx, TMC-3260, AHA-2920 (`fdomain=')このドライバは、既知の BIOS ROM シグネチャのリストに基づいてカードを検
出します。既知の BIOS の版の完全なリストについては、
fdomain=iobase,irq[,scsi_id]
IOMEGA パラレルポート / ZIP ドライブ (`ppa=')これは、IOMEGA Zip ドライバに組み込まれているパラレルポート用 SCSI ア ダプタのためのドライバです。また、 このドライバは、オリジナルの IOMEGA PPA3 デバイス用でも動作します。 このドライバの起動時引数は以下の通りです:
ppa=iobase,speed_high,speed_low,nybble iobase 以外は省略できます。3 つの省略可能なパラメータのどれ
かの値を変更したければ、
NCR5380 ベースのコントローラ (`ncr5380=')ボードによって、5380 は I/O マップの場合とメモリマップの場合があります
(0x400 以下のアドレスは通常は I/O マッピングです。しかし、PCI と EISA
のハードウェアは 0x3ff より上のアドレスを使います)。いずれの場合も、
アドレス、IRQ の値、DMA チャネルの値を指定してください。I/O マップの
カードの指定例は、
NCR53c400 ベースのコントローラ (`ncr53c400=')一般的な 53c400 への対応は、上で説明した一般的な 5380 への対応と同様に 行われます。起動時引数は前述の説明とほぼ同じですが、53c400 では DMA チャネルが使われない点だけが異なります。
NCR53c406a ベースのコントローラ (`ncr53c406a=')このドライバは以下の様な起動時引数を使用します:
ncr53c406a=PORTBASE,IRQ,FASTPIO ここで IRQ と FASTPIO 引数は省略可能です。
割り込みに 0 を指定すると、割り込みを使わなくなります。FASTPIO
引数に 1 を指定すると、単一バイト処理命令
Pro Audio Spectrum (`pas16=')PAS16 は NCR5380 SCSI チップを使用しています。また、最近の 機種はジャンパ無しの設定に対応しています。起動時引数の 書式は以下の通りです:
pas16=iobase,irq 唯一異なる点は、IRQ の値として 255 を指定できる点です。これは
割り込み無しでドライバを使用することを指定しますが、この場合も性能の劣
化はありません。
Seagate ST-0x (`st0x=')SCSI ホスト用の検出コードは、SCSI BIOS がインストールされているかを調 べ、導入されていなければカードを検出しません。また、BIOS のシグネチャ 文字列が識別できない場合もカードを検出しません。これらの場合、起動時引 数を以下の形式で与える必要があります:
st0x=mem_base,irq
Trantor T128 (`t128=')このカードも NCR5380 チップを使用しています。以下の オプションを受け付けます。
t128=mem_base,irq
Ultrastor SCSI カード (`u14-34f=')このカードには別々の二つのドライバがあることに気をつけてください。
カーネルの設定の際に
u14-34f=iobase1[,iobase2][,iobase3]...[,iobaseN] ドライバは列挙された順番でアドレスを見ていきます。
Western Digital WD7000 カード (`wd7000=')このドライバの wd7000 検出ルーチンは、分かっている BIOS ROM のパターン を探します。また、標準的な設定をいくつか知っています。カードに正しくな い値が設定されている場合や認識できないバージョンの BIOS を使っている場 合は、以下の形式の起動時引数を使用できます:
wd7000=irq,dma,iobase
6.3 起動時引数を取らない SCSI ホストアダプタ現在のところ、以下の SCSI カードは起動時引数を全く使いません。場合によっ ては、必要ならばドライバそのものを編集して値を直接書き込むことが できます。
Adaptec aha1740 (EISA の検出), NCR53c7xx,8xx (PCI, 両方のドライバとも) Qlogic Fast (0x230, 0x330) Qlogic ISP (PCI)
次のページ 前のページ 目次へ |
[ |