軟盤驅動程式

常見問題列表:

常見問題列表可在 fdutils 軟體包中找到(見下文),也可在 <https://fdutils.linux.lu/faq.html> 獲取。

LILO 配置選項 (Thinkpad 使用者請閱讀)

軟盤驅動程式透過 LILO 中的“floppy=”選項進行配置。此選項可在啟動提示符處鍵入,或輸入到 LILO 配置檔案中。

示例:如果您的核心名為 linux-2.6.9,請在 LILO 啟動提示符處鍵入以下行(如果您使用的是 Thinkpad):

linux-2.6.9 floppy=thinkpad

您也可以將以下行輸入到 /etc/lilo.conf 中,在 linux-2.6.9 的描述下:

append = "floppy=thinkpad"

可以給出幾個與軟盤相關的選項,例如:

linux-2.6.9 floppy=daring floppy=two_fdc
append = "floppy=daring floppy=two_fdc"

如果您在 LILO 配置檔案和啟動提示符處都提供了選項,則兩處的選項字串會連線起來,啟動提示符處的選項在後。這就是為什麼還有一些選項可以恢復預設行為。

模組配置選項

如果您將軟盤驅動程式用作模組,請使用以下語法:

modprobe floppy floppy="<options>"

示例

modprobe floppy floppy="omnibook messages"

如果您每次載入軟盤驅動程式時都需要啟用某些選項,可以將其放在

options floppy floppy="omnibook messages"

/etc/modprobe.d/ 中的配置檔案裡。

與軟盤驅動程式相關的選項有:

floppy=asus_pci

設定位掩碼,只允許單元 0 和 1。(預設)

floppy=daring

告訴軟盤驅動程式您有一個工作良好的軟盤控制器。這允許更高效、更流暢的操作,但可能在某些控制器上失敗。這可能會加速某些操作。

floppy=0,daring

告訴軟盤驅動程式您的軟盤控制器應謹慎使用。

floppy=one_fdc

告訴軟盤驅動程式您只有一個軟盤控制器。(預設)

floppy=two_fdc / floppy=<address>,two_fdc

告訴軟盤驅動程式您有兩個軟盤控制器。第二個軟盤控制器被假定位於 <address>。如果第二個控制器位於地址 0x370,並且您使用“cmos”選項,則不需要此選項。

floppy=thinkpad

告訴軟盤驅動程式您有一臺 Thinkpad。Thinkpad 使用碟片更換線(disk change line)的反向約定。

floppy=0,thinkpad

告訴軟盤驅動程式您沒有 Thinkpad。

floppy=omnibook / floppy=nodma

告訴軟盤驅動程式不要使用 DMA 進行資料傳輸。HP Omnibook 需要此選項,因為它們的軟盤驅動程式沒有可用的 DMA 通道。如果您經常收到“Unable to allocate DMA memory”訊息,此選項也很有用。事實上,DMA 記憶體需要在物理記憶體中連續,因此更難找到,而無 DMA 緩衝區可以在虛擬記憶體中分配。但是,如果您的 FDC 沒有 FIFO (8272A 或 82072),我不建議使用此選項。82072A 及更高版本則沒問題。您還需要至少 486 處理器才能使用 nodma。如果您使用 nodma 模式,我建議您也將 FIFO 閾值設定為 10 或更低,以限制資料傳輸中斷的數量。

如果您有一個支援 FIFO 的 FDC,如果找不到可 DMA 的記憶體,軟盤驅動程式會自動回退到非 DMA 模式。如果您想避免這種情況,請明確請求“yesdma”。

floppy=yesdma

告訴軟盤驅動程式有可用的 DMA 通道。(預設)

floppy=nofifo

完全停用 FIFO。如果您的乙太網卡(或其他裝置)在訪問軟盤時收到“匯流排主仲裁錯誤”訊息,則需要此選項。

floppy=usefifo

啟用 FIFO。(預設)

floppy=<threshold>,fifo_depth

設定 FIFO 閾值。這主要在 DMA 模式下相關。如果閾值較高,軟盤驅動程式可容忍更多中斷延遲,但會觸發更多中斷(即對系統其他部分施加更多負載)。如果閾值較低,中斷延遲也應較低(處理器更快)。較低閾值的好處是中斷更少。

要調整 FIFO 閾值,請使用“floppycontrol --messages”開啟過/欠載訊息。然後訪問軟盤。如果您收到大量的“過/欠載 - 重試”訊息,則 FIFO 閾值過低。嘗試使用更高的值,直到只偶爾出現過/欠載。在進行此調整時,將軟盤驅動程式編譯為模組是個好主意。事實上,這允許在不每次測試都重啟機器的情況下嘗試不同的 FIFO 值。請注意,每次重新插入模組時都需要執行“floppycontrol --messages”。

通常,不需要調整 FIFO 閾值,因為預設值 (0xa) 是合理的。

floppy=<drive>,<type>,cmos

將 <drive> 的 CMOS 型別設定為 <type>。如果您有兩個以上軟盤驅動器(物理 CMOS 中只能描述兩個),或者您的 BIOS 使用非標準 CMOS 型別,則此項是強制性的。CMOS 型別為:

0

使用物理 CMOS 的值

1

5 1/4 DD

2

5 1/4 HD

3

3 1/2 DD

4

3 1/2 HD

5

3 1/2 ED

6

3 1/2 ED

16

未知或未安裝

(注意:ED 驅動器有兩種有效型別。這是因為 5 最初選擇表示軟盤“磁帶”,6 表示 ED 驅動器。AMI 忽略了這一點,並使用 5 表示 ED 驅動器。這就是為什麼軟盤驅動程式同時處理這兩種型別。)

floppy=unexpected_interrupts

收到意外中斷時列印警告訊息。(預設)

floppy=no_unexpected_interrupts / floppy=L40SX

收到意外中斷時不列印訊息。某些影片模式下 IBM L40SX 筆記型電腦需要此選項。(影片和軟盤之間似乎存在互動。意外中斷隻影響效能,可以安全忽略。)

floppy=broken_dcl

不使用碟片更換線(disk change line),而是在每次重新開啟裝置節點時假定碟片已更換。某些碟片更換線損壞或不支援的機器上需要此選項。這應被視為權宜之計,因為它會導致不必要的快取重新整理,從而降低軟盤操作效率,並使其稍微更不可靠。如果您有任何 DCL 問題,請檢查您的線纜、連線和跳線設定。然而,已知一些舊驅動器和一些筆記型電腦沒有 DCL。

floppy=debug

列印除錯訊息。

floppy=messages

為某些操作列印資訊性訊息(碟片更換通知、過載和欠載警告以及自動檢測警告)。

floppy=silent_dcl_clear

使用噪音較小的方式清除碟片更換線(不涉及尋道)。“daring”選項隱含此功能。

floppy=<nr>,irq

將軟盤 IRQ 設定為 <nr> 而不是 6。

floppy=<nr>,dma

將軟盤 DMA 通道設定為 <nr> 而不是 2。

floppy=slow

使用 PS/2 步進速率

PS/2 floppies have much slower step rates than regular floppies.
It's been recommended that take about 1/4 of the default speed
in some more extreme cases.

支援工具和附加文件:

軟盤驅動程式的其他引數可在執行時配置。執行此操作的工具可在 fdutils 軟體包中找到。此軟體包還包含一個新版本的 mtools,它允許訪問大容量磁碟(在 3 1/2 高密度磁碟上可達 1992K!)。它還包含有關軟盤驅動程式的附加文件。

最新版本可在 fdutils 主頁找到:

fdutils 釋出版可在以下地址找到:

報告軟盤驅動程式問題

如果您對軟盤驅動程式有疑問或要報告錯誤,請傳送郵件至 Alain.Knaff@poboxes.com。如果您在 Usenet 上發帖,請優先使用 comp.os.linux.hardware。由於這些組的流量相當大,請務必在主題行中包含“floppy”(或“FLOPPY”)字樣。如果報告的問題在掛載軟盤時發生,請務必在主題行中同時提及檔案系統型別。

在傳送郵件/釋出任何錯誤報告之前,請務必閱讀常見問題!

Alain

更改日誌

10-30-2004 :

清理、更新、新增模組配置參考。James Nelson <james4765@gmail.com>

6-3-2000 :

原始文件