FDCONTROL(8) FreeBSD システム管理者マニュアル FDCONTROL(8)
名称
fdcontrol − フロッピディスクパラメータの表示と変更 |
書式
fdcontrol [−F] [−d dbg] [−f fmt] [−s fmtstr] [−v] device |
解説 |
fdcontrol ユーティリティは、 device で指定した fdc(4) ドライバの実行時の 振る舞いを変更します。 下位に位置するデバイスハードウェアの設定と現在のデバイス密度設定につい て、ドライバに登録された情報を返す問い合わせコマンド、デバッグレベル操作 コマンド、デバイス密度設定調整コマンドが実装されています。カーネル設定の 変更の全ては、(デバイスドライバにより) スーパユーザに操作が制限されていま すが、問い合わせリクエストの全ては、 device への読み込みアクセス権だけを 必要とします。 引数 device には、例えば /dev/fd0 のように、常にフルパス名を与える必要が あります。 |
問い合わせコマンド |
fdcontrol ユーティリティをオプション引数無しで実行すると、デバイスドライ バに登録されたドライブタイプを返します。最も簡潔な形式では、ドライブタイ プを 1 行で返します。返す可能性のある値は、 ‘‘360K’’, ‘‘1.2M’’, ‘‘720K’’, ‘‘1.44M’’, ‘‘2.88M’’, ‘‘unknown’’ です。この情報の主な目的は、スクリプト からの解釈が容易になることを想定しています。 出力が人間にとってより分かり易くなるように説明を追加するために、 −v を指 定することができます。 フラグ −F を指定することにより、オプション −s fmtstr (下記を参照下さい) の与える入力として適切な形式を返すようになります。これと −v とをいっしょ に指定することで、現在の密度指定に基づく容量をキロバイト単位で示すテキス トも加えて返すようになります。 |
デバッグ制御 |
オプション FDC_DEBUG を付けてドライバ fdc(4) を構築した (これがデフォルト です) としても、デバイスデバッグ情報は抑止されたままです。これは、カーネ ルメッセージを大量に吐き出す可能性があるためです。デバッグ情報を出力させ るためには、 ‘‘−d 1’’ とともに fdcontrol を用いる必要があります。通常、デ バッグ情報が必要なデバイスを操作する直前にこの設定をオンにし、操作直後に ‘‘−d 0’’ でオフにすることになります。デバッグレベルは、ドライバのグローバ ルオプションであり、コマンド fdcontrol のコマンド行でどの device を指定し たかに関わらず、ドライバ fdc(4) を用いるドライブ、コントローラのいずれに 対しても影響を与えることに注意して下さい。 |
密度制御 |
コントロールユーティリティ fdc(4) は、どのようにデバイス密度の設定を指定 するかについて、2 個の異なるオプションをサポートしています。最初の形式で は、 −f fmt を用い、メディアのフォーマットをキロバイト単位で指定します。 下位に位置するドライブタイプにより、指定した値は、そのドライブにおいて、 世の中でよく使われているデバイス密度設定を表すテーブルと比較し、一致する 設定が見つかれば、その設定を使用します。現在のところ、ドライブタイプ毎に 次の値が受理可能です。 2.88M ドライブ、1.44M ドライブ 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 HTML-IMAGE-END.Ed 1.2M ドライブ 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 HTML-IMAGE-END.Ed 720K ドライブ KB sectrac secsize ncyls speed heads flags 720 9 2 (512) 80 250 2 MFM HTML-IMAGE-END.Ed 360K ドライブ KB sectrac secsize ncyls speed heads flags 360 9 2 (512) 40 250 2 MFM HTML-IMAGE-END.Ed 2 番目の形式でデバイス密度を指定するには、 −s fmtstr を使い、各パラメータを詳細にわたり指定しま す。引数 fmtstr は、コンマで区切られた値のリスト であり、次の形式です。 sectrac,secsize,datalen,gap,ncyls,speed,heads,f_gap,f_inter,offs2,flags パラメータの意味は次のとおりです。 |
sectrac
トラックあたりのセクタ数です。 secsize datalen gap ncyls speed heads f_gap f_inter offs2 flags +mfm パラメータ指定がないものについては、現在の値が使 用されます。ですから、指定する必要があるものは、 実際に変更したいものだけです。 (フラグ +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 |
関連項目
歴史
fdcontrol ユーティリティは FreeBSD 2.0 で現れ、 FreeBSD 5.0 で大々的に改 装されました。 |
作者
本プログラムと本マニュアルページは Jörg Wunsch, Dresden から寄贈されまし た。 FreeBSD 10.0 December 25, 2001 FreeBSD 10.0 |