1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
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
|