blob: 7d8bb3384031cb477a5b048dc3e3c4c07a1ef95a [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001Intro
2=====
3
4This file describes some issues involved when using the "ftape"
5floppy tape device driver that comes with the Linux kernel.
6
7ftape has a home page at
8
9http://ftape.dot-heine.de/
10
11which contains further information about ftape. Please cross check
12this WWW address against the address given (if any) in the MAINTAINERS
13file located in the top level directory of the Linux kernel source
14tree.
15
16NOTE: This is an unmaintained set of drivers, and it is not guaranteed to work.
17If you are interested in taking over maintenance, contact Claus-Justus Heine
18<ch@dot-heine.de>, the former maintainer.
19
20Contents
21========
22
23A minus 1: Ftape documentation
24
25A. Changes
26 1. Goal
27 2. I/O Block Size
28 3. Write Access when not at EOD (End Of Data) or BOT (Begin Of Tape)
29 4. Formatting
30 5. Interchanging cartridges with other operating systems
31
32B. Debugging Output
33 1. Introduction
34 2. Tuning the debugging output
35
36C. Boot and load time configuration
37 1. Setting boot time parameters
38 2. Module load time parameters
39 3. Ftape boot- and load time options
40 4. Example kernel parameter setting
41 5. Example module parameter setting
42
43D. Support and contacts
44
45*******************************************************************************
46
47A minus 1. Ftape documentation
48==============================
49
50Unluckily, the ftape-HOWTO is out of date. This really needs to be
51changed. Up to date documentation as well as recent development
52versions of ftape and useful links to related topics can be found at
53the ftape home page at
54
55http://ftape.dot-heine.de/
56
57*******************************************************************************
58
59A. Changes
60==========
61
621. Goal
63 ~~~~
64 The goal of all that incompatibilities was to give ftape an interface
65 that resembles the interface provided by SCSI tape drives as close
66 as possible. Thus any Unix backup program that is known to work
67 with SCSI tape drives should also work.
68
69 The concept of a fixed block size for read/write transfers is
70 rather unrelated to this SCSI tape compatibility at the file system
71 interface level. It developed out of a feature of zftape, a
72 block wise user transparent on-the-fly compression. That compression
73 support will not be dropped in future releases for compatibility
74 reasons with previous releases of zftape.
75
762. I/O Block Size
77 ~~~~~~~~~~~~~~
78 The block size defaults to 10k which is the default block size of
79 GNU tar.
80
81 The block size can be tuned either during kernel configuration or
82 at runtime with the MTIOCTOP ioctl using the MTSETBLK operation
83 (i.e. do "mt -f /dev/qft0" setblk #BLKSZ). A block size of 0
84 switches to variable block size mode i.e. "mt setblk 0" switches
85 off the block size restriction. However, this disables zftape's
86 built in on-the-fly compression which doesn't work with variable
87 block size mode.
88
89 The BLKSZ parameter must be given as a byte count and must be a
90 multiple of 32k or 0, i.e. use "mt setblk 32768" to switch to a
91 block size of 32k.
92
93 The typical symptom of a block size mismatch is an "invalid
94 argument" error message.
95
963. Write Access when not at EOD (End Of Data) or BOT (Begin Of Tape)
97 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
98 zftape (the file system interface of ftape-3.x) denies write access
99 to the tape cartridge when it isn't positioned either at BOT or
100 EOD.
101
1024. Formatting
103 ~~~~~~~~~~
104 ftape DOES support formatting of floppy tape cartridges. You need the
105 `ftformat' program that is shipped with the modules version of ftape.
106 Please get the latest version of ftape from
107
108 ftp://sunsite.unc.edu/pub/Linux/kernel/tapes
109
110 or from the ftape home page at
111
112 http://ftape.dot-heine.de/
113
114 `ftformat' is contained in the `./contrib/' subdirectory of that
115 separate ftape package.
116
1175. Interchanging cartridges with other operating systems
118 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
119
120 The internal emulation of Unix tape device file marks has changed
121 completely. ftape now uses the volume table segment as specified
122 by the QIC-40/80/3010/3020/113 standards to emulate file marks. As
123 a consequence there is limited support to interchange cartridges
124 with other operating systems.
125
126 To be more precise: ftape will detect volumes written by other OS's
127 programs and other OS's programs will detect volumes written by
128 ftape.
129
130 However, it isn't possible to extract the data dumped to the tape
131 by some MSDOS program with ftape. This exceeds the scope of a
132 kernel device driver. If you need such functionality, then go ahead
133 and write a user space utility that is able to do that. ftape already
134 provides all kernel level support necessary to do that.
135
136*******************************************************************************
137
138B. Debugging Output
139 ================
140
1411. Introduction
142 ~~~~~~~~~~~~
143 The ftape driver can be very noisy in that is can print lots of
144 debugging messages to the kernel log files and the system console.
145 While this is useful for debugging it might be annoying during
146 normal use and enlarges the size of the driver by several kilobytes.
147
148 To reduce the size of the driver you can trim the maximal amount of
149 debugging information available during kernel configuration. Please
150 refer to the kernel configuration script and its on-line help
151 functionality.
152
153 The amount of debugging output maps to the "tracing" boot time
154 option and the "ft_tracing" modules option as follows:
155
156 0 bugs
157 1 + errors (with call-stack dump)
158 2 + warnings
159 3 + information
160 4 + more information
161 5 + program flow
162 6 + fdc/dma info
163 7 + data flow
164 8 + everything else
165
1662. Tuning the debugging output
167 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
168 To reduce the amount of debugging output printed to the system
169 console you can
170
171 i) trim the debugging output at run-time with
172
173 mt -f /dev/nqft0 setdensity #DBGLVL
174
175 where "#DBGLVL" is a number between 0 and 9
176
177 ii) trim the debugging output at module load time with
178
179 modprobe ftape ft_tracing=#DBGLVL
180
181 Of course, this applies only if you have configured ftape to be
182 compiled as a module.
183
184 iii) trim the debugging output during system boot time. Add the
185 following to the kernel command line:
186
187 ftape=#DBGLVL,tracing
188
189 Please refer also to the next section if you don't know how to
190 set boot time parameters.
191
192*******************************************************************************
193
194C. Boot and load time configuration
195 ================================
196
1971. Setting boot time parameters
198 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
199 Assuming that you use lilo, the LI)nux LO)ader, boot time kernel
200 parameters can be set by adding a line
201
202 append some_kernel_boot_time_parameter
203
204 to `/etc/lilo.conf' or at real boot time by typing in the options
205 at the prompt provided by LILO. I can't give you advice on how to
206 specify those parameters with other loaders as I don't use them.
207
208 For ftape, each "some_kernel_boot_time_parameter" looks like
209 "ftape=value,option". As an example, the debugging output can be
210 increased with
211
212 ftape=4,tracing
213
214 NOTE: the value precedes the option name.
215
2162. Module load time parameters
217 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
218 Module parameters can be specified either directly when invoking
219 the program 'modprobe' at the shell prompt:
220
221 modprobe ftape ft_tracing=4
222
223 or by editing the file `/etc/modprobe.conf' in which case they take
224 effect each time when the module is loaded with `modprobe' (please
225 refer to the respective manual pages). Thus, you should add a line
226
227 options ftape ft_tracing=4
228
229 to `/etc/modprobe.conf` if you intend to increase the debugging
230 output of the driver.
231
232
2333. Ftape boot- and load time options
234 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
235
236 i. Controlling the amount of debugging output
237 DBGLVL has to be replaced by a number between 0 and 8.
238
239 module | kernel command line
240 -----------------------|----------------------
241 ft_tracing=DBGLVL | ftape=DBGLVL,tracing
242
243 ii. Hardware setup
244 BASE is the base address of your floppy disk controller,
245 IRQ and DMA give its interrupt and DMA channel, respectively.
246 BOOL is an integer, "0" means "no"; any other value means
247 "yes". You don't need to specify anything if connecting your tape
248 drive to the standard floppy disk controller. All of these
249 values have reasonable defaults. The defaults can be modified
250 during kernel configuration, i.e. while running "make config",
251 "make menuconfig" or "make xconfig" in the top level directory
252 of the Linux kernel source tree. Please refer also to the on
253 line documentation provided during that kernel configuration
254 process.
255
256 ft_probe_fc10 is set to a non-zero value if you wish for ftape to
257 probe for a Colorado FC-10 or FC-20 controller.
258
259 ft_mach2 is set to a non-zero value if you wish for ftape to probe
260 for a Mountain MACH-2 controller.
261
262 module | kernel command line
263 -----------------------|----------------------
264 ft_fdc_base=BASE | ftape=BASE,ioport
265 ft_fdc_irq=IRQ | ftape=IRQ,irq
266 ft_fdc_dma=DMA | ftape=DMA,dma
267 ft_probe_fc10=BOOL | ftape=BOOL,fc10
268 ft_mach2=BOOL | ftape=BOOL,mach2
269 ft_fdc_threshold=THR | ftape=THR,threshold
270 ft_fdc_rate_limit=RATE | ftape=RATE,datarate
271
2724. Example kernel parameter setting
273 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
274 To configure ftape to probe for a Colorado FC-10/FC-20 controller
275 and to increase the amount of debugging output a little bit, add
276 the following line to `/etc/lilo.conf':
277
278 append ftape=1,fc10 ftape=4,tracing
279
2805. Example module parameter setting
281 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282 To do the same, but with ftape compiled as a loadable kernel
283 module, add the following line to `/etc/modprobe.conf':
284
285 options ftape ft_probe_fc10=1 ft_tracing=4
286
287*******************************************************************************
288
289D. Support and contacts
290 ====================
291
292 Ftape is distributed under the GNU General Public License. There is
293 absolutely no warranty for this software. However, you can reach
294 the current maintainer of the ftape package under the email address
295 given in the MAINTAINERS file which is located in the top level
296 directory of the Linux kernel source tree. There you'll find also
297 the relevant mailing list to use as a discussion forum and the web
298 page to query for the most recent documentation, related work and
299 development versions of ftape.
300
301 Changelog:
302 ==========
303
304~1996: Original Document
305
30610-24-2004: General cleanup and updating, noting additional module options.
307 James Nelson <james4765@gmail.com>