| Channel attached Tape device driver  | 
 |  | 
 | -----------------------------WARNING----------------------------------------- | 
 | This driver is considered to be EXPERIMENTAL. Do NOT use it in  | 
 | production environments. Feel free to test it and report problems back to us.  | 
 | ----------------------------------------------------------------------------- | 
 |  | 
 | The LINUX for zSeries tape device driver manages channel attached tape drives  | 
 | which are compatible to IBM 3480 or IBM 3490 magnetic tape subsystems. This  | 
 | includes various models of these devices (for example the 3490E).  | 
 |  | 
 |  | 
 | Tape driver features  | 
 |  | 
 | The device driver supports a maximum of 128 tape devices.  | 
 | No official LINUX device major number is assigned to the zSeries tape device  | 
 | driver. It allocates major numbers dynamically and reports them on system  | 
 | startup.  | 
 | Typically it will get major number 254 for both the character device front-end  | 
 | and the block device front-end.  | 
 |  | 
 | The tape device driver needs no kernel parameters. All supported devices  | 
 | present are detected on driver initialization at system startup or module load. | 
 | The devices detected are ordered by their subchannel numbers. The device with  | 
 | the lowest subchannel number becomes device 0, the next one will be device 1  | 
 | and so on.  | 
 |  | 
 |  | 
 | Tape character device front-end  | 
 |  | 
 | The usual way to read or write to the tape device is through the character  | 
 | device front-end. The zSeries tape device driver provides two character devices | 
 | for each physical device -- the first of these will rewind automatically when  | 
 | it is closed, the second will not rewind automatically.  | 
 |  | 
 | The character device nodes are named /dev/rtibm0 (rewinding) and /dev/ntibm0  | 
 | (non-rewinding) for the first device, /dev/rtibm1 and /dev/ntibm1 for the  | 
 | second, and so on.  | 
 |  | 
 | The character device front-end can be used as any other LINUX tape device. You  | 
 | can write to it and read from it using LINUX facilities such as GNU tar. The  | 
 | tool mt can be used to perform control operations, such as rewinding the tape  | 
 | or skipping a file.  | 
 |  | 
 | Most LINUX tape software should work with either tape character device.  | 
 |  | 
 |  | 
 | Tape block device front-end  | 
 |  | 
 | The tape device may also be accessed as a block device in read-only mode.  | 
 | This could be used for software installation in the same way as it is used with  | 
 | other operation systems on the zSeries platform (and most LINUX  | 
 | distributions are shipped on compact disk using ISO9660 filesystems).  | 
 |  | 
 | One block device node is provided for each physical device. These are named  | 
 | /dev/btibm0 for the first device, /dev/btibm1 for the second and so on.  | 
 | You should only use the ISO9660 filesystem on LINUX for zSeries tapes because  | 
 | the physical tape devices cannot perform fast seeks and the ISO9660 system is  | 
 | optimized for this situation.  | 
 |  | 
 |  | 
 | Tape block device example  | 
 |  | 
 | In this example a tape with an ISO9660 filesystem is created using the first  | 
 | tape device. ISO9660 filesystem support must be built into your system kernel | 
 | for this.  | 
 | The mt command is used to issue tape commands and the mkisofs command to  | 
 | create an ISO9660 filesystem:  | 
 |  | 
 | - create a LINUX directory (somedir) with the contents of the filesystem  | 
 |      mkdir somedir | 
 |      cp contents somedir  | 
 |  | 
 | - insert a tape  | 
 |  | 
 | - ensure the tape is at the beginning  | 
 |      mt -f /dev/ntibm0 rewind  | 
 |  | 
 | - set the blocksize of the character driver. The blocksize 2048 bytes | 
 |   is commonly used on ISO9660 CD-Roms | 
 |      mt -f /dev/ntibm0 setblk 2048  | 
 |  | 
 | - write the filesystem to the character device driver  | 
 |      mkisofs -o /dev/ntibm0 somedir  | 
 |  | 
 | - rewind the tape again  | 
 |      mt -f /dev/ntibm0 rewind  | 
 |  | 
 | - Now you can mount your new filesystem as a block device:  | 
 |      mount -t iso9660 -o ro,block=2048 /dev/btibm0 /mnt  | 
 |  | 
 | TODO List  | 
 |  | 
 |    - Driver has to be stabilized still | 
 |  | 
 | BUGS  | 
 |  | 
 | This driver is considered BETA, which means some weaknesses may still | 
 | be in it. | 
 | If an error occurs which cannot be handled by the code you will get a  | 
 | sense-data dump.In that case please do the following:  | 
 |  | 
 | 1. set the tape driver debug level to maximum:  | 
 |      echo 6 >/proc/s390dbf/tape/level  | 
 |  | 
 | 2. re-perform the actions which produced the bug. (Hopefully the bug will  | 
 |    reappear.)  | 
 |  | 
 | 3. get a snapshot from the debug-feature:  | 
 |      cat /proc/s390dbf/tape/hex_ascii >somefile  | 
 |  | 
 | 4. Now put the snapshot together with a detailed description of the situation  | 
 |    that led to the bug:  | 
 |  - Which tool did you use?  | 
 |  - Which hardware do you have?  | 
 |  - Was your tape unit online?  | 
 |  - Is it a shared tape unit?  | 
 |  | 
 | 5. Send an email with your bug report to:  | 
 |      mailto:Linux390@de.ibm.com  | 
 |  | 
 |  |