下位に位置するデバイスハードウェアの設定と 現在のデバイス密度設定について、 ドライバに登録された情報を返す問い合わせコマンド、 デバッグレベル操作コマンド、 デバイス密度設定調整コマンドが実装されています。 カーネル設定の変更の全ては、(デバイスドライバにより) スーパユーザに操作が制限されていますが、 問い合わせリクエストの全ては、 device への読み込みアクセス権だけを必要とします。
引数 device には、例えば /dev/fd0 のように、常にフルパス名を与える必要があります。
出力が人間にとってより分かり易くなるように説明を追加するために、 -v を指定することができます。
フラグ -F を指定することにより、オプション -s fmtstr (下記を参照下さい) の与える入力として適切な形式を返すようになります。 これと -v とをいっしょに指定することで、現在の密度指定に基づく容量を キロバイト単位で示すテキストも加えて返すようになります。
KB sectrac secsize ncyls speed heads flags 1721 21 2 (512) 82 500 2 MFM 1476 18 2 (512) 82 500 2 MFM 1440 18 2 (512) 80 500 2 MFM 1200 15 2 (512) 80 500 2 MFM 820 10 2 (512) 82 250 2 MFM 800 10 2 (512) 80 250 2 MFM 720 9 2 (512) 80 250 2 MFM
KB sectrac secsize ncyls speed heads flags 1200 15 2 (512) 80 500 2 MFM 1232 8 3 (1024) 77 500 2 MFM 1476 18 2 (512) 82 500 2 MFM 1440 18 2 (512) 80 500 2 MFM 1200 15 2 (512) 80 500 2 MFM 820 10 2 (512) 82 300 2 MFM 800 10 2 (512) 80 300 2 MFM 720 9 2 (512) 80 300 2 MFM 360 9 2 (512) 40 300 2 MFM,2STEP 640 8 2 (512) 80 300 2 MFM
KB sectrac secsize ncyls speed heads flags 720 9 2 (512) 80 250 2 MFM
KB sectrac secsize ncyls speed heads flags 360 9 2 (512) 40 250 2 MFM
2 番目の形式でデバイス密度を指定するには、 -s fmtstr を使い、各パラメータを詳細にわたり指定します。 引数 fmtstr は、コンマで区切られた値のリストであり、次の形式です。
sectrac , secsize , datalen , gap , ncyls , speed heads , f_gap , f_inter , offs2 , flags
パラメータの意味は次のとおりです。
パラメータ指定がないものについては、現在の値が使用されます。 ですから、指定する必要があるものは、実際に変更したいものだけです。 (フラグ +mfm のようにデフォルトで全ドライブでオンの) フラグビットをオフにするには、先頭にマイナス符号を付けた形式 を明示的に用いる必要があります。
$ fdcontrol /dev/fd0 1.44M
上と同様ですが、冗長な出力をつける。 結果は、 デバイスの密度 ではなく、 ドライブタイプ についてのものであることに注意して下さい。 ですから、この結果は device で用いられる実際のサブデバイスとは別物です。
$ fdcontrol -v /dev/fd0 /dev/fd0: 1.44M drive (3.5" high-density)
密度設定を問い合わせる。
$ fdcontrol -F /dev/fd0 18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm
冗長フラグをつけると読みやすくなります。
/dev/fd0: 1440 KB media type Format: 18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm Sector size: 512 Sectors/track: 18 Heads/cylinder: 2 Cylinders/disk: 80 Transfer rate: 500 kbps Sector gap: 27 Format gap: 108 Interleave: 1 Side offset: 0 Flags <MFM>
ここに示すように、パラメータリスト末尾のコンマは省略できます。
新しい 1.2M ドライブで 古き良き 160KB 単密度 (FM 符号化) 5.25 インチメディアに アクセスするためには、次のような定義が必要になりそうです。 (実際には全てのコントローラハードウェアが FM 符号化を扱えるわけでは ないことに注意して下さい)
# fdcontrol -s 16,128,0x80,0x2,40,300,,0x10,,,-mfm,+2step /dev/fd1.1
たいていの最近のフロッピコントローラに 8 インチドライブを繋げることは、 適当なケーブルがあれば、未だに可能です。 (PC ハードウェアでは、BIOS には 5.25 インチドライブと設定して下さい) 次のようにすれば、伝統的な 128/26/2/77 フォーマットを読み込めます。
fdcontrol -s 26,128,0x80,0x2,77,500,2,0x10,,,-mfm /dev/fd0