]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - usr.sbin/fdcontrol/fdcontrol.8
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / usr.sbin / fdcontrol / fdcontrol.8
1 '\" t
2 .\" Copyright (C) 1994, 2001 by Joerg Wunsch, Dresden
3 .\" All rights reserved.
4 .\"
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
7 .\" are met:
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\"    notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\"    notice, this list of conditions and the following disclaimer in the
12 .\"    documentation and/or other materials provided with the distribution.
13 .\"
14 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY
15 .\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 .\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE
18 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
20 .\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
21 .\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
22 .\" LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
24 .\" USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25 .\" DAMAGE.
26 .\"
27 .\" $FreeBSD$
28 .\"
29 .Dd December 25, 2001
30 .Os
31 .Dt FDCONTROL 8
32 .Sh NAME
33 .Nm fdcontrol
34 .Nd display and modify floppy disk parameters
35 .Sh SYNOPSIS
36 .Nm
37 .Op Fl F
38 .Op Fl d Ar dbg
39 .Op Fl f Ar fmt
40 .Op Fl s Ar fmtstr
41 .Op Fl v
42 .Ar device
43 .Sh DESCRIPTION
44 The
45 .Nm
46 utility allows the modification of the run-time behavior of the
47 .Xr fdc 4
48 driver for the device specified by
49 .Ar device .
50 .Pp
51 Commands are implemented to query the current device density settings
52 as well as the underlying device hardware as registered with the
53 driver, to manipulate debugging levels, and to adjust the device
54 density settings.
55 All the operations that manipulate the kernel
56 settings are restricted to the superuser (by the device driver), while
57 all inquiry requests only require read access to
58 .Ar device .
59 .Pp
60 The
61 .Ar device
62 argument should always be given as a full path name, e.g.\&
63 .Pa /dev/fd0 .
64 .Ss Inquiry Commands
65 Running the
66 .Nm
67 utility without any of the optional flags will report the drive type
68 that is registered with the device driver.
69 In the shortest form, a single string describing the drive type will
70 be returned.
71 Possible values are:
72 .Dq Li 360K ,
73 .Dq Li 1.2M ,
74 .Dq Li 720K ,
75 .Dq Li 1.44M ,
76 .Dq Li 2.88M ,
77 or
78 .Dq Li unknown .
79 This information is primarily intended to be easily parsable by
80 scripts.
81 .Pp
82 In order to add some descriptive text that makes the output better
83 human readable, the flag
84 .Fl v
85 can be added.
86 .Pp
87 Specifying flag
88 .Fl F
89 will report the device's density settings in a form that is suitable
90 as input to the
91 .Fl s Ar fmtstr
92 option (see below).
93 Again, together with
94 .Fl v ,
95 some more text will be returned, including the total capacity of the
96 density settings in kilobytes.
97 .Ss Debug Control
98 If the
99 .Xr fdc 4
100 driver was configured with the
101 .Dv FDC_DEBUG
102 option, by default, device debugging information is still disabled
103 since it could produce huge amounts of kernel messages.
104 It needs to
105 be turned on using
106 .Nm
107 together with
108 .Dq Fl d Li 1 ,
109 usually immediately before starting an operation on the respective
110 device the debug information is wanted for, and later turned off again
111 using
112 .Dq Fl d Li 0 .
113 Note that debugging levels are a driver's global option that will
114 affect any drives and controllers using the
115 .Xr fdc 4
116 driver, regardless which
117 .Ar device
118 was specified on the
119 .Nm
120 command line.
121 .Ss Density Control
122 The
123 .Xr fdc 4
124 control utilities support two different options how to specify device
125 density settings.
126 The first form uses
127 .Fl f Ar fmt
128 to specify the format of the medium in kilobytes.
129 Depending on the
130 underlying drive type, the value is compared against a table of known
131 commonly used device density settings for that drive, and if a match
132 is found, those settings will be used.
133 Currently, the following
134 values for the respective drive types are acceptable:
135 .Bl -item
136 .It
137 2.88M and 1.44M drives:
138 .Bd -ragged -offset indent -compact
139 .TS
140 lB lB lB lB lB lB lB
141 r l l l l l l.
142 KB      sectrac secsize ncyls   speed   heads   flags
143 1721    21      2 (512) 82      500     2       MFM
144 1476    18      2 (512) 82      500     2       MFM
145 1440    18      2 (512) 80      500     2       MFM
146 1200    15      2 (512) 80      500     2       MFM
147 820     10      2 (512) 82      250     2       MFM
148 800     10      2 (512) 80      250     2       MFM
149 720     9       2 (512) 80      250     2       MFM
150 .TE
151 .Ed
152 .It
153 1.2M drives:
154 .Bd -ragged -offset indent -compact
155 .TS
156 lB lB lB lB lB lB lB
157 r l l l l l l.
158 KB      sectrac secsize ncyls   speed   heads   flags
159 1200    15      2 (512) 80      500     2       MFM
160 1232    8       3 (1024)        77      500     2       MFM
161 1476    18      2 (512) 82      500     2       MFM
162 1440    18      2 (512) 80      500     2       MFM
163 1200    15      2 (512) 80      500     2       MFM
164 820     10      2 (512) 82      300     2       MFM
165 800     10      2 (512) 80      300     2       MFM
166 720     9       2 (512) 80      300     2       MFM
167 360     9       2 (512) 40      300     2       MFM,2STEP
168 640     8       2 (512) 80      300     2       MFM
169 .TE
170 .Ed
171 .It
172 720K drives:
173 .Bd -ragged -offset indent -compact
174 .TS
175 lB lB lB lB lB lB lB
176 r l l l l l l.
177 KB      sectrac secsize ncyls   speed   heads   flags
178 720     9       2 (512) 80      250     2       MFM
179 .TE
180 .Ed
181 .It
182 360K drives:
183 .Bd -ragged -offset indent -compact
184 .TS
185 lB lB lB lB lB lB lB
186 r l l l l l l.
187 KB      sectrac secsize ncyls   speed   heads   flags
188 360     9       2 (512) 40      250     2       MFM
189 .TE
190 .Ed
191 .El
192 .Pp
193 The second form to specify a device density uses
194 .Fl s Ar fmtstr
195 to explicitly specify each parameter in detail.
196 The argument
197 .Ar fmtstr
198 is a comma-separated list of values of the form:
199 .Pp
200 .Sm off
201 .Ar sectrac , secsize , datalen , gap , ncyls , speed ,
202 .Ar heads , f_gap , f_inter , offs2 , flags
203 .Sm on
204 .Pp
205 The meaning of the parameters is:
206 .Bl -tag -width ".Ar secsize"
207 .It Ar sectrac
208 The number of sectors per track.
209 .It Ar secsize
210 The sector size code, 0 = 128 bytes (or less), 1 = 256 bytes, 2 = 512
211 bytes, 3 = 1024 bytes.
212 .It Ar datalen
213 The actual sector size if the size code is 0, or the (ignored) value
214 0xFF for larger size codes.
215 .It Ar gap
216 The length of the gap 3 parameter for read/write operations.
217 .It Ar ncyls
218 The number of cylinders.
219 .It Ar speed
220 The transfer speed in kilobytes per second.
221 Can be 250, 300, 500, or
222 1000, but each drive type only supports a subset of these values.
223 .It Ar heads
224 The number of heads.
225 .It Ar f_gap
226 The length of the gap 3 when formatting media.
227 .It Ar f_inter
228 The sector interleave to be applied when formatting.
229 0 means no
230 interleave, 1 means 1:1 etc.
231 .It Ar offs2
232 The offset of the sector numbers on side 2 (i.e., head number 1).
233 Normally, sector numbering on both sides starts with 1.
234 .It Ar flags
235 A list from one of the following flag values:
236 .Pp
237 .Bl -tag -width ".Cm +perpend" -compact
238 .It Cm +mfm
239 Use MFM encoding.
240 .It Cm -mfm
241 Use FM (single-density) encoding.
242 .It Cm +2step
243 Use 2 steps per each cylinder (for accessing 40-cylinder media in
244 80-cylinder drives).
245 .It Cm -2step
246 Do not use 2 steps per cylinder, i.e., access each physical cylinder
247 of the drive.
248 .It Cm +perpend
249 Use perpendicular recording (for 2.88 MB media, currently not
250 supported).
251 .It Cm -perpend
252 Use longitudinal recording.
253 .El
254 .El
255 .Pp
256 For any missing parameter, the current value will be used, so only
257 actual changes need to be specified.
258 Thus to turn off a flag bit
259 (like
260 .Cm +mfm
261 which is the default for all drive types), the form with a leading
262 minus sign must explicitly be used.
263 .Sh EXAMPLES
264 A simple inquiry about the drive type:
265 .Bd -literal -offset indent
266 $ fdcontrol /dev/fd0
267 1.44M
268 .Ed
269 .Pp
270 Same as above, but with verbose output.
271 Note that the result is about
272 the
273 .Em "drive type" ,
274 as opposed to a
275 .Em "device density" ,
276 so it is independent from the actual subdevice being used for
277 .Ar device .
278 .Bd -literal -offset indent
279 $ fdcontrol -v /dev/fd0
280 /dev/fd0: 1.44M drive (3.5" high-density)
281 .Ed
282 .Pp
283 Inquiry about the density settings:
284 .Bd -literal -offset indent
285 $ fdcontrol -F /dev/fd0
286 18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm
287 .Ed
288 .Pp
289 The verbose flag makes this human readable:
290 .Bd -literal -offset indent
291 /dev/fd0: 1440 KB media type
292         Format:         18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm
293         Sector size:    512
294         Sectors/track:  18
295         Heads/cylinder: 2
296         Cylinders/disk: 80
297         Transfer rate:  500 kbps
298         Sector gap:     27
299         Format gap:     108
300         Interleave:     1
301         Side offset:    0
302         Flags           <MFM>
303 .Ed
304 .Pp
305 As indicated, trailing commas in the parameter list may be omitted.
306 .Pp
307 In order to access archaic 160 KB single-density (FM encoded) 5.25
308 media in a modern 1.2M drive, something like the following definition
309 would be needed.
310 (Note that not all controller hardware is actually
311 capable of handling FM encoding at all.)
312 .Bd -literal
313 # fdcontrol -s 16,128,0x80,0x2,40,300,,0x10,,,-mfm,+2step /dev/fd1.1
314 .Ed
315 .Pp
316 It is still possible to hook up 8" drives to most modern floppy
317 controllers, given the right cable magic.
318 (On PC hardware, tell the BIOS that it is a 5.25" drive.)
319 The classical 128/26/2/77 format can be read with this entry
320 .Bd -literal -offset indent
321 fdcontrol -s  26,128,0x80,0x2,77,500,2,0x10,,,-mfm /dev/fd0
322 .Ed
323 .Sh SEE ALSO
324 .Xr fdc 4
325 .Sh HISTORY
326 The
327 .Nm
328 utility appeared in
329 .Fx 2.0 ,
330 and was vastly overhauled in
331 .Fx 5.0 .
332 .Sh AUTHORS
333 The program and this man page was contributed by
334 .An J\(:org Wunsch ,
335 Dresden.