summaryrefslogtreecommitdiffstats
path: root/upstream/debian-unstable/man1/floppycontrol.1
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/debian-unstable/man1/floppycontrol.1')
-rw-r--r--upstream/debian-unstable/man1/floppycontrol.1663
1 files changed, 663 insertions, 0 deletions
diff --git a/upstream/debian-unstable/man1/floppycontrol.1 b/upstream/debian-unstable/man1/floppycontrol.1
new file mode 100644
index 00000000..c2ad04ae
--- /dev/null
+++ b/upstream/debian-unstable/man1/floppycontrol.1
@@ -0,0 +1,663 @@
+.TH floppycontrol 1 "27Jan21" fdutils-5.6
+.SH Name
+floppycontrol - floppy driver configuration utility
+'\" t
+.de TQ
+.br
+.ns
+.TP \\$1
+..
+
+.tr \(is'
+.tr \(if`
+.tr \(pd"
+
+.SH Note
+This manpage has been automatically generated from fdutils's texinfo
+documentation. However, this process is only approximative, and some
+items, such as cross-references, footnotes and indices are lost in this
+translation process. Indeed, these items have no appropriate
+representation in the manpage format. Moreover, only the items specific
+to each command have been translated, and the general information about
+fdutils has been dropped in the manpage version. Thus I strongly advise
+you to use the original texinfo doc.
+.TP
+* \ \
+To generate a printable copy from the texinfo doc, run the following
+commands:
+
+.nf
+.ft 3
+.in +0.3i
+ ./configure; make dvi; dvips fdutils.dvi
+.fi
+.in -0.3i
+.ft R
+
+\&\fR
+.TP
+* \ \
+To generate a HTML copy, run:
+
+.nf
+.ft 3
+.in +0.3i
+ ./configure; make html
+.fi
+.in -0.3i
+.ft R
+
+\&\fRA pre-made HTML can be found at:
+\&\fR\&\f(CW\(ifhttp://www.tux.org/pub/knaff/fdutils\(is\fR
+.TP
+* \ \
+To generate an info copy (browsable using emacs' info mode), run:
+
+.nf
+.ft 3
+.in +0.3i
+ ./configure; make info
+.fi
+.in -0.3i
+.ft R
+
+\&\fR
+.PP
+The texinfo doc looks most pretty when printed or as HTML. Indeed, in
+the info version certain examples are difficult to read due to the
+quoting conventions used in info.
+.SH Description
+.PP
+
+.nf
+.ft 3
+.in +0.3i
+\&\fR\&\f(CWfloppycontrol [\fR\&\f(CW\-p] [\fR\&\f(CW\-\-pollstate] [\fR\&\f(CW\-\-printfdstate]
+[\fR\&\f(CW\-a \fIoperation\-abort\-threshold\fR\&\f(CW] [\fR\&\f(CW\-c \fIread\-track\-threshold\fR\&\f(CW]
+[\fR\&\f(CW\-r \fIrecalibrate\-threshold\fR\&\f(CW] [\fR\&\f(CW\-R \fIreset\-threshold\fR\&\f(CW]
+[\fR\&\f(CW\-e \fIreporting\-threshold\fR\&\f(CW] [\fR\&\f(CW\-f] [\fR\&\f(CW\-x] [\fR\&\f(CW\-d \fIdrive\fR\&\f(CW][\fR\&\f(CW\-F] [\fR\&\f(CW\-T]
+[\fR\&\f(CW\-reset \fIcondition\fR\&\f(CW] [\fR\&\f(CW\-\-debug] [\fR\&\f(CW\-\-nodebug] [\fR\&\f(CW\-\-messages]
+[\fR\&\f(CW\-\-nomessages] [\fR\&\f(CW\-\-broken_dcl] [\fR\&\f(CW\-\-working_dcl] [\fR\&\f(CW\-\-inverted_dcl]
+[\fR\&\f(CW\-\-no_inverted_dcl] [\fR\&\f(CW\-\-silent_dcl_clear] [\fR\&\f(CW\-\-noisy_dcl_clear]
+[\fR\&\f(CW\-c\fIcmos\-type\fR\&\f(CW] [\fR\&\f(CW\-hlt \fIhlt\fR\&\f(CW] [\fR\&\f(CW\-hut \fIhut\fR\&\f(CW] [\fR\&\f(CW\-srt \fIsrt\fR\&\f(CW] [\fR\&\f(CW\-o \fIspindown\fR\&\f(CW]
+[\fR\&\f(CW\-u \fIspinup\fR\&\f(CW] [\fR\&\f(CW\-s \fIselect\-delay\fR\&\f(CW] [\fR\&\f(CW\-rps \fIrotations\-per\-second\fR\&\f(CW]
+[\fR\&\f(CW\-O \fIspindown\-offset\fR\&\f(CW] [\fR\&\f(CW\-track \fImax\-tracks\fR\&\f(CW] [\fR\&\f(CW\-timeout \fIseconds\fR\&\f(CW]
+[\fR\&\f(CW\-C \fIcheck\-interval\fR\&\f(CW] [\fR\&\f(CW\-n \fInative\-format\fR\&\f(CW]
+[\fR\&\f(CW\-autodetect \fIautodetection\-sequence\fR\&\f(CW] [\fR\&\f(CW\-P] [\fR\&\f(CW\-\-clrwerror]
+[\fR\&\f(CW\-\-printwerror] [\fR\&\f(CW\-h]
+.fi
+.in -0.3i
+.ft R
+
+\&\fR
+.PP
+The \fR\&\f(CWfloppycontrol\fR program is used to configure the floppy driver.
+.PP
+.SH General\ Options
+.IP
+.TP
+\&\fR\&\f(CW\-h\fR\
+.TQ
+\&\fR\&\f(CW\-\-help\fR
+Print a help screen.
+.TP
+\&\fR\&\f(CW\-d\ \fIdrive\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-drive\ \fI\ drive\fR\&\f(CW\fR
+Selects the drive to configure. The default is drive 0
+(\fR\&\f(CW\(if/dev/fd0\(is\fR).
+.PP
+.SH One\ time\ actions
+.PP
+The following \fR\&\f(CWfloppycontrol\fR options don't set a configuration
+parameter, but perform a one-time action. They are available to anybody
+who has write access to the drive
+.TP
+\&\fR\&\f(CW\-f\ \ \fR\
+.TQ
+\&\fR\&\f(CW\-\-flush\fR
+Flushes (throws away) the dirty data buffers associated with this drive.
+.TP
+\&\fR\&\f(CW\-x\ \ \fR\
+.TQ
+\&\fR\&\f(CW\-\-eject\fR
+Ejects the disk out of the drive (Sparc). The dirty buffers are first
+committed to disk before ejecting it. Fails if the disk is mounted.
+.TP
+\&\fR\&\f(CW\-\-reset\ \fI\ condition\fR\&\f(CW\fR\
+Resets the FDC under
+\&\fIcondition\fR . Condition may be one of the following:
+.RS
+.TP
+\&\fR\&\f(CW0\fR\
+resets the FDC only if a reset is needed anyways,
+.TP
+\&\fR\&\f(CW1\fR\
+resets the FDC
+also if a raw command has been performed since the last reset, and
+.TP
+\&\fR\&\f(CW2\ \fR\
+resets the FDC unconditionally.
+.RE
+.IP
+This command may be needed after some failed raw commands
+(see section fdrawcmd).
+.IP
+.TP
+\&\fR\&\f(CW\-F\fR\
+.TQ
+\&\fR\&\f(CW\-\-formatend\fR
+Issues an end format ioctl. This might be needed after exiting a
+\&\fR\&\f(CWfdformat\fR in an unclean way. \fR\&\f(CWsuperformat\fR is not subject to
+this.
+.PP
+.SH Printing\ current\ settings
+.IP
+.TP
+\&\fR\&\f(CW\-T\fR\
+.TQ
+\&\fR\&\f(CW\-\-type\fR
+Print out the drive name of a floppy device. This is used by the
+\&\fR\&\f(CWMAKEFLOPPIES\fR script. The drive name is a letter (describing the
+drive type) followed by the capacity of the format in bytes. The letter
+is E for 3.5 ED drives, H for 3.5 HD drives, D for 3.5 DD drives, h for
+5.25 HD drives and d for 5.25 DD drives. The drive type letter
+corresponds to the oldest drive type supporting the format of this
+device node (not necessarily the type of the drive referred by this
+node.) For the generic format nodes (/dev/fd0 et al.) the name of
+"native format" of the drive is printed, and for the default formats, if
+a generic format has been redefined, its name becomes \fR\&\f(CW(null)\fR.
+.TP
+\&\fR\&\f(CW\-p\fR\
+.TQ
+\&\fR\&\f(CW\-\-print\fR
+Prints out the configuration of the drive. The names of the various
+fields are the same as the names of the option to set them, see below.
+.TP
+\&\fR\&\f(CW\-P\fR\
+.TQ
+\&\fR\&\f(CW\-\-printstate\fR
+Prints out the cached internal state of the driver. The first line lists
+various attributes about the disk:
+.RS
+.TP
+\&\fR\&\f(CWdrive\ present\fR\
+.TQ
+\&\fR\&\f(CWdisk\ present\fR
+.TQ
+\&\fR\&\f(CWdisk\ writable\fR
+These are only updated when the drive is accessed.
+.TP
+\&\fR\&\f(CWspinup\fR\
+is the time when the motor became switched on for the last time.
+.TP
+\&\fR\&\f(CWselect\fR\
+is the time when the drive became selected for the last time
+.TP
+\&\fR\&\f(CWfirst_read\fR\
+is the time when the first read request after the last spin up
+completed.
+.TP
+\&\fR\&\f(CWprobed_fmt\fR\
+is the index of the autodetected format in the autodetection
+sequence for this drive.
+.TP
+\&\fR\&\f(CWcylinder\fR\
+is the cylinder where the drive head currently sits. If this number is negative, it has the following meaning:
+.RS
+.TP
+* \ \
+\-1 means that the driver doesn't know, but the controller does (a seek
+command must be issued).
+.TP
+* \ \
+\-2 means that the controller doesn't know either, but is sure that it
+not beyond the 80th track. The drive needs a recalibration.
+.TP
+* \ \
+\-3 means that the head may be beyond the 80th track. The drive needs
+two successive recalibrations, because at each recalibration, the
+controller only issues 80 move head commands per recalibration.
+.RE
+.TP
+\&\fR\&\f(CWmaxblock\fR\
+is the highest block number that has been read.
+.TP
+\&\fR\&\f(CWmaxcylinder\fR\
+is a boolean which is set when a sector that is not on cylinder 0/head 0
+has been read. These are used for smart invalidation of the buffer
+cache on geometry change. The buffer cache of the drive is only
+invalidated on geometry change when this change actually implies that a
+block that has already been read changes position. This optimization is
+useful for mtools which changes the geometry after reading the boot
+sector.
+.TP
+\&\fR\&\f(CWgeneration\fR\
+is roughly the number of disk changes noticed since boot. Disk changes
+are noticed if the disk is actually changed, or if a flush command is
+issued and for both cases if any I/O to/from the disk occurs. (i.e. if
+you insert several disks, but don't do any I/O to them, the generation
+number stays the same.)
+.TP
+\&\fR\&\f(CWrefs\fR\
+is number of open file descriptors for this drive. It is always at
+least one, because floppycontrol's file descriptor is counted too.
+.TP
+\&\fR\&\f(CWdevice\fR\
+is format type (as derived from the minor device number) which is
+currently being used.
+.TP
+\&\fR\&\f(CWlast_checked\fR\
+is date (in jiffies) when the drive was last checked for a disk
+change, and a disk was actually in the drive.
+.RE
+.IP
+.TP
+\&\fR\&\f(CW\-\-pollstate\fR\
+Polls the drive and then prints out the internal state of the
+driver.(\fR\&\f(CW\-\-Printstate\fR only prints out the cached information
+without actually polling the drive for a disk change.)
+.TP
+\&\fR\&\f(CW\-\-printfdcstate\fR\
+Prints out the state of the controller where the target drive is
+attached to.
+.RS
+.TP
+\&\fR\&\f(CWspec1\fR\
+.TQ
+\&\fR\&\f(CWspec2\fR
+are the current values of those registers.
+.TP
+\&\fR\&\f(CWrate\fR\
+is current data transfer rate
+.TP
+\&\fR\&\f(CWrawcmd\fR\
+is true if a raw command has been executed since the last reset. If this
+is the case, a reset will be triggered when a drive on the same FDC is
+next opened.
+.TP
+\&\fR\&\f(CWdor\fR\
+is the value of the digital output register. The 4 high bits are a bit
+mask describing which drives are spinning, the 2 low bits describe the
+selected drive, bit 2 is used to reset the FDC, and bit 3 describes
+whether this FDC has hold of the interrupt and the DMA. If you have two
+FDCs, bit 3 is only set on one of them.
+.TP
+\&\fR\&\f(CWversion\fR\
+is the version of the FDC. See \fR\&\f(CW\(iflinux/include/linux/fdreg.h\(is\fR for a
+listing of the FDC version numbers.
+.TP
+\&\fR\&\f(CWreset\fR\
+is true if a reset needs to be issued to the FDC before processing the
+next request.
+.TP
+\&\fR\&\f(CWneed_configure\fR\
+is true if this FDC needs configuration by the \fR\&\f(CWFD_CONFIGURE\fR
+command.
+.TP
+\&\fR\&\f(CWhas_fifo\fR\
+is set if the FDC understands the \fR\&\f(CWFD_CONFIGURE\fR command.
+.TP
+\&\fR\&\f(CWperp_mode\fR\
+describes the perpendicular mode of this FDC. 0 is non-perpendicular mode,
+2 is HD perpendicular mode, 3 is ED perpendicular mode, and 1 is unknown.
+.TP
+\&\fR\&\f(CWaddress\fR\
+is the address of the first I/O port of the FDC. Normally, this is
+0x3f0 for the first FDC and 0x370 for the second.
+.RE
+.PP
+.SH Drive\ type\ configuration\ and\ autodetection
+.PP
+The following options handle the different available drive types, such
+as double density vs. high density vs. extra density drives, and 5 1/4
+drives vs 3 1/2 drives. Usually the drive type is stored in a
+non-volatile memory, called CMOS, under the form of an integer ranging
+from 1 to 6.
+.PP
+Different drive types are able to handle and autodetect different
+formats (different autodetection lists). They also have different
+"native format name". The native format is the "usual" format with the
+highest capacity supported by the drive. (For example 720KB on a double
+density 3 1/2 drive, and 1.2MB on a high density 5 1/4 drive.)
+.PP
+These settings are only changeable by the super user.
+.TP
+\&\fR\&\f(CW\-c\ \fIcmos\-type\fR\&\f(CW\fR\
+.TQ
+\&\fR\&\f(CW\-\-cmos\ \fI\ cmos\-type\fR\&\f(CW\fR
+Set the virtual CMOS type of the floppy drive. This is useful if
+.RS
+.TP
+* \ \
+the physical CMOS type is wrong (this may happen with BIOSes
+which use a non-standard mapping),
+.TP
+* \ \
+you have more than two drives
+(the physical CMOS may only describe up to two drives).
+.TP
+* \ \
+you have a BIOS that allows swapping drives A: and B: for DOS.
+.RE
+
+Right now, this CMOS parameter is not used by the kernel, except for
+feeding it back to other applications (for instance \fR\&\f(CWsuperformat\fR,
+\&\fR\&\f(CWfloppymeter\fR or \fR\&\f(CWMAKEFLOPPIES\fR). It is also possible to
+supply a virtual CMOS type with the \fR\&\f(CWcmos\fR boot option
+(see section Boottime configuration). If possible, I recommend you use the
+boot option, rather than \fR\&\f(CWfloppycontrol\fR, because the boot option
+also sets any parameters derived from the CMOS type, such as the
+autodetection list and the native format, whereas \fR\&\f(CWfloppycontrol\fR
+does not.
+.TP
+\&\fR\&\f(CW\-A\ \ \fIautodetect\-seq\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-autodetect\ \fI\ autodetect\-seq\fR\&\f(CW\fR
+Set the autodetection sequence (see section Autodetection) The autodetection
+sequence is a comma-separated list of at most eight format
+descriptors. Each format descriptor is a format number optionally
+followed by the letter \fR\&\f(CWt\fR. For drive 0, the format number is the
+minor device number divided by 4. The autodetection sequence is used by
+the driver to find out the format of a newly inserted disk. The formats
+are tried one after the other, and the first matching format is
+retained. To test the format, the driver tries to read the first sector
+on the first track on the first head when \fR\&\f(CWt\fR is not given, or the
+whole first track when \fR\&\f(CWt\fR is given. Thus, autodetection cannot
+detect the number of tracks. However, this information is contained in
+the boot sector, which is now accessible. The boot sector can then be
+used by mtools to configure the correct number of tracks.
+.IP
+Example:
+
+.nf
+.ft 3
+.in +0.3i
+7,4,24t,25
+.fi
+.in -0.3i
+.ft R
+
+\&\fRmeans to try out the formats whose minor device numbers are 28 (1.44M),
+16 (720KB), 96 (1.76MB), and 100 (1.92MB), in this order. For the 1.76MB
+format, try to read the whole track at once.
+.IP
+Reading the whole track at once allows you to distinguish between two
+formats which differ only in the number of sectors. (The format with the
+most sectors must be tried first.) If you use mtools, you do not need this feature, as mtools can figure out
+the number of sectors without any help from the floppy driver, by
+looking at the boot sector.
+.IP
+Reading the whole track at once may also speed up the first read by 200
+milliseconds. However, if, on the other hand, you try to read a disk
+which has less sectors than the format, you lose some time.
+.IP
+I suggest that you put the most often used format in the first place
+(barring other constraints), as each format that is tried out takes
+400 milliseconds.
+.TP
+\&\fR\&\f(CW\-n\ \fInative\-format\fR\&\f(CW\fR\
+.TQ
+\&\fR\&\f(CW\-\-native_format\ \fI\ native\-format\fR\&\f(CW\fR
+Set the native format of this drive. The native format of a drive is the
+highest standard format available for this drive. (Example: For a 5 1/4
+HD drive it is the usual 1200K format.) This is format is used to make
+up the format name for the generic device (which is the name of the
+native format). This drive name is read back from the kernel by the
+\&\fR\&\f(CWMAKEFLOPPIES\fR script which uses it to decide which device nodes to
+create.
+.PP
+.SH Configuration\ of\ the\ disk\ change\ line
+.TP
+\&\fR\&\f(CW\-\-broken_dcl\fR\
+Assumes that the disk change line of the drive is broken. If this is
+set, disk changes are assumed to happen whenever the device node is
+first opened. The physical disk change line is ignored.
+.IP
+This option should be used if disk changes are either not detected at
+all, or if disk changes are detected when the disk was actually not
+changed. If this option fixes the problem, I'd recommend that you try to
+trace the root cause of the problem. Indeed, this options results in
+reduced performance due to spurious cache flushes.
+.IP
+The following hardware problems may lead to a bad disk change line:
+.RS
+.TP
+* \ \
+If the floppy cable is not inserted straight, or if it is kinked, the
+disk change line is likely to suffer, as it is on the edge of the cable.
+Gently press on both connectors of the cable (drive and controller) to
+insure that all wires make contact. Visually inspect the cable, and if
+it shows obvious traces of damage, get a new one.
+.TP
+* \ \
+On some drives, the locations disk change line may be chosen by
+jumper. Make sure that your floppy controller and your drive agree on
+which line is the disk change line.
+.TP
+* \ \
+Some older drives (mostly double density 5 1/4 drives) don't have a disk
+change line. In this case, you have no choice other than to leave the
+\&\fR\&\f(CWbroken_dcl\fR option on.
+.RE
+.TP
+\&\fR\&\f(CW\-\-working_dcl\fR\
+Assumes that the disk change line works all right. Switching from
+broken to working may lead to unexpected results after the first disk
+change.
+.TP
+\&\fR\&\f(CW\-\-inverted_dcl\fR\
+Assumes that this disk drive uses an inverted disk change
+line. Apparently this is the case for IBM thinkpads.
+.TP
+\&\fR\&\f(CW\-\-no_inverted_dcl\fR\
+Assumes that this drive follows the standard convention for the disk
+change line.
+.TP
+\&\fR\&\f(CW\-\-noisy_dcl_clear\fR\
+Switches off silent disk change line clearing for this drive.
+.PP
+.SH Timing\ Parameters
+.PP
+This section describes how to configure drive timings. To set these
+parameters, you need superuser privileges. All times are in "jiffy"
+units (10 milliseconds), unless otherwise specified.
+.TP
+\&\fR\&\f(CW\-\-hlt\ \fI\ hlt\fR\&\f(CW\fR\
+Set the head load time (in microseconds) for this floppy drive. The
+head load time describes how long the floppy controller waits after
+seeking or changing heads before allowing access to a track.
+.TP
+\&\fR\&\f(CW\-\-hut\ \fI\ hut\fR\&\f(CW\fR\
+Set the head unload time (in microseconds) for this floppy drive. The
+head unload time describes how long the floppy controller waits after an
+access before directing its attention to the other head, or before
+seeking.
+.TP
+\&\fR\&\f(CW\-\-srt\ \fI\ srt\fR\&\f(CW\fR\
+Set the step rate (in microseconds) for this floppy drive. The step
+rate describes how long the drive head stays on one cylinder when
+seeking. Setting this value to low (too fast seeks) may make seeks
+fail, because the motor doesn't follow fast enough.
+.TP
+\&\fR\&\f(CW\-u\ \fIspinup\-time\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-spinup\ \fI\ spinup\-time\fR\&\f(CW\fR
+Set the spinup time of the floppy drive. In order to do read or write
+to the floppy disk, it must spin. It takes a certain time for the
+motor to reach enough speed to read or write. This parameter describes
+this time. The floppy driver doesn't try to access the drive before
+the spinup time has elapsed. With modern controllers, you may set this time
+to zero, as the controller itself enforces the right delay.
+.TP
+\&\fR\&\f(CW\-o\ \fIspindown\-time\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-spindown\ \fI\ spindown\-time\fR\&\f(CW\fR
+Set the spindown time of this floppy drive. The motor is not stopped
+immediately after the operation completes, because there might be more
+operations following. The spindown time is the time the driver waits
+before switching off the motor.
+.TP
+\&\fR\&\f(CW\-O\ \fIspindown\-offset\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-spindown_offset\ \fI\ spindown\-offset\fR\&\f(CW\fR
+Set the spindown offset of this floppy drive. This parameter is used
+to set the position in which the disk stops. This is useful to
+minimize the next access time. (If the first sector is just near the
+head at the very moment at which the disk has reached enough speed,
+you win 200 milliseconds against the most unfavorable situation).
+.IP
+This is done by clocking the time where the first I/O request
+completes, and using this time to calculate the current position of
+the disk.
+.TP
+\&\fR\&\f(CW\-s\ \fIselect\-delay\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-select_delay\ \fI\ select\-delay\fR\&\f(CW\fR
+Set the \fIselect delay\fR of this floppy drive. This is the delay that
+the driver waits after selecting the drive and issuing the first command
+to it. For modern controllers/drives, you may set this to zero.
+.TP
+\&\fR\&\f(CW\-C\ \fIcheck\-interval\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-checkfreq\ \fI\ check\-interval\fR\&\f(CW\fR
+Set the maximal disk change check interval. The disk change line is
+checked whenever a read or write to the device is issued, and it has not
+been checked for more than \fIinterval\fR jiffies.
+.PP
+.SH Debugging\ messages
+.PP
+This subsection describes how to switch the available debugging messages
+on and off.
+.IP
+.TP
+\&\fR\&\f(CW\-\-debug\fR\
+Switch debugging output on. The debugging information includes timing
+information. This option might be useful to fine-tune the timing
+options for your local setups. (But for most normal purposes, the
+default values are good enough.)
+.TP
+\&\fR\&\f(CW\-\-nodebug\fR\
+Switch debugging output off.
+.TP
+\&\fR\&\f(CW\-\-messages\fR\
+Print informational messages after autodetection, geometry parameter
+clearing and dma over/underruns.
+.TP
+\&\fR\&\f(CW\-\-nomessages\fR\
+Don't print informational messages after these events.
+.PP
+.SH Error\ Handling\ Options
+.PP
+The following options configure the behavior of the floppy driver in
+case of read/write errors. They may be used by any user who has write
+privileges for the drive. Whenever the floppy driver encounters an
+error, a retry counter is incremented. If the value of this counter gets
+bigger than the thresholds described below, the corresponding actions
+are performed at the next retry. The counter is reset when the read or
+write finally terminates, whether successfully or not.
+.TP
+\&\fR\&\f(CW\-a\ \fIoperation\-abort\-threshold\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-abort\ \fI\ operation\-abort\-threshold\fR\&\f(CW\fR
+Tell the floppy driver to stop trying to read/write a sector after
+\&\fIoperation-abort-threshold\fR
+retries, and signal the I/O error to the user.
+.TP
+\&\fR\&\f(CW\-t\ \fIread\-track\-threshold\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-readtrack\ \fI\ read\-track\-threshold\fR\&\f(CW\fR
+Tell the floppy driver to switch from track-reading mode to
+sector-at-a-time-mode after
+\&\fIread-track-threshold\fR
+retries.
+.TP
+\&\fR\&\f(CW\-r\ \fIrecalibrate\-threshold\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-recalibrate\ \fI\ recalibrate\-threshold\fR\&\f(CW\fR
+Tell the floppy driver to recalibrate the drive after
+\&\fIrecalibrate-threshold\fR retries.
+.TP
+\&\fR\&\f(CW\-R\ \fIreset\-threshold\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-reset\ \fI\ reset\-threshold\fR\&\f(CW\fR
+Tell the floppy driver to reset the controller after
+\&\fIreset-threshold\fR retries. After a controller reset, the floppy
+driver also recalibrates all drives connected to that controller.
+.IP
+.TP
+\&\fR\&\f(CW\-e\ \fIerror\-report\-threshold\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-reporting\ \fI\ error\-report\-threshold\fR\&\f(CW\fR
+Tell the floppy driver to start printing error messages to the console
+after \fIerror-report-threshold\fR retries.
+.PP
+.SH Write\ error\ reporting
+.PP
+Due to the buffer cache, write errors cannot always be reported to the
+writing user program as soon as the write system call returns. Indeed,
+the actual writing may take place much later. If a write error is
+encountered, the floppy driver stores information about it in its per
+drive write error structure. This write error structure stays until
+explicitly cleared. It can for example be queried by a backup program
+which wants to make sure that the data has been written successfully.
+.IP
+.TP
+\&\fR\&\f(CW\-\-clrwerror\fR\
+Clears the write error structure.
+.TP
+\&\fR\&\f(CW\-\-printwerror\fR\
+Prints the contents of the write error structure:
+.RS
+.TP
+\&\fR\&\f(CWwrite_errors\fR\
+is a count of how many write errors have occurred since the structure was last
+cleared.
+.TP
+\&\fR\&\f(CWbadness\fR\
+is the maximal number of retries that were needed to complete an
+operation (reads, writes and formats).
+.TP
+\&\fR\&\f(CWfirst_error_sector\fR\
+is where the first (chronologically) write error occurred.
+.TP
+\&\fR\&\f(CWfirst_error_generation\fR\
+is the disk change generation in which did the first write error
+occurred. The disk change generation is a number which is incremented
+at each disk change.
+.TP
+\&\fR\&\f(CWlast_error_sector\fR\
+and
+.TP
+\&\fR\&\f(CWlast_error_generation\fR\
+are similar.
+.RE
+.PP
+.SH Other\ drive\ configuration\ options
+.PP
+This subsection lists per drive configuration options, which don't fit
+in any other category. They are available only to the superuser:
+.IP
+.TP
+\&\fR\&\f(CW\-\-tracks\ \fI\ max\-tracks\fR\&\f(CW\fR\
+Set the maximal numbers of physical tracks that this drive may
+handle. If you have a drive which is only able to handle 80 tracks
+(making strange noises when you try to format or read a disk with more
+than 80 tracks), use this option to prevent unprivileged users of
+damaging your drive by repeatedly reading disks with more than 80
+tracks.
+.IP
+If you trust your users and your disks, you don't need this. With most
+drives you don't need to worry anyways. See section More cylinders, for
+details.
+.TP
+\&\fR\&\f(CW\-i\ \fIsector\-interleave\fR\&\f(CW\ \fR\
+.TQ
+\&\fR\&\f(CW\-\-interleave\ \fIsector\-interleave\fR\&\f(CW\fR
+Set the number of sectors beyond which sector interleaving will be used.
+This option will only be used by the \fR\&\f(CWFDFMTTRK\fR ioctl. The
+\&\fR\&\f(CWfdformat\fR command, which is now considered obsolete, uses
+\&\fR\&\f(CWFDFMTTRK\fR ioctl, but \fR\&\f(CWsuperformat\fR does not.
+.IP
+.SH See Also
+Fdutils' texinfo doc