.\" .\" Copyright (C) 1994, 2001 by Joerg Wunsch, Dresden .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY .\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT .\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR .\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF .\" LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE .\" USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" .\" %FreeBSD: src/usr.sbin/fdcontrol/fdcontrol.8,v 1.20 2004/07/02 23:12:41 ru Exp % .\" .\" $FreeBSD$ .Dd December 25, 2001 .Os .Dt FDCONTROL 8 .Sh 名称 .Nm fdcontrol .Nd フロッピディスクパラメータの表示と変更 .Sh 書式 .Nm .Op Fl F .Op Fl d Ar dbg .Op Fl f Ar fmt .Op Fl s Ar fmtstr .Op Fl v .Ar device .Sh 解説 .Nm ユーティリティは、 .Ar device で指定した .Xr fdc 4 ドライバの実行時の振る舞いを変更します。 .Pp 下位に位置するデバイスハードウェアの設定と 現在のデバイス密度設定について、 ドライバに登録された情報を返す問い合わせコマンド、 デバッグレベル操作コマンド、 デバイス密度設定調整コマンドが実装されています。 カーネル設定の変更の全ては、(デバイスドライバにより) スーパユーザに操作が制限されていますが、 問い合わせリクエストの全ては、 .Ar device への読み込みアクセス権だけを必要とします。 .Pp 引数 .Ar device には、例えば .Pa /dev/fd0 のように、常にフルパス名を与える必要があります。 .Ss 問い合わせコマンド .Nm ユーティリティをオプション引数無しで実行すると、デバイスドライバに 登録されたドライブタイプを返します。 最も簡潔な形式では、ドライブタイプを 1 行で返します。 返す可能性のある値は、 .Dq Li 360K , .Dq Li 1.2M , .Dq Li 720K , .Dq Li 1.44M , .Dq Li 2.88M , .Dq Li unknown です。 この情報の主な目的は、スクリプトからの解釈が容易になることを 想定しています。 .Pp 出力が人間にとってより分かり易くなるように説明を追加するために、 .Fl v を指定することができます。 .Pp フラグ .Fl F を指定することにより、オプション .Fl s Ar fmtstr (下記を参照下さい) の与える入力として適切な形式を返すようになります。 これと .Fl v とをいっしょに指定することで、現在の密度指定に基づく容量を キロバイト単位で示すテキストも加えて返すようになります。 .Ss デバッグ制御 オプション .Dv FDC_DEBUG を付けてドライバ .Xr fdc 4 を構築した (これがデフォルトです) としても、 デバイスデバッグ情報は抑止されたままです。 これは、カーネルメッセージを大量に吐き出す可能性があるためです。 デバッグ情報を出力させるためには、 .Dq Fl d Li 1 とともに .Nm を用いる必要があります。通常、デバッグ情報が必要な デバイスを操作する直前にこの設定をオンにし、操作直後に .Dq Fl d Li 0 でオフにすることになります。 デバッグレベルは、ドライバのグローバルオプションであり、 コマンド .Nm のコマンド行でどの .Ar device を指定したかに関わらず、ドライバ .Xr fdc 4 を用いるドライブ、コントローラのいずれに対しても影響を与えることに 注意して下さい。 .Ss 密度制御 コントロールユーティリティ .Xr fdc 4 は、どのようにデバイス密度の設定を指定するかについて、2 個の異なる オプションをサポートしています。 最初の形式では、 .Fl f Ar fmt を用い、メディアのフォーマットをキロバイト単位で指定します。 下位に位置するドライブタイプにより、指定した値は、 そのドライブにおいて、世の中でよく使われているデバイス密度設定を 表すテーブルと比較し、一致する設定が見つかれば、その設定を 使用します。現在のところ、ドライブタイプ毎に次の値が受理可能です。 .Bl -item .It 2.88M ドライブ、1.44M ドライブ .Bd -ragged -offset indent -compact .TS lB lB lB lB lB lB lB r l l l l l l. 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 .TE .Ed .It 1.2M ドライブ .Bd -ragged -offset indent -compact .TS lB lB lB lB lB lB lB r l l l l l l. 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 .TE .Ed .It 720K ドライブ .Bd -ragged -offset indent -compact .TS lB lB lB lB lB lB lB r l l l l l l. KB sectrac secsize ncyls speed heads flags 720 9 2 (512) 80 250 2 MFM .TE .Ed .It 360K ドライブ .Bd -ragged -offset indent -compact .TS lB lB lB lB lB lB lB r l l l l l l. KB sectrac secsize ncyls speed heads flags 360 9 2 (512) 40 250 2 MFM .TE .Ed .El .Pp 2 番目の形式でデバイス密度を指定するには、 .Fl s Ar fmtstr を使い、各パラメータを詳細にわたり指定します。 引数 .Ar fmtstr は、コンマで区切られた値のリストであり、次の形式です。 .Pp .Sm off .Ar sectrac , secsize , datalen , gap , ncyls , speed , .Ar heads , f_gap , f_inter , offs2 , flags .Sm on .Pp パラメータの意味は次のとおりです。 .Bl -tag -width ".Ar secsize" .It Ar sectrac トラックあたりのセクタ数です。 .It Ar secsize セクタサイズを表す数値です。0 = 128 バイト (または、それ以下)、 1 = 256 バイト、2 = 512 バイト、3 = 1024 バイト。 .It Ar datalen 上記のサイズ数値が 0 のとき、実セクタサイズを表します。 0 以外のサイズ数値のとき、(無視して構わない) 値 0xFF です。 .It Ar gap 読み/書き操作における、GAP 3 パラメータの長さです。 .It Ar ncyls シリンダ数です。 .It Ar speed 転送速度 (毎秒キロバイト単位の) です。 値 250, 300, 500, 1000 を取り得ますが、各ドライブタイプにより、 サポートする値はこのうちの一部になります。 .It Ar heads ヘッド数です。 .It Ar f_gap メディアをフォーマットするときの GAP 3 の長さです。 .It Ar f_inter フォーマットするときに適用するセクタインタリーブです。 0 はインタリーブ無し、1 は 1:1 インタリーブ (以下同様) を 表します。 .It Ar offs2 サイド 2 (ヘッド番号 1 ) におけるセクタ数オフセットです。 通常、セクタの番号付けは両面とも 1 から始まります。 .It Ar flags 次に示すフラグ値のリストです。 .Pp .Bl -tag -width ".Cm +perpend" -compact .It Cm +mfm MFM 符号化を使用。 .It Cm -mfm FM 符号化 (単密度) を使用。 .It Cm +2step 1 シリンダにつき 2 ステップを使用 (80 シリンダのドライブで 40 シリンダのメディアにアクセスするためのもの)。 .It Cm -2step 1 シリンダにつき 2 ステップを使用せず。つまり、ドライブの各物理シリンダに アクセスする。 .It Cm +perpend 垂直記録方式を使用 (2.88 MB メディア用、現在は未サポート)。 .It Cm -perpend 長手方向記録方式を使用。 .El .El .Pp パラメータ指定がないものについては、現在の値が使用されます。 ですから、指定する必要があるものは、実際に変更したいものだけです。 (フラグ .Cm +mfm のようにデフォルトで全ドライブでオンの) フラグビットをオフにするには、先頭にマイナス符号を付けた形式 を明示的に用いる必要があります。 .Sh 例 単純にドライブタイプを問い合わせる。 .Bd -literal -offset indent $ fdcontrol /dev/fd0 1.44M .Ed .Pp 上と同様ですが、冗長な出力をつける。 結果は、 .Em デバイスの密度 ではなく、 .Em ドライブタイプ についてのものであることに注意して下さい。 ですから、この結果は .Ar device で用いられる実際のサブデバイスとは別物です。 .Bd -literal -offset indent $ fdcontrol -v /dev/fd0 /dev/fd0: 1.44M drive (3.5" high-density) .Ed .Pp 密度設定を問い合わせる。 .Bd -literal -offset indent $ fdcontrol -F /dev/fd0 18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm .Ed .Pp 冗長フラグをつけると読みやすくなります。 .Bd -literal -offset indent /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 .Ed .Pp ここに示すように、パラメータリスト末尾のコンマは省略できます。 .Pp 新しい 1.2M ドライブで 古き良き 160KB 単密度 (FM 符号化) 5.25 インチメディアに アクセスするためには、次のような定義が必要になりそうです。 (実際には全てのコントローラハードウェアが FM 符号化を扱えるわけでは ないことに注意して下さい) .Bd -literal # fdcontrol -s 16,128,0x80,0x2,40,300,,0x10,,,-mfm,+2step /dev/fd1.1 .Ed .Pp たいていの最近のフロッピコントローラに 8 インチドライブを繋げることは、 適当なケーブルがあれば、未だに可能です。 (PC ハードウェアでは、BIOS には 5.25 インチドライブと設定して下さい) 次のようにすれば、伝統的な 128/26/2/77 フォーマットを読み込めます。 .Bd -literal -offset indent fdcontrol -s 26,128,0x80,0x2,77,500,2,0x10,,,-mfm /dev/fd0 .Ed .Sh 関連項目 .Xr fdc 4 .Sh 歴史 .Nm ユーティリティは .Fx 2.0 で現れ、 .Fx 5.0 で大々的に改装されました。 .Sh 作者 本プログラムと本マニュアルページは .An J\(:org Wunsch , Dresden から寄贈されました。