软盘驱动¶
常见问题列表:¶
常见问题列表可以在 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 对磁盘更改线使用反向约定。
- floppy=0,thinkpad
告诉软盘驱动程序您没有 Thinkpad。
- floppy=omnibook / floppy=nodma
告诉软盘驱动程序不要使用 Dma 进行数据传输。这在 HP Omnibooks 上是必需的,因为它们没有可用于软盘驱动程序的工作 DMA 通道。如果您经常收到“无法分配 DMA 内存”消息,此选项也很有用。事实上,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
不要使用磁盘更改线,而是在每次重新打开设备节点时都假设磁盘已更改。在某些磁盘更改线损坏或不支持的设备上需要这样做。这应被视为一种临时措施,因为它会导致不必要的缓存刷新,从而降低软盘操作效率,并且稍微不可靠。如果出现任何 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”)一词。如果报告的问题发生在挂载软盘时,请务必在主题行中也提及文件系统的类型。
在发送/发布任何错误报告之前,请务必阅读FAQ!
Alain
更新日志¶
- 10-30-2004 :
清理,更新,添加模块配置的参考。 James Nelson <james4765@gmail.com>
- 6-3-2000 :
原始文档