332 lines
8.9 KiB
Groff
332 lines
8.9 KiB
Groff
.\"
|
|
.\" Copyright (C) 1994 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.17 2003/07/06 18:27:23 markm 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
|
|
.Nm
|
|
.Op Fl s
|
|
.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
|
|
$ fdcontrol /dev/fd0
|
|
1.44M
|
|
.Ed
|
|
.Pp
|
|
上と同様ですが、冗長な出力をつける。
|
|
結果は、
|
|
.Em デバイスの密度
|
|
ではなく、
|
|
.Em ドライブタイプ
|
|
についてのものであることに注意して下さい。
|
|
ですから、この結果は
|
|
.Ar device
|
|
で用いられる実際のサブデバイスとは別物です。
|
|
.Bd -literal
|
|
$ fdcontrol -v /dev/fd1.360
|
|
/dev/fd1.360: 1.2M drive (5.25" high-density)
|
|
.Ed
|
|
.\" " <- this one is for Emacs :)
|
|
.Pp
|
|
あるサブデバイスの密度設定を問い合わせる。
|
|
.Bd -literal
|
|
$ fdcontrol -F /dev/fd0.720
|
|
18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm
|
|
.Ed
|
|
.Pp
|
|
.Xr fdc 4
|
|
で説明したように、
|
|
新しいサブデバイスに最初にアクセスしたときに、
|
|
そのドライブタイプに対するデフォルトの密度設定を用いて
|
|
このデバイスの複製を作ることに注意して下さい。
|
|
ですから、上の例で用いたデバイス名は、720 KB メディア密度を
|
|
想定していますが、実際には (ドライバにより) 1440KB で
|
|
初期化されています。
|
|
標準の 720 KB 倍密度メディア用に調整するためには、次の
|
|
.Nm
|
|
コマンドのどれか 1 個を実行することが必要です。
|
|
.Bd -literal
|
|
# fdcontrol -s 9,,,0x20,,250,,0x50 /dev/fd0.720
|
|
# fdcontrol -f 720 /dev/fd0.720
|
|
.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
|
|
.Sh 関連項目
|
|
.Xr fdc 4
|
|
.Sh 歴史
|
|
.Nm
|
|
ユーティリティは
|
|
.Fx 2.0
|
|
で現れ、
|
|
.Fx 5.0
|
|
で大々的に改装されました。
|
|
.Sh 作者
|
|
本プログラムと本マニュアルページは
|
|
.An J\(:org Wunsch ,
|
|
Dresden
|
|
から寄贈されました。
|