| Intro | |
| ===== | |
| This file describes some issues involved when using the "ftape" | |
| floppy tape device driver that comes with the Linux kernel. | |
| ftape has a home page at | |
| http://ftape.dot-heine.de/ | |
| which contains further information about ftape. Please cross check | |
| this WWW address against the address given (if any) in the MAINTAINERS | |
| file located in the top level directory of the Linux kernel source | |
| tree. | |
| NOTE: This is an unmaintained set of drivers, and it is not guaranteed to work. | |
| If you are interested in taking over maintenance, contact Claus-Justus Heine | |
| <ch@dot-heine.de>, the former maintainer. | |
| Contents | |
| ======== | |
| A minus 1: Ftape documentation | |
| A. Changes | |
| 1. Goal | |
| 2. I/O Block Size | |
| 3. Write Access when not at EOD (End Of Data) or BOT (Begin Of Tape) | |
| 4. Formatting | |
| 5. Interchanging cartridges with other operating systems | |
| B. Debugging Output | |
| 1. Introduction | |
| 2. Tuning the debugging output | |
| C. Boot and load time configuration | |
| 1. Setting boot time parameters | |
| 2. Module load time parameters | |
| 3. Ftape boot- and load time options | |
| 4. Example kernel parameter setting | |
| 5. Example module parameter setting | |
| D. Support and contacts | |
| ******************************************************************************* | |
| A minus 1. Ftape documentation | |
| ============================== | |
| Unluckily, the ftape-HOWTO is out of date. This really needs to be | |
| changed. Up to date documentation as well as recent development | |
| versions of ftape and useful links to related topics can be found at | |
| the ftape home page at | |
| http://ftape.dot-heine.de/ | |
| ******************************************************************************* | |
| A. Changes | |
| ========== | |
| 1. Goal | |
| ~~~~ | |
| The goal of all that incompatibilities was to give ftape an interface | |
| that resembles the interface provided by SCSI tape drives as close | |
| as possible. Thus any Unix backup program that is known to work | |
| with SCSI tape drives should also work. | |
| The concept of a fixed block size for read/write transfers is | |
| rather unrelated to this SCSI tape compatibility at the file system | |
| interface level. It developed out of a feature of zftape, a | |
| block wise user transparent on-the-fly compression. That compression | |
| support will not be dropped in future releases for compatibility | |
| reasons with previous releases of zftape. | |
| 2. I/O Block Size | |
| ~~~~~~~~~~~~~~ | |
| The block size defaults to 10k which is the default block size of | |
| GNU tar. | |
| The block size can be tuned either during kernel configuration or | |
| at runtime with the MTIOCTOP ioctl using the MTSETBLK operation | |
| (i.e. do "mt -f /dev/qft0" setblk #BLKSZ). A block size of 0 | |
| switches to variable block size mode i.e. "mt setblk 0" switches | |
| off the block size restriction. However, this disables zftape's | |
| built in on-the-fly compression which doesn't work with variable | |
| block size mode. | |
| The BLKSZ parameter must be given as a byte count and must be a | |
| multiple of 32k or 0, i.e. use "mt setblk 32768" to switch to a | |
| block size of 32k. | |
| The typical symptom of a block size mismatch is an "invalid | |
| argument" error message. | |
| 3. Write Access when not at EOD (End Of Data) or BOT (Begin Of Tape) | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| zftape (the file system interface of ftape-3.x) denies write access | |
| to the tape cartridge when it isn't positioned either at BOT or | |
| EOD. | |
| 4. Formatting | |
| ~~~~~~~~~~ | |
| ftape DOES support formatting of floppy tape cartridges. You need the | |
| `ftformat' program that is shipped with the modules version of ftape. | |
| Please get the latest version of ftape from | |
| ftp://sunsite.unc.edu/pub/Linux/kernel/tapes | |
| or from the ftape home page at | |
| http://ftape.dot-heine.de/ | |
| `ftformat' is contained in the `./contrib/' subdirectory of that | |
| separate ftape package. | |
| 5. Interchanging cartridges with other operating systems | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| The internal emulation of Unix tape device file marks has changed | |
| completely. ftape now uses the volume table segment as specified | |
| by the QIC-40/80/3010/3020/113 standards to emulate file marks. As | |
| a consequence there is limited support to interchange cartridges | |
| with other operating systems. | |
| To be more precise: ftape will detect volumes written by other OS's | |
| programs and other OS's programs will detect volumes written by | |
| ftape. | |
| However, it isn't possible to extract the data dumped to the tape | |
| by some MSDOS program with ftape. This exceeds the scope of a | |
| kernel device driver. If you need such functionality, then go ahead | |
| and write a user space utility that is able to do that. ftape already | |
| provides all kernel level support necessary to do that. | |
| ******************************************************************************* | |
| B. Debugging Output | |
| ================ | |
| 1. Introduction | |
| ~~~~~~~~~~~~ | |
| The ftape driver can be very noisy in that is can print lots of | |
| debugging messages to the kernel log files and the system console. | |
| While this is useful for debugging it might be annoying during | |
| normal use and enlarges the size of the driver by several kilobytes. | |
| To reduce the size of the driver you can trim the maximal amount of | |
| debugging information available during kernel configuration. Please | |
| refer to the kernel configuration script and its on-line help | |
| functionality. | |
| The amount of debugging output maps to the "tracing" boot time | |
| option and the "ft_tracing" modules option as follows: | |
| 0 bugs | |
| 1 + errors (with call-stack dump) | |
| 2 + warnings | |
| 3 + information | |
| 4 + more information | |
| 5 + program flow | |
| 6 + fdc/dma info | |
| 7 + data flow | |
| 8 + everything else | |
| 2. Tuning the debugging output | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| To reduce the amount of debugging output printed to the system | |
| console you can | |
| i) trim the debugging output at run-time with | |
| mt -f /dev/nqft0 setdensity #DBGLVL | |
| where "#DBGLVL" is a number between 0 and 9 | |
| ii) trim the debugging output at module load time with | |
| modprobe ftape ft_tracing=#DBGLVL | |
| Of course, this applies only if you have configured ftape to be | |
| compiled as a module. | |
| iii) trim the debugging output during system boot time. Add the | |
| following to the kernel command line: | |
| ftape=#DBGLVL,tracing | |
| Please refer also to the next section if you don't know how to | |
| set boot time parameters. | |
| ******************************************************************************* | |
| C. Boot and load time configuration | |
| ================================ | |
| 1. Setting boot time parameters | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| Assuming that you use lilo, the LI)nux LO)ader, boot time kernel | |
| parameters can be set by adding a line | |
| append some_kernel_boot_time_parameter | |
| to `/etc/lilo.conf' or at real boot time by typing in the options | |
| at the prompt provided by LILO. I can't give you advice on how to | |
| specify those parameters with other loaders as I don't use them. | |
| For ftape, each "some_kernel_boot_time_parameter" looks like | |
| "ftape=value,option". As an example, the debugging output can be | |
| increased with | |
| ftape=4,tracing | |
| NOTE: the value precedes the option name. | |
| 2. Module load time parameters | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| Module parameters can be specified either directly when invoking | |
| the program 'modprobe' at the shell prompt: | |
| modprobe ftape ft_tracing=4 | |
| or by editing the file `/etc/modprobe.conf' in which case they take | |
| effect each time when the module is loaded with `modprobe' (please | |
| refer to the respective manual pages). Thus, you should add a line | |
| options ftape ft_tracing=4 | |
| to `/etc/modprobe.conf` if you intend to increase the debugging | |
| output of the driver. | |
| 3. Ftape boot- and load time options | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| i. Controlling the amount of debugging output | |
| DBGLVL has to be replaced by a number between 0 and 8. | |
| module | kernel command line | |
| -----------------------|---------------------- | |
| ft_tracing=DBGLVL | ftape=DBGLVL,tracing | |
| ii. Hardware setup | |
| BASE is the base address of your floppy disk controller, | |
| IRQ and DMA give its interrupt and DMA channel, respectively. | |
| BOOL is an integer, "0" means "no"; any other value means | |
| "yes". You don't need to specify anything if connecting your tape | |
| drive to the standard floppy disk controller. All of these | |
| values have reasonable defaults. The defaults can be modified | |
| during kernel configuration, i.e. while running "make config", | |
| "make menuconfig" or "make xconfig" in the top level directory | |
| of the Linux kernel source tree. Please refer also to the on | |
| line documentation provided during that kernel configuration | |
| process. | |
| ft_probe_fc10 is set to a non-zero value if you wish for ftape to | |
| probe for a Colorado FC-10 or FC-20 controller. | |
| ft_mach2 is set to a non-zero value if you wish for ftape to probe | |
| for a Mountain MACH-2 controller. | |
| module | kernel command line | |
| -----------------------|---------------------- | |
| ft_fdc_base=BASE | ftape=BASE,ioport | |
| ft_fdc_irq=IRQ | ftape=IRQ,irq | |
| ft_fdc_dma=DMA | ftape=DMA,dma | |
| ft_probe_fc10=BOOL | ftape=BOOL,fc10 | |
| ft_mach2=BOOL | ftape=BOOL,mach2 | |
| ft_fdc_threshold=THR | ftape=THR,threshold | |
| ft_fdc_rate_limit=RATE | ftape=RATE,datarate | |
| 4. Example kernel parameter setting | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| To configure ftape to probe for a Colorado FC-10/FC-20 controller | |
| and to increase the amount of debugging output a little bit, add | |
| the following line to `/etc/lilo.conf': | |
| append ftape=1,fc10 ftape=4,tracing | |
| 5. Example module parameter setting | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| To do the same, but with ftape compiled as a loadable kernel | |
| module, add the following line to `/etc/modprobe.conf': | |
| options ftape ft_probe_fc10=1 ft_tracing=4 | |
| ******************************************************************************* | |
| D. Support and contacts | |
| ==================== | |
| Ftape is distributed under the GNU General Public License. There is | |
| absolutely no warranty for this software. However, you can reach | |
| the current maintainer of the ftape package under the email address | |
| given in the MAINTAINERS file which is located in the top level | |
| directory of the Linux kernel source tree. There you'll find also | |
| the relevant mailing list to use as a discussion forum and the web | |
| page to query for the most recent documentation, related work and | |
| development versions of ftape. | |
| Changelog: | |
| ========== | |
| ~1996: Original Document | |
| 10-24-2004: General cleanup and updating, noting additional module options. | |
| James Nelson <james4765@gmail.com> |