246 lines
8.3 KiB
Plaintext
246 lines
8.3 KiB
Plaintext
|
This file describes the floppy driver.
|
||
|
|
||
|
FAQ list:
|
||
|
=========
|
||
|
|
||
|
A FAQ list may be found in the fdutils package (see below), and also
|
||
|
at http://fdutils.linux.lu/FAQ.html
|
||
|
|
||
|
|
||
|
LILO configuration options (Thinkpad users, read this)
|
||
|
======================================================
|
||
|
|
||
|
The floppy driver is configured using the 'floppy=' option in
|
||
|
lilo. This option can be typed at the boot prompt, or entered in the
|
||
|
lilo configuration file.
|
||
|
|
||
|
Example: If your kernel is called linux-2.6.9, type the following line
|
||
|
at the lilo boot prompt (if you have a thinkpad):
|
||
|
|
||
|
linux-2.6.9 floppy=thinkpad
|
||
|
|
||
|
You may also enter the following line in /etc/lilo.conf, in the description
|
||
|
of linux-2.6.9:
|
||
|
|
||
|
append = "floppy=thinkpad"
|
||
|
|
||
|
Several floppy related options may be given, example:
|
||
|
|
||
|
linux-2.6.9 floppy=daring floppy=two_fdc
|
||
|
append = "floppy=daring floppy=two_fdc"
|
||
|
|
||
|
If you give options both in the lilo config file and on the boot
|
||
|
prompt, the option strings of both places are concatenated, the boot
|
||
|
prompt options coming last. That's why there are also options to
|
||
|
restore the default behavior.
|
||
|
|
||
|
|
||
|
Module configuration options
|
||
|
============================
|
||
|
|
||
|
If you use the floppy driver as a module, use the following syntax:
|
||
|
modprobe floppy <options>
|
||
|
|
||
|
Example:
|
||
|
modprobe floppy omnibook messages
|
||
|
|
||
|
If you need certain options enabled every time you load the floppy driver,
|
||
|
you can put:
|
||
|
|
||
|
options floppy omnibook messages
|
||
|
|
||
|
in /etc/modprobe.conf.
|
||
|
|
||
|
|
||
|
The floppy driver related options are:
|
||
|
|
||
|
floppy=asus_pci
|
||
|
Sets the bit mask to allow only units 0 and 1. (default)
|
||
|
|
||
|
floppy=daring
|
||
|
Tells the floppy driver that you have a well behaved floppy controller.
|
||
|
This allows more efficient and smoother operation, but may fail on
|
||
|
certain controllers. This may speed up certain operations.
|
||
|
|
||
|
floppy=0,daring
|
||
|
Tells the floppy driver that your floppy controller should be used
|
||
|
with caution.
|
||
|
|
||
|
floppy=one_fdc
|
||
|
Tells the floppy driver that you have only one floppy controller.
|
||
|
(default)
|
||
|
|
||
|
floppy=two_fdc
|
||
|
floppy=<address>,two_fdc
|
||
|
Tells the floppy driver that you have two floppy controllers.
|
||
|
The second floppy controller is assumed to be at <address>.
|
||
|
This option is not needed if the second controller is at address
|
||
|
0x370, and if you use the 'cmos' option.
|
||
|
|
||
|
floppy=thinkpad
|
||
|
Tells the floppy driver that you have a Thinkpad. Thinkpads use an
|
||
|
inverted convention for the disk change line.
|
||
|
|
||
|
floppy=0,thinkpad
|
||
|
Tells the floppy driver that you don't have a Thinkpad.
|
||
|
|
||
|
floppy=omnibook
|
||
|
floppy=nodma
|
||
|
Tells the floppy driver not to use Dma for data transfers.
|
||
|
This is needed on HP Omnibooks, which don't have a workable
|
||
|
DMA channel for the floppy driver. This option is also useful
|
||
|
if you frequently get "Unable to allocate DMA memory" messages.
|
||
|
Indeed, dma memory needs to be continuous in physical memory,
|
||
|
and is thus harder to find, whereas non-dma buffers may be
|
||
|
allocated in virtual memory. However, I advise against this if
|
||
|
you have an FDC without a FIFO (8272A or 82072). 82072A and
|
||
|
later are OK. You also need at least a 486 to use nodma.
|
||
|
If you use nodma mode, I suggest you also set the FIFO
|
||
|
threshold to 10 or lower, in order to limit the number of data
|
||
|
transfer interrupts.
|
||
|
|
||
|
If you have a FIFO-able FDC, the floppy driver automatically
|
||
|
falls back on non DMA mode if no DMA-able memory can be found.
|
||
|
If you want to avoid this, explicitly ask for 'yesdma'.
|
||
|
|
||
|
floppy=yesdma
|
||
|
Tells the floppy driver that a workable DMA channel is available.
|
||
|
(default)
|
||
|
|
||
|
floppy=nofifo
|
||
|
Disables the FIFO entirely. This is needed if you get "Bus
|
||
|
master arbitration error" messages from your Ethernet card (or
|
||
|
from other devices) while accessing the floppy.
|
||
|
|
||
|
floppy=usefifo
|
||
|
Enables the FIFO. (default)
|
||
|
|
||
|
floppy=<threshold>,fifo_depth
|
||
|
Sets the FIFO threshold. This is mostly relevant in DMA
|
||
|
mode. If this is higher, the floppy driver tolerates more
|
||
|
interrupt latency, but it triggers more interrupts (i.e. it
|
||
|
imposes more load on the rest of the system). If this is
|
||
|
lower, the interrupt latency should be lower too (faster
|
||
|
processor). The benefit of a lower threshold is less
|
||
|
interrupts.
|
||
|
|
||
|
To tune the fifo threshold, switch on over/underrun messages
|
||
|
using 'floppycontrol --messages'. Then access a floppy
|
||
|
disk. If you get a huge amount of "Over/Underrun - retrying"
|
||
|
messages, then the fifo threshold is too low. Try with a
|
||
|
higher value, until you only get an occasional Over/Underrun.
|
||
|
It is a good idea to compile the floppy driver as a module
|
||
|
when doing this tuning. Indeed, it allows to try different
|
||
|
fifo values without rebooting the machine for each test. Note
|
||
|
that you need to do 'floppycontrol --messages' every time you
|
||
|
re-insert the module.
|
||
|
|
||
|
Usually, tuning the fifo threshold should not be needed, as
|
||
|
the default (0xa) is reasonable.
|
||
|
|
||
|
floppy=<drive>,<type>,cmos
|
||
|
Sets the CMOS type of <drive> to <type>. This is mandatory if
|
||
|
you have more than two floppy drives (only two can be
|
||
|
described in the physical CMOS), or if your BIOS uses
|
||
|
non-standard CMOS types. The CMOS types are:
|
||
|
|
||
|
0 - Use the value of the physical 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 - unknown or not installed
|
||
|
|
||
|
(Note: there are two valid types for ED drives. This is because 5 was
|
||
|
initially chosen to represent floppy *tapes*, and 6 for ED drives.
|
||
|
AMI ignored this, and used 5 for ED drives. That's why the floppy
|
||
|
driver handles both.)
|
||
|
|
||
|
floppy=unexpected_interrupts
|
||
|
Print a warning message when an unexpected interrupt is received.
|
||
|
(default)
|
||
|
|
||
|
floppy=no_unexpected_interrupts
|
||
|
floppy=L40SX
|
||
|
Don't print a message when an unexpected interrupt is received. This
|
||
|
is needed on IBM L40SX laptops in certain video modes. (There seems
|
||
|
to be an interaction between video and floppy. The unexpected
|
||
|
interrupts affect only performance, and can be safely ignored.)
|
||
|
|
||
|
floppy=broken_dcl
|
||
|
Don't use the disk change line, but assume that the disk was
|
||
|
changed whenever the device node is reopened. Needed on some
|
||
|
boxes where the disk change line is broken or unsupported.
|
||
|
This should be regarded as a stopgap measure, indeed it makes
|
||
|
floppy operation less efficient due to unneeded cache
|
||
|
flushings, and slightly more unreliable. Please verify your
|
||
|
cable, connection and jumper settings if you have any DCL
|
||
|
problems. However, some older drives, and also some laptops
|
||
|
are known not to have a DCL.
|
||
|
|
||
|
floppy=debug
|
||
|
Print debugging messages.
|
||
|
|
||
|
floppy=messages
|
||
|
Print informational messages for some operations (disk change
|
||
|
notifications, warnings about over and underruns, and about
|
||
|
autodetection).
|
||
|
|
||
|
floppy=silent_dcl_clear
|
||
|
Uses a less noisy way to clear the disk change line (which
|
||
|
doesn't involve seeks). Implied by 'daring' option.
|
||
|
|
||
|
floppy=<nr>,irq
|
||
|
Sets the floppy IRQ to <nr> instead of 6.
|
||
|
|
||
|
floppy=<nr>,dma
|
||
|
Sets the floppy DMA channel to <nr> instead of 2.
|
||
|
|
||
|
floppy=slow
|
||
|
Use PS/2 stepping rate:
|
||
|
" 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."
|
||
|
|
||
|
|
||
|
Supporting utilities and additional documentation:
|
||
|
==================================================
|
||
|
|
||
|
Additional parameters of the floppy driver can be configured at
|
||
|
runtime. Utilities which do this can be found in the fdutils package.
|
||
|
This package also contains a new version of mtools which allows to
|
||
|
access high capacity disks (up to 1992K on a high density 3 1/2 disk!).
|
||
|
It also contains additional documentation about the floppy driver.
|
||
|
|
||
|
The latest version can be found at fdutils homepage:
|
||
|
http://fdutils.linux.lu
|
||
|
|
||
|
The fdutils-5.4 release can be found at:
|
||
|
http://fdutils.linux.lu/fdutils-5.4.src.tar.gz
|
||
|
http://www.tux.org/pub/knaff/fdutils/fdutils-5.4.src.tar.gz
|
||
|
ftp://metalab.unc.edu/pub/Linux/utils/disk-management/fdutils-5.4.src.tar.gz
|
||
|
|
||
|
Reporting problems about the floppy driver
|
||
|
==========================================
|
||
|
|
||
|
If you have a question or a bug report about the floppy driver, mail
|
||
|
me at Alain.Knaff@poboxes.com . If you post to Usenet, preferably use
|
||
|
comp.os.linux.hardware. As the volume in these groups is rather high,
|
||
|
be sure to include the word "floppy" (or "FLOPPY") in the subject
|
||
|
line. If the reported problem happens when mounting floppy disks, be
|
||
|
sure to mention also the type of the filesystem in the subject line.
|
||
|
|
||
|
Be sure to read the FAQ before mailing/posting any bug reports!
|
||
|
|
||
|
Alain
|
||
|
|
||
|
Changelog
|
||
|
=========
|
||
|
|
||
|
10-30-2004 : Cleanup, updating, add reference to module configuration.
|
||
|
James Nelson <james4765@gmail.com>
|
||
|
|
||
|
6-3-2000 : Original Document
|