Provided by: fdutils_5.5-20060227-6_amd64 bug

Name

       floppycontrol - floppy driver configuration utility

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.

       *      To generate a printable copy from the texinfo doc, run the following commands:

                     ./configure; make dvi; dvips fdutils.dvi

       *      To generate a HTML copy,  run:

                     ./configure; make html

              A pre-made HTML can be found at: `http://www.tux.org/pub/knaff/fdutils'

       *      To generate an info copy (browsable using emacs' info mode), run:

                     ./configure; make info

       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.

Description

          floppycontrol [-p] [--pollstate] [--printfdstate]
          [-a operation-abort-threshold] [-c read-track-threshold]
          [-r recalibrate-threshold] [-R reset-threshold]
          [-e reporting-threshold] [-f] [-x] [-d drive][-F] [-T]
          [-reset condition] [--debug] [--nodebug] [--messages]
          [--nomessages] [--broken_dcl] [--working_dcl] [--inverted_dcl]
          [--no_inverted_dcl] [--silent_dcl_clear] [--noisy_dcl_clear]
          [-ccmos-type] [-hlt hlt] [-hut hut] [-srt srt] [-o spindown]
          [-u spinup] [-s select-delay] [-rps rotations-per-second]
          [-O spindown-offset] [-track max-tracks] [-timeout seconds]
          [-C check-interval] [-n native-format]
          [-autodetect autodetection-sequence] [-P] [--clrwerror]
          [--printwerror] [-h]

       The floppycontrol program is used to configure the floppy driver.

General Options

       -h
       --help Print a help screen.

       -d drive
       --drive  drive
              Selects the drive to configure. The default is drive 0 (`/dev/fd0').

One time actions

       The following floppycontrol 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

       -f
       --flush
              Flushes (throws away) the dirty data buffers associated with this drive.

       -x
       --eject
              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.

       --reset  condition
              Resets the FDC under condition . Condition may be one of the following:

              0      resets the FDC only if a reset is needed anyways,

              1      resets the FDC also if a raw command  has  been  performed  since  the  last
                     reset, and

              2      resets the FDC unconditionally.

              This command may be needed after some failed raw commands (see section  fdrawcmd).

       -F
       --formatend
              Issues  an  end  format  ioctl. This might be needed after exiting a fdformat in an
              unclean way. superformat is not subject to this.

Printing current settings

       -T
       --type Print out the drive name of a floppy device.  This  is  used  by  the  MAKEFLOPPIES
              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 (null).

       -p
       --print
              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.

       -P
       --printstate
              Prints  out  the  cached internal state of the driver. The first line lists various
              attributes about the disk:

              drive present
              disk present
              disk writable
                     These are only updated when the drive is accessed.

              spinup
                     is the time when the motor became switched on for the last time.

              select
                     is the time when the drive became selected for the last time

              first_read
                     is the time when the first read request after the last spin up completed.

              probed_fmt
                     is the index of the autodetected format in the  autodetection  sequence  for
                     this drive.

              cylinder
                     is  the  cylinder  where  the  drive head currently sits.  If this number is
                     negative, it has the following meaning:

                     *      -1 means that the driver doesn't know, but  the  controller  does  (a
                            seek command must be issued).

                     *      -2 means that the controller doesn't know either, but is sure that it
                            not beyond the 80th track.  The drive needs a recalibration.

                     *      -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.

              maxblock
                     is the highest block number that has been read.

              maxcylinder
                     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.

              generation
                     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.)

              refs   is  number  of  open  file descriptors for this drive. It is always at least
                     one, because floppycontrol's file descriptor is counted too.

              device
                     is format type (as derived from the minor device number) which is  currently
                     being used.

              last_checked
                     is  date (in jiffies) when the drive was last checked for a disk change, and
                     a disk was actually in the drive.

       --pollstate
              Polls the drive and then prints out the internal state of the  driver.(--Printstate
              only  prints  out  the  cached information without actually polling the drive for a
              disk change.)

       --printfdcstate
              Prints out the state of the controller where the target drive is attached to.

              spec1
              spec2  are the current values of those registers.

              rate   is current data transfer rate

              rawcmd
                     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.

              dor    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.

              version
                     is the version of the FDC. See `linux/include/linux/fdreg.h' for  a  listing
                     of the FDC version numbers.

              reset  is  true if a reset needs to be issued to the FDC before processing the next
                     request.

              need_configure
                     is true if this FDC needs configuration by the FD_CONFIGURE command.

              has_fifo
                     is set if the FDC understands the FD_CONFIGURE command.

              perp_mode
                     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.

              address
                     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.

Drive type configuration and autodetection

       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.

       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.)

       These settings are only changeable by the super user.

       -c cmos-type
       --cmos  cmos-type
              Set the virtual CMOS type of the floppy drive. This is useful if

              *      the physical CMOS type is wrong (this may happen with  BIOSes  which  use  a
                     non-standard mapping),

              *      you have more than two drives (the physical CMOS may only describe up to two
                     drives).

              *      you have a BIOS that allows swapping drives A: and B: for DOS.

       Right now, this CMOS parameter is not used by the kernel, except for feeding  it  back  to
       other  applications  (for  instance superformat, floppymeter or MAKEFLOPPIES).  It is also
       possible to supply a virtual CMOS type with the cmos boot option  (see  section   Boottime
       configuration).    If  possible,  I  recommend  you  use  the  boot  option,  rather  than
       floppycontrol, because the boot option also sets any  parameters  derived  from  the  CMOS
       type,  such  as  the  autodetection list and the native format, whereas floppycontrol does
       not.

       -A  autodetect-seq
       --autodetect  autodetect-seq
              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 t.   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 t is not given, or the whole first track when t 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.

              Example:

                 7,4,24t,25

              means 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.

              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.

              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.

              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.

       -n native-format
       --native_format  native-format
              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  MAKEFLOPPIES script which uses it to decide which
              device nodes to create.

Configuration of the disk change line

       --broken_dcl
              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.

              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.

              The following hardware problems may lead to a bad disk change line:

              *      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.

              *      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.

              *      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
                     broken_dcl option on.

       --working_dcl
              Assumes that the disk change line works all right. Switching from broken to working
              may lead to unexpected results after the first disk change.

       --inverted_dcl
              Assumes  that this disk drive uses an inverted disk change line. Apparently this is
              the case for IBM thinkpads.

       --no_inverted_dcl
              Assumes that this drive follows the standard convention for the disk change line.

       --noisy_dcl_clear
              Switches off silent disk change line clearing for this drive.

Timing Parameters

       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.

       --hlt  hlt
              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.

       --hut  hut
              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.

       --srt  srt
              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.

       -u spinup-time
       --spinup  spinup-time
              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.

       -o spindown-time
       --spindown  spindown-time
              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.

       -O spindown-offset
       --spindown_offset  spindown-offset
              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).

              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.

       -s select-delay
       --select_delay  select-delay
              Set the select delay 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.

       -C check-interval
       --checkfreq  check-interval
              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 interval jiffies.

Debugging messages

       This subsection describes how to switch the available debugging messages on and off.

       --debug
              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.)

       --nodebug
              Switch debugging output off.

       --messages
              Print informational messages after autodetection, geometry parameter  clearing  and
              dma over/underruns.

       --nomessages
              Don't print informational messages after these events.

Error Handling Options

       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.

       -a operation-abort-threshold
       --abort  operation-abort-threshold
              Tell the floppy driver to stop trying to read/write a sector after operation-abort-
              threshold retries, and signal the I/O error to the user.

       -t read-track-threshold
       --readtrack  read-track-threshold
              Tell  the  floppy driver to switch from track-reading mode to sector-at-a-time-mode
              after read-track-threshold retries.

       -r recalibrate-threshold
       --recalibrate  recalibrate-threshold
              Tell the  floppy  driver  to  recalibrate  the  drive  after  recalibrate-threshold
              retries.

       -R reset-threshold
       --reset  reset-threshold
              Tell the floppy driver to reset the controller after reset-threshold retries. After
              a controller reset, the floppy driver also recalibrates  all  drives  connected  to
              that controller.

       -e error-report-threshold
       --reporting  error-report-threshold
              Tell the floppy driver to start printing error messages to the console after error-
              report-threshold retries.

Write error reporting

       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.

       --clrwerror
              Clears the write error structure.

       --printwerror
              Prints the contents of the write error structure:

              write_errors
                     is  a  count  of how many write errors have occurred since the structure was
                     last cleared.

              badness
                     is the maximal number of retries that were needed to complete  an  operation
                     (reads, writes and formats).

              first_error_sector
                     is where the first (chronologically) write error occurred.

              first_error_generation
                     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.

              last_error_sector
                     and

              last_error_generation
                     are similar.

Other drive configuration options

       This  subsection  lists  per  drive  configuration  options,  which don't fit in any other
       category.  They are available only to the superuser:

       --tracks  max-tracks
              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.

              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.

       -i sector-interleave
       --interleave sector-interleave
              Set  the  number  of  sectors  beyond which sector interleaving will be used.  This
              option will only be used by the FDFMTTRK ioctl.  The fdformat command, which is now
              considered obsolete, uses FDFMTTRK ioctl, but superformat does not.

See Also

       Fdutils' texinfo doc