?? bootprompt-howto-4.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
<TITLE>The Linux BootPrompt-HowTo 中譯版: 小型電腦智慧介面(SCSI)周邊的啟動參數</TITLE>
<LINK HREF="BootPrompt-HOWTO-5.html" REL=next>
<LINK HREF="BootPrompt-HOWTO-3.html" REL=previous>
<LINK HREF="BootPrompt-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="BootPrompt-HOWTO-5.html">Next</A>
<A HREF="BootPrompt-HOWTO-3.html">Previous</A>
<A HREF="BootPrompt-HOWTO.html#toc4">Contents</A>
<HR>
<H2><A NAME="s4">4. 小型電腦智慧介面(SCSI)周邊的啟動參數</A></H2>
<P>
<P>這一節包含用來傳遞有關小型電腦智慧介面(SCSI)卡(host adapters)及
SCSI 設備之資訊的啟動參數說明。
<P>
<H2><A NAME="ss4.1">4.1 中層驅動程式的參數</A>
</H2>
<P>
<P>中層驅動程式處理像磁碟,光碟及磁帶等等而不深入介面卡的特性。
<P>
<H3>最大偵測邏輯號碼(LUN)數(`max_scsi_luns=')</H3>
<P>
<P>每個 SCSI 設備本身里面都可以包含一個‘子設備’號碼。
最常見的例子是那些一次可以放好幾張片子的新型 SCSI 光碟機。
每張光碟由指定之設備的‘邏輯號碼(Logical Unit Number: LUN)’定址。
但大部份的設備,像硬碟機,磁帶機等等都是單一個的設備,
而邏輯號碼設為零。
<P>只有一個邏輯編號的設備若軔體寫得不好就會出問題。
某些設計不良的
SCSI
設備(舊的以及就那麼巧被你碰上的新設備)無法接受不為零的邏輯編號偵測。
它們會掛在那,而且有可能把整個 SCSI 匯流排(bus)都帶著一起陪葬。
<P>較新的核心有一個配置選項可以讓你設定所要偵測之最大邏輯編號。
預設只偵測到邏輯編號零以必免上述問題。
<P>在啟動時指定要偵測的邏輯號碼可以鍵入 `max_scsi_luns=n' 作為啟動參數,
其中 n 是介於壹到捌的數字。
要避免上述問題可以使用 n=1 以避免這些個爛設備不高興。
<P>
<H3>SCSI 磁帶驅動程式的參數(`st=')</H3>
<P>
<P>SCSI 磁帶驅動程式的某些啟動時期配置可以藉由使用下列參數達成:
<P>
<HR>
<PRE>
st=buf_size[,write_threshold[,max_bufs]]
</PRE>
<HR>
<P>前面兩個數字的單位是千位元組。預設的 <CODE>buf_size</CODE> 是 32kB。
最多可以指定為 16384kB,大的荒謬。
<CODE>write_threshold</CODE> 緩沖區確認送至磁帶的值,預設為 30kB。
最大緩沖區個數視偵測到的裝置數量而定,預設值為二。使用□例如:
<P>
<HR>
<PRE>
st=32,30,2
</PRE>
<HR>
<P>完整的細節可以在 <CODE>README.st</CODE> 檔案中找到,
位於核心原始程式碼結構(tree)的 <CODE>scsi</CODE> 目錄里。
<P>
<H2><A NAME="ss4.2">4.2 SCSI 卡的參數</A>
</H2>
<P>
<P>本節的常見標記:
<P><CODE>iobase</CODE> --
SCSI 卡進駐的第一個輸出入埠。
以十六進制表示法指定,而且通常落在 <CODE>0x200</CODE> 到 <CODE>0x3ff</CODE> 之間。
<P><CODE>irq</CODE> --
介面卡設定使用的硬體中斷。
其可用的值與介面卡有關,
但通常是 5, 7, 9, 10, 11, 12, 以及 15。其它值通常由一般的周邊設備使用,
像是 IDE 硬碟,軟碟,串列埠等等。
<P><CODE>dma</CODE> --
介面卡使用的直接記憶體存取(Direct Memory Access:DMA)通道。
典型只用於具匯流排主控(bus-mastering)能力的卡。
PCI 及 VLB 介面卡本即具匯流排主控,且不需要任何 ISA 直接記憶體存取通道。
<P><CODE>scsi-id</CODE> --
在 SCSI 匯流排上,介面卡用來識別它本身的識別號碼。
只有某些介面卡允許你改變這個值,大部份則都內定且永久不變。
通常預設值是七,但西捷(Seagate)以及 Future Domain TMC-950 卡使用六。
<P><CODE>parity</CODE> --
SCSI 介面卡是否期望所連接的設備交換資訊時提供同位檢查碼。
指定一表示打開同位檢查,零則為關閉。
同樣地,并非所有的介面卡都支援選用同位檢查這個啟動參數。
<P>
<H3>Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI (`aha152x=')</H3>
<P>
<P>aha 編號對照卡而 aic 編號對照這些卡上實際的 SCSI 晶片,
包含 Soundblaster-16 SCSI。
<P>偵測這些 SCSI 卡的程式碼尋找從卡上安裝進來的基本輸出入系統,
如果沒有,就找不到你的卡。然後你就得使用這種型式的啟動參數:
<P>
<HR>
<PRE>
aha152x=iobase[,irq[,scsi-id[,reconnect[,parity]]]]
</PRE>
<HR>
<P>注意,如果此驅動程式編譯時有打開錯誤偵測,則可以指定第六個值以設定偵錯層級。
<P>所有參數都如本節最前面所述,而 <CODE>reconnect</CODE>
值如果不為零則允許設備離線/重新連線。
使用□例如下:
<P>
<HR>
<PRE>
aha152x=0x340,11,7,1
</PRE>
<HR>
<P>注意,參數必須依序指定,意謂如果你想指定同位檢查,
那麼你也得指定 iobase, irq, scsi-id 以及 reconnect 值。
<P>
<H3>Adaptec aha154x (`aha1542=')</H3>
<P>
<P>這些是 aha154x 系列的卡。
aha1542 系列的卡板子上有一個 i82077 軟碟控制器,而 aha1540 系列的卡沒有。
<P>這些卡是匯流排主控卡,而且有可以設定”公平性”的參數,用來與其它設備共用匯流排。
其啟動參數看起來像下面這樣。
<P>
<HR>
<PRE>
aha1542=iobase[,buson,busoff[,dmaspeed]]
</PRE>
<HR>
<P>可用的 <CODE>iobase</CODE> 值通常是:
<CODE>0x130, 0x134, 0x230, 0x234, 0x330, 0x334</CODE> 其中之一。
仿(Clone)卡可能允許使用其它值。
<P><CODE>buson, busoff</CODE>
的值是該卡占用工業標準架構(ISA)匯流排的毫秒數(microsecond)。
預設值是 11us on, and 4us off,如此其它的卡
(像是工業標準架構介面的 LANCE
乙太網路卡)就有機會存取工業標準架構匯流排。
<P><CODE>dmaspeed</CODE> 的值是進行直接記憶體存取的速率(以百萬位元組每秒為單位)。
預設為 5MB/s。
新版的卡可以讓你從軟體配置(soft-configuration)中選擇這個值,
較舊的卡則使用跳接(jumpers)。假設你的主機板夠力的話可以使用 10MB/s。
如果使用 5MB/s 以上的值請小心試驗。
<P>
<H3>Adaptec aha274x, aha284x, aic7xxx (`aic7xxx=')</H3>
<P>
<P>這些卡可以接受此種格式的參數。
<P>
<HR>
<PRE>
aic7xxx=extended,no_reset
</PRE>
<HR>
<P>如果 <CODE>extended</CODE>
的值不為零則表示打開對大容量磁碟的延伸轉換(extended translation)。
<CODE>no_reset</CODE> 值如果不為零則是告訴驅動程式啟動時,
設定介面卡的時候不要重置 SCSI 匯流排。
<P>
<H3>AdvanSys SCSI Host Adaptors (`advansys=')</H3>
<P>
<P>AdvanSys 驅動程式最多能接受四個輸出入位址以偵測 AdvanSys SCSI
卡。注意,這些值(若使用的話)完全不會影響 EISA 或是 PCI 的
偵測。它們僅用來偵測 ISA 以及 VLB 介面卡。還有,如果此驅動
程式編譯時有打開錯誤偵測的話,那麼錯誤偵測的輸出輸出層級可以
藉由加入 0xdeb[0-f] 參數來設定。
<P>
<H3>Always IN2000 介面卡 (`in2000=')</H3>
<P>
<P>跟其它 SCSI 卡的啟動參數不同,
IN2000 驅動程式使用由美國標準交換碼(ASCII)
所組成的前置(prefix)字串代表大部份的整數參數。
這是一份支援列表:
<P>ioport:addr --
其中 addr 是卡(通常沒有唯讀記憶體)的輸出入位址。
<P>noreset --
沒有選用的參數。這避免啟動時期的 SCSI 匯流排重置動作。
<P>nosync:x --
x 是個位元遮罩(bitmask),其中前面七個位元對應到七個 SCSI
設備
(第零個位元是第零號設備,馀類推)。
<P>設定其中的位元以避免對該設備進行同步(sync)協商(negotiation)。
驅動程式預設是關閉所有設備之同步。
<P>period:ns --
ns 是以奈秒(nanoseconds)為單位之最小 SCSI 資料傳輸時間區段
(period)。預設為 500; 可接受的值是 250 到 1000。
<P>disconnect:x --
x = 0 即絕不允許離線,2 即一定可以離線。
x = 1 則為’適當’時可離線,這是預設值,
而且是一般情況的最佳選擇。
<P>debug:x
如果定義了 `DEBUGGING_ON' 則 x
就是設定不同錯誤偵測輸出的位元遮罩
-參見 in2000.h 中定義的 DB_xxx。
<P>proc:x --
如果定義了 `PROC_INTERFACE' 則 x 就是決定 /proc
介面運作方式及功能的位元遮罩-參見 in2000.h 中定義的
PR_xxx。
<P>下面列出一些使用□例:
<P>
<HR>
<PRE>
in2000=ioport:0x220,noreset
in2000=period:250,disconnect:2,nosync:0x03
in2000=debug:0x1e
in2000=proc:3
</PRE>
<HR>
<P>
<H3>使用 AMD AM53C974 的硬體 (`AM53C974=')</H3>
<P>
<P>與其它驅動程式不同,這一個不使用啟動參數來傳達輸出入埠,
硬體中斷或直接記憶體存取通道。
(既然 AMD53C974 是個 PCI 設備,其實也不需要作這些設定。)
取而代之的是用來傳達介面卡與設備間傳輸模式與傳輸率的參數。
這最好用□例來解釋:
<P>
<HR>
<PRE>
AM53C974=7,2,8,15
</PRE>
<HR>
<P>這會被解釋成這樣:‘對於 SCSI-ID 7 的控制器與 SCSI-ID 2 的設備間之通訊,
使用最大 8MHz 之同步模式傳輸率。應協商 15 位元組的偏移值。’
詳細資料可在 <CODE>linux/drivers/scsi/README.AM53C974</CODE> 檔案里找到。
<P>
<H3>BusLogic SCSI 介面卡與 v1.2 的核心 (`buslogic=')</H3>
<P>
<P>在舊版的核心中, buslogic 驅動程式只接受一個參數,就是輸出入位址。
它能接受下列值:<CODE>0x130, 0x140, 0x230, 0x234, 0x330, 0x334</CODE>。
<P>
<H3>BusLogic SCSI 介面卡與 v2.x 的核心 (`BusLogic=')</H3>
<P>
<P>在 v2.x 核心中,BusLogic 驅動程式接受許多參數。
(注意上面的大小寫;是大寫的 B 以及 L!!! )。
下面的細節是直接從 v2.0 核心中的 Leonard N. Zubkoff's 驅動程式拿過來的。
<P>這個 BusLogic 驅動程式的核心命令列是由 "BusLogic" 驅動程式識別字,
加上各個以逗號格開的選用性整數序列,後面跟著各個選用性的字串序列所組成。
每行命令列都用於一張 BusLogic 卡,
在使用多張 BusLogic 卡的系統上可以使用多個命令列來設定。
<P>第一個整數指定介面卡所在的 I/O 位址。如果不指定則預設值為零,
表示把這個參數設為預設偵測順序中找到的第一張 BusLogic 卡。
如果在命令列上指定了任何的 I/O 位址參數,預設偵測順序就會被忽略。
<P>第二個整數指定用於支援佇列運作(Tagged Queuing)的目標設備之佇列深度。
佇列深度是容許同時送出的 SCSI 指令數。如果沒有指定則預設值為零,
表示使用根據介面卡的總佇列深度及數目,種類,速度,
以及偵測目標設備的能力所自動判斷的值。
對於需要使用 ISA 錯誤緩沖區(Bounce Buffers)的介面卡,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -