ftape-HOWTO Kai Harrekilde-Petersen, khp@login.dknet.dk Last updated October 21th, 1994 for ftape-1.13b This HOWTO discuss the essentials of the do's and dont's for the ftape driver under Linux. The ftape driver interfaces to QIC-80 and QIC-40 compatible drives only. These drives connects via the floppy con- troller. It does not cover SCSI or QIC-02 tape drives. DAT tape drives usually (always?) connect to a SCSI controller. This is but one of the Linux HOWTO documents. You can get the HOWTO's from sun- site.unc.edu:/pub/Linux/doc/HOWTO (this is the ``official'' place) or via the web from the Linux Documentation home page (http://sunsite.unc.edu/mdw/linux.hmtl). You cannot rely on the HOWTO's being posted to comp.os.linux.announce, as some newsfeeds have complained about their size. 1. Legalese This is the `Frequently Asked Questions' (FAQ) / HOWTO document for the ftape driver (ftape-HOWTO), Copyright (C) 1993,1994 Kai Harrekilde-Petersen. Copyright statement: You may distribute this document freely as a whole in any form and free of charge. You may distribute parts of this document, provided this copyright message is included and you include a message stating that it is not the full HOWTO document and a pointer to where the full document can be obtained. Specifically, it may be included in commercial distributions, without my prior consent. However, I would like to be informed of such usage. You may translate this HOWTO into any language, whatsoever, provided that you leave this copyright statement and the disclaimer intact, and that you append a notice stating who translated the document. DISCLAIMER: While I have tried to include the most correct and up-to-date information available to me, I cannot guarantee that usage of the information in this document does not result in loss of data. I provide NO WARRANTY about the information in the HOWTO and I cannot be made liable for any consequences for any damage resulting from using information in this HOWTO. 2. The preliminaries Note that I (the howto-maintainer) no longer use ftape myself, so I cannot give much up-todate advice on e.g. compiling ftape. If you have a problem, try posting on comp.os.linux.help, or to the TAPE channel (see ``Following the ftape development'' below). You should try to post a summary of your problems and its solution(s), after you've got it working, even if only partially add it to the HOWTO. I read my mail daily, but I won't guarantee that I will respond. Also, I seldomly read the newsgroups ( comp.os.linux.help et al), as my Internet access is through a modem line and I have to read news On- line 8-(. Bas (the author of ftape) is still alive, but he has been rather busy at his for-pay job. Thus, ftape has been ``suffering'' lately. If you recieve this as part of a printed distribution, please check out the Linux Documentation home page (http://sunsite.unc.edu/mdw/linux.hmtl) or ftp to sunsite.unc.edu: /pub/Linux/doc/HOWTO to see if there exists a more recent version. This could potentially save you a lot troubles. 2.1. What is ftape ftape is a driver program that controls various low-cost tape drives that connect to the floppy controller. ftape is written by Bas Laarhoven , with a little help from his friends to sort out the ECC (Error Correcting Code) stuff. ftape supports drives that conform to the QIC-117 and QIC-80/QIC-40 standards. ftape does not support QIC-02 tape drives or drives that connect via a SCSI interface, e.g. a DAT drive. SCSI drives are accessed as /dev/st[0-7] and are supported by the kernel directly. See section ``Supported drives'' and ``Un-supported drives'' for a list of supported and unsupported drives. 2.2. The newest version of ftape - and where to get it The newest version of the ftape driver is ftape-1.13b, and can be fetched from the following sites: tsx-11.mit.edu [18.172.1.2]: /pub/linux/ALPHA/QIC-80/ sunsite.unc.edu [152.2.22.81]: /pub/Linux/kernel/tapes/ ftp.funet.fi [128.214.248.6]: /pub/OS/Linux/BETA/QIC-80/ You should get the files: ftape-1.13b.tar.gz, ftape-1.13b.lsm and modules.tar.gz. The .tar.gz file is the ftape driver proper, while the .lsm file is a Linux Software Map (LSM) file for the LSM project, and the modules file is a set of utilities for manipulating loadable drivers (insertion and removal). Note: if you have an old version of the modules utilities, e.g. modutils-0.99.14.tar.gz or modutils-0.99.15.tar.gz, you must upgrade. Due to some recent changes in the kernel's DMA and interrupt code, a patch is required to be able to compile ftape with newer kernels (Sorry, I don't know when it was changed, you'll have to check that out yourself). These patches, can be found in the same place as ftape itself: ftape-irq-dma.patch ftape-conner.patch The latter patch (ftape-conner.patch) is only needed if you have a Coner C250MQ drive. It makes ftape work with tapes (incorrectly) formatted with Connor's software. 2.3. ftape driver Following the development of the If you want to follow the development of the ftape driver, you should consider subscribing to the TAPE channel on Linux-activists. To subscribe, you send a mail to , with the first line (or as a part of the header) saying `X-Mn-Admin: join tape'. If you send an empty mail you are sent a HOWTO mail. To submit a real mail to the mailing lists, send a mail to , and remember that the first line (or a header line) should read `X-Mn-Key: TAPE'. 2.4. Supported drives All drives that are both QIC-117 compatible and either QIC-40 or QIC-80 compatible should work. Currently, the list of drives that are known to work with ftape is: o Colorado DJ-10 / DJ-20 (aka: Jumbo 120 / Jumbo 250) o Archive 5580i / XL9250i o Insight 80Mb o Conner C250MQ o Wangtek 3080F o Iomega 250 o Escom / Archive (Hornet) 31250Q o Summit SE 150 / SE 250 o Mountain FS8000 o Colorado FC-10 High-Speed Controller (well, it's not a drive, but ...) o Tallgrass FS300 (needs a tiny hack to work with AHA1542B) Although I do not want to endorse one drive type over another, I want to mention that the Colorado DJ-20 drive is rather noisy, when compared to, say, Connor C250MQ drive ('tis said that the Colorado is 5-10 times as noisy as the Connor drive). Support for the FC-10 controller has been merged into the ftape driver in version 1.12. See the RELEASE-NOTES and the Makefile files in the ftape distribution. Previously, Iomega drives could only be used with one file (e.g. tar file) per tape, due to a mis-feature in the Iomega firmware. This is no longer true (I am told). Iomega drives should have full functionality. See the RELEASE-NOTES file that comes with the ftape distribution, for more information. If you have a Tallgrass FS300 and an AHA1542B, you need to increase the bus-on / bus-off time of the 1542B. Antti Virjo (klanvi@uti.fi), says that changing CMD_BUSON_TIME to 4 and CMD_BUSOFF_CMD to 12 in linux/drivers/scsi/aha1542.c will do the trick. NOTE: If you have a drive that works fine, but it is not listed here, please send a mail to the HOWTO maintainer (khp@login.dknet.dk). 2.5. Un-supported drives o All drives that connect to the parallel port (eg: Colorado Trakker) o High-Speed controller's. (eg: Colorado TC-15 & FC-20) o Irwin AX250L / Accutrak 250. (not a QIC-80 drive) o IBM Internal Tape Backup Unit (identical to the Irwin AX250L drive) o COREtape light Generally, ALL drives that connect to the parallel port are NOT supported. This is because these drives uses (different) proprietary interfaces, that are very much different from the QIC-117 standard. The Colorado TC-15 controller (and it's like) are not supported directly by the ftape driver. The only `special' controller that can be used with ftape is the Colorado FC-10. Support for the FC-10 was integrated in version 1.12. The Irwin AX250L (and the IBM Internal Tape Backup Unit) does not work the ftape. This is because they only support QIC-117, but not the QIC-80 standard (they use Irwin's proprietary servoe (Rhomat) format). I know nothing about the Rhomat format, nor where to get any info on it. Sorry. The COREtape light does not work (yet). We have some info on it, but we have not got it to accept the initialisation data. As the user who had the COREtape drive swapped it for another tape drive in frustration, we may never get it to work with ftape (no test drive). 2.6. Using an external tape drive with ftape If you have a floppy controller which has a female DB37 connector on the bracket (and some means of delivering power to the drive), you can use it with ftape. OK, that sentence was not very obvious. Let's try it this way: Some FDC's (the very ancient one's), have a DB37 connector on the bracket, for connecting to external floppy drives. If you make a suitable cable (from a quick glance on an FDC that I've got lying around, it seems to be almost a straight 1-to-1 cable. However, your milage may vary) from the DB37 connector (on the FDC) and to your external tape drive, you can get ftape to control your tape drive. This is because that from a program's view there is no difference between the internal and the external connectors. So, from ftape's point of view, they are identical. 2.7. Compiling and installing the ftape driver There is included an installation guide (the file Install-guide) in the ftape distribution; please read that. 2.8. Where to get the kernel sources You can get the kernel sources from the same place as you got the ftape sources. The sources are kept at the following sites (and many mirror-sites) tsx-11.mit.edu [18.172.1.2]: /pub/linux/sources/system/ sunsite.unc.edu [152.2.22.81]: /pub/Linux/kernel/ ftp.funet.fi [128.214.248.6]: /pub/OS/Linux/PEOPLE/Linus You will find a number of subdirectories, including two named v1.0 and v1.1. These contain (you guessed it!) v1.0 and v1.1 of the kernel. I suggest that you get version 1.1.. 2.9. Can I format my tapes under Linux? No! Honestly, noone is working on it: If you want to work on it, drop Bas a line. You'll have to use MessyDOS (arghhh!) instead or buy preformatted tapes. However, some of the preformatted tapes are not checked for bad sectors!. If the ftape driver encounters a tape with no bad blocks, it will issue a warning. 2.10. Which formatting programs can I use under DOS? These are known to work: o Colorado Memory System's software (tape.exe) o Connor Backup Basics v1.1 and all Windows versions o Norton Backup o QICstream version 2 o Tallgrass FileSecure v1.52 These programs are known to be more or less buggy: o Conner Backup Basics 1.0 o CP Backup (wastes tape space, but is OK apart from that) In fact, most software under DOS should work. The Conner Backup Basics v1.0 has a parameter off-by-one (someone could not read the QIC-80 specs right!), which is corrected in version 1.1. Dennis T. Flaherty (dennisf@denix.elk.miles.com) report that Conner C250MQ owners can obtain the new v1.1, by calling 1-800-230-5638 (in the US) and ask for an upgrade (for a nominal fee for the floppy). The Windows versions should work fine. Central Point Backup can be used, but it wastes precious tape space when it encounters a bad spot on the tape. NOTE: If you are running a formatting software under DOS, which is not mentioned here, please mail the maintainer (khp@login.dknet.dk) the relevant info, so I can update the HOWTO. 3. Backing up and restoring data This section describes some simple uses of tar and mt. 3.1. Writing an archive to a tape You can use `tar', `dd', `cpio', and `afio'. You will need to use `mt' to get the full potential of your tapes and the ftape driver. For a start I'd recommend using `tar', as it can archive lots of directories and let you pick out seperate files from an archive. I have been told that cpio creates smaller archives and is more flexible than tar, but I haven't tried it myself. `afio' creates backups where each file is compressed individually and then concatenated. This will allow you to access the files ``after'' the point of the error. If you use gzipped tar files, all data after the point of the error is lost! (to me, this is a pretty good reason for NOT using compression on backups). To make a backup of your kernel source tree using tar, do this (assuming you have the sources in /usr/src/linux): cd /usr/src tar cf /dev/ftape linux This will not compress the files, but gives you a smoother tape run. If you want the compression (and you've got tar 1.11.2), you just include the -z flag(*), eg: `tar czf /dev/ftape linux' For further instructions on how to use tar, dd and mt look at the man pages and the texinfo files that comes with the respective distributions. (*) tar assumes that the first argument is options, so the `-' is not necessary, i.e. these two commands are the same: `tar xzf /dev/ftape' and `tar -xzf /dev/ftape' 3.2. Restoring an archive OK, let us restore the backup of the kernel source you made in section ``Writing an archive to a tape'' above. To do this you simply say tar xf /dev/ftape If you used compression, you will have to say tar xzf /dev/ftape When you use compression, gzip will complain about trailing garbage after the very end of the archive (and this will lead to a `broken pipe' message). This can be safely ignored. For the other utilities, please read the man page. 3.3. Testing the archive tar has an option (-d) for detecting differences between two archives. To test your backup of the kernel source say tar df /dev/ftape If you do not have the man page for tar, you are not lost (yet); tar has a builtin option list: try `tar --help 2>&1 | more' 3.4. Putting more than one tar file on a tape To put more than one tar file on a tape you must have the mt utility. You will probably have it already, if you got one of the mainline distributions, e.g. Slackware or Debian. tar generates a single Tape ARchive (that's why it is called `tar') and knows nothing about multiple files or positioning of a tape, it just reads or writes from/to a device. mt knows everyting about moving the tape back and forth, but nothing about reading the data off the tape. As you might have guessed, tar and mt in conjunction, does the trick. By using the nrft[0-3] (nftape) device, you can use `mt' to position the tape the correct place (`mt -f /dev/nftape fsf 2' means step over two ``file marks'', i.e. tar files) and then use tar to read or write the relevant data. 3.5. Appending files to an archive ``Is there a way to extend an archive -- put a file on the tape, then later, add more to the tape?'' No. The tar documentation will tell you to use `tar -Ar', but it does not work. This is a limitation of the current ftape driver. (I haven't tried it myself, so it might work with ftape-1.13b). 3.6. Mount/unmounting tapes Since a tape does not have a ``filesystem'' on it, you do not mount / unmount the tape. To backup, you just insert the tape and run your `tar' command (or whatever you use to access the tape with). ``Is there an explicit (un)mount command for the tape?'' Nope. The ftape device is a `character device', and they can not be [u]mount'ed. It is only block devices that gets mounted. 4. Frequently Asked Questions This is a collection of questions I get asked once in a while, which could fall into the category of FAQ's. If you feel that there is some question that ought to be added to the list, please feel free to mail me (but do include an answer, thanks!). 4.1. Can I exchange tapes with someone using DOS? No. The DOS software conforms to the QIC-80 specs about the layout of the DOS filesystem, and it should(?) be a small problem to write a program that can read/write the DOS format. In fact, I'd bet that creating a nice user interface would be a bigger problem. 4.2. How do I `....' with tar? These are really tar questions: Please read the man page and the info page. If you have not got it either, try `tar --help 2>&1 | more'. If your version of tar is v1.11.1 or earlier, consider upgrading to v1.11.2 - This version can call GNU zip directly (i.e.: it supports the -z option) and has an elaborate help included. Also, it compiles right out of the box on Linux. 4.3. ftape DMA transfers gives ECC errors Sadly to say there are some SVGA cards and ethernet cards that do not decode their addresses correct. This typically happens when the ftape buffers are in the range 0x1a0000 to 0x1c0000. Somehow, the DMA write cycles get clobbered and every other byte written gets a bad value (0xff). These problems are reported to happen with both SVGA and ethernet cards. We know of at least one (bad?) ATI 16bit VGA card that caused this. The easiest solution is to put the card in an 8bit slot (it is often not enough to reconfigure the card to 8bit transfers). Moving the ftape buffer away from the VGA range is only a partial solution; All DMA buffers used in Linux can have this problem! Let us make this one clear: This has nothing to do with the ftape software. 4.4. insmod says the kernel version is wrong The insmod program checks the kernel version against the version recorded in the ftape driver. This is a string in kernel-version.h, (e.g.: char kernel_version[] = "1.1.53";) which is extracted from the kernel you are running when you run `make dep'. If you got the error when you tried to insert the ftape driver, remove the file `kernel- version.h', type `make dep ; make' again and the kernel-version.h file should be updated. Remember that you will have to do this every time you change to another kernel version. 4.5. is added The v1.1.0 kernel wont compile when ftape support (Although I haven't heard a lot of complains, I include it here, just to be sure) This was due to a typo (and a hacker who didn't use ftape himself, so he never got around to actually test the code he wrote). This is corrected by patch1.gz, which can be found from the usual ftp sites. 4.6. format' '' ftape complains that ``This tape has no 'Linux raw If you get this complain, try `mt -f /dev/ftape erase'. This should solve the problem. 4.7. binaries/sources/manpages? Where can I find the tar/mt/cpio/dd All of these tools have been developed by the GNU project, and the source (and man page) can be fetched from just-about any ftp site in the world (including ftp.funet.fi, tsx-11.mit.edu, and sunsite.unc.edu). In any case they can be fetched from the official GNU home site: prep.ai.mit.edu [18.71.0.38]:/pub/gnu. The latest versions (by 26. march 94) are: cpio: 2.3 (cpio-2.3.tar.gz) dd: 3.9 (fileutils-3.9.tar.gz) mt: 2.3 (cpio-2.3.tar.gz) tar: 1.11.2 (tar-1.11.2.tar.gz) gzip: 1.2.4 (gzip-1.2.4.tar.gz) They all compile out of the box on Linux v1.0.4 / libc v4.5.19 / gcc v2.5.8 (The rmt program does not compile out of the box, but it is not needed as it is only used for accessing the tape drive remotely). 5. Debugging the ftape driver 5.1. bug? The kernel/ftape crashes on me when I do `...' - is that a No, that is a feature ;-) Seriously, reliable software do not crash. Especially kernels do not or rather should not crash. If the kernel crashes upon you when you are running ftape, and you can show that it is ftape that is messing things up, regard it as a Bug That Should Be Fixed. Mail the details to Bas () and to the tape channel. 5.2. ftape keep saying `... new tape', what do I do? [You cannot do this anymore; I do not know a way of fixing it] To get rid of this, do this (blindfold): login as root and say `rmmod ftape'. ftape should choke a few times, give three segmentation violations (or so), and give up life. Check the activity LED on your floppy drive (you do have one, don't you?). If it is constantly lit, you have turned the floppy cable upside down somewhere. Check your cable between controller, tape drive and floppy drive. Usually, one (or more) of the connectors have been turned upside down, such that pin 1 in one end connects to pin 34 in the other end. (All the even-numbered pins are grounded, so you wont be able to use your floppy either). Don't worry; this cannot damage your hardware. 5.3. OK, it's a bug ...ehhh... feature - How do I submit a report? First, make sure you can reproduce the problem. Spurious errors are a pain in the ass, since they are just about impossible to hunt down :-/ This is a quick check list: o Kernel version, and patches applied (even ftape patches) o ftape version o tape drive model / manufacturer o What you did to expose the problem o A log of the run with tracing level set to 7 o What went wrong on your system. o Do not delete the kernel and the ftape.o file. We may want you run try some patches out or run a different test on your system. Increase the tracing level to 7 (just below maximum tracing) and run the offending command again. Get the tracing data from the kernel log or /proc/kmsg, depending on where you harvest your error messages. Do not try to `trim' the kernel log. You might consider something irrelevant, which is essential to the investigator of the bug. State exactly what you did, and what happened on your system. We might not see the error because we use a different tape drive or another version of the kernel! Send your bug report to (and remember to add a `X-Mn-Key: TAPE' line in the header). You should also mail the bug to . 5.4. How do I change the trace-level? You can do this two ways: either change the default trace-level (the var `tracing' in file `ftape-rw.c') and recompile or say mt -f /dev/ftape fsr The use of the fsr command in mt is a hack, and will disappear with time. 5.5. When I use /dev/nftape, I get garbage ... why? This was a problem in `the old days', before version 0.9.10. Nowadays, the non-rewinding devices are working. If you have anything earlier, I strongly recommend you to update to the 1.13b version.