FD(4)

BEZEICHNUNG
fd - Disketten Devices

KONFIGURATION
Disketten- bzw. Floppy-Laufwerke sind Block-Devices (Gerätetreiber) mit der Major Number 2. Normalerweise gehören sie root.floppy und haben entweder den Zugriffsmodus 0660 (Zugriff über Gruppenzugehörigkeit) oder 0666 (jeder hat Zugriff). Im folgenden ist n die Laufwerksnummer. 0 für das erste Laufwerk, 1 für das zweite u.s.w. Um die Minor Number für ein spezielles Laufwerk herauszubekommen, das am ersten Adapter angeschlossen, wird n zur Minor-Basis addiert. Ist es hingegen am zweiten Adapter angeschlossen, dann wird n+128 zur Minor-Basis addiert. Warnung: Die Verwendung von Formaten mit mehr Spuren (Tracks) als vom Laufwerk unterstützt werden, kann selbiges mechanisch zerstören. Der einmalige Versuch mehr Spuren als die üblichen 40/80 zu benutzen, sollte es zwar nicht beschädigen, jedoch wird keine Gewähr dafür gegeben. Device-Dateien für Formate, die das Laufwerk nicht unterstützt, sollten nicht angelegt werden, um deren fälschliche Benutzung auszuschließsen. Laufwerksunabhängige Device-Dateien, deren Treiber automatisch das Diskettenformat und die Kapazität erkennen, sind:

Name | Minor-Basis #
fdn | 0

5.25 Zoll Double Density Devices:

Name | Kapaz. | Zyl. | Sekt. | Köpfe | Minor-Basis #
fdnd360 | 360K | 40 | 9 | 2 | 4

5.25 Zoll High Density Devices:

Name | Kapaz. | Zyl. | Sekt. | Köpfe | Minor-Basis #
fdnh360 | 360K | 40 | 9 | 2 | 20
fdnh410 | 410K | 41 | 10 | 2 | 48
fdnh420 | 420K | 42 | 10 | 2 | 64
fdnh720 | 720K | 80 | 9 | 2 | 24
fdnh880 | 880K | 80 | 11 | 2 | 80
fdnh1200 | 1200K | 80 | 15 | 2 | 8
fdnh1440 | 1440K | 80 | 18 | 2 | 40
fdnh1476 | 1476K | 82 | 18 | 2 | 56
fdnh1494 | 1494K | 83 | 18 | 2 | 72
fdnh1600 | 1600K | 80 | 20 | 2 | 92

3.5 Zoll Double Density Devices:

Name | Kapaz. | Zyl. | Sekt. | Köpfe | Minor-Basis #
fdnD360 | 360K | 80 | 9 | 1 | 12
fdnD720 | 720K | 80 | 9 | 2 | 16
fdnD800 | 800K | 80 | 10 | 2 | 120
fdnD1040 | 1040K | 80 | 13 | 2 | 84
fdnD1120 | 1120K | 80 | 14 | 2 | 88

3.5 Zoll High Density Devices:

Name | Kapaz. | Zyl. | Sekt. | Köpfe | Minor-Basis #
fdnH360 | 360K | 40 | 9 | 2 | 12
fdnH720 | 720K | 80 | 9 | 2 | 16
fdnH820 | 820K | 82 | 10 | 2 | 52
fdnH830 | 830K | 83 | 10 | 2 | 68
fdnH1440 | 1440K | 80 | 18 | 2 | 28
fdnH1600 | 1600K | 80 | 20 | 2 | 124
fdnH1680 | 1680K | 80 | 21 | 2 | 44
fdnH1722 | 1722K | 82 | 21 | 2 | 60
fdnH1743 | 1743K | 83 | 21 | 2 | 76
fdnH1760 | 1760K | 80 | 22 | 2 | 96
fdnH1840 | 1840K | 80 | 23 | 2 | 116
fdnH1920 | 1920K | 80 | 24 | 2 | 100

3.5 Zoll Extra Density Devices:

Name | Kapaz. | Zyl. | Sekt. | Köpfe | Minor-Basis #
fdnE2880 | 2880K | 80 | 36 | 2 | 32
fdnCompaQ | 2880K | 80 | 36 | 2 | 36
fdnE3200 | 3200K | 80 | 40 | 2 | 104
fdnE3520 | 3520K | 80 | 44 | 2 | 108
fdnE3840 | 3840K | 80 | 48 | 2 | 112

BESCHREIBUNG
Die fd Devices greifen direkt auf die Diskettenlaufwerke zu. Die folgenden ioctl(2) Aufrufe werden von diesen Gerätetreibern unterstützt:

FDCLRPRM
    löscht die Hardwareinformationen der eingelegten Disketten (Zylinder, Sektoren, Spuren).

FDSETPRM
    setzt die Hardwareinformationen der eingelegten Diskette. Diese Informationen gehen verloren, wenn die Diskette gewechselt wird.

FDDEFPRM
    setzt die Hardwareinformationen der eingelegten Diskette. Diese Informationen überdauern auch einen Diskettenwechsel. Allerdings wird damit auch der "Autodetection"-Mechanismus ausgeschaltet. Um diesen wieder einzuschalten, muß ein FDCLRPRM ioctl-Aufruf abgesetzt werden.

FDGETDRVTYP
    gibt den Typ des Laufwerks zurück (namentlich). Bei Formaten, die von verschiedenen Typen unterstützt werden, gibt FDGETDRVTYP den Namen zurück, der zum ältesten Laufwerkstyp paßt, der dieses Format unterstützt.

FDFLUSH
    erklärt den Puffer für das angegebene Laufwerk für ungültig.

FDSETMAXERRS
    setzt die Schwelle für Fehlerberichte, Operationsabbrüche, Recalibrating, Resetting, und sektorweises Lesen.

FDSETMAXERRS
    gibt die aktuelle Fehlerschwelle zurück.

FDGETDRVTYP
    gibt den internen Namen des Laufwerkes zurück.

FDWERRORCLR
    löscht die Schreibfehler-Statistiken.

FDWERRORGET
    liest die Schreibfehler-Statistiken. Diese beinhalten die gesamte Zahl der Schreibfehler, die Position und Diskette des ersten Schreibfehlers und die Position und Diskette des letzten Schreibfehlers. Disketten werden anhand einer Generationenzahl identifiziert, die bei (fast) jedem Diskettenwechsel hochgezählt wird.

FDTWADDLE
    Schaltet den Laufwerksmotor für ein paar Mikrosekunden aus. Dieses kann nötig sein, um auf Disketten zugreifen zu können, dessen Sektoren zu nah beieinander liegen.

FDSETDRVPRM
    setzt verschiedene Laufwerksparameter.

FDGETDRVPRM
    gibt diese zurück.

FDGETDRVSTAT
    gibt den gepufferten Laufwerksstatus zurück (Diskettenwechsel, Schreibschutz etc.).

FDPOLLDRVSTAT
    fragt das Laufwerk ab und gibt seinen Status zurück.

FDGETFDCSTAT
    gibt den Status des Floppycontrollers zurück.

FDRESET
    setzt den Floppycontroller unter bestimmten Bedingungen zurück.

FDRAWCMD
    sendet ein "rohes" Kommando direkt an den Floppycontroller.

Mehr Informationen sind in den Headerdateien <linux/fd.h> und <linux/fdreg.h>, sowie in der manpage zu floppycontrol zu finden.

ANMERKUNGEN
Die unterschiedlichen Formate erlauben es, unterschiedliche Diskettentypen zu lesen und zu schreiben. Wenn eine Diskette jedoch mit zu geringem Abstand zwischen den Sektoren formatiert wurde, kann die Performance sinken. Es kann dann bis zu einigen Sekunden dauern, einen ganzen Track zu lesen. Um dieses zu vermeiden, sollten "interleaved" Formate benutzt werden. Es ist nicht möglich, Disketten zu lesen, die mit GCR (Group Code Recoding) formatiert wurden, wie es beim Apple II und MacIntosh Computern der Fall ist (800k Disketten). Das Lesen von hartsektorierten Disketten (ein Loch pro Sektor, mit einem verschobenen Indexloch) wird nicht unterstützt. Dieses war üblich bei älteren 8-Zoll Disketten.

DATEIEN
/dev/fd*
    Die Floppydevices.

AUTOREN
Alain Knaff (Alain.Knaff@imag.fr), David Niemi (niemidc@clark.net), Bill Broadhurst (bbroad@netcom.com). Übersetzt ins Deutsche von Martin Schulze (joey@infodrom.north.de).

SIEHE AUCH
floppycontrol(1), mknod(1), chown(1), getfdprm(1), superformat(1), mount(8), setfdprm(8).