mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-22 12:14:01 +08:00
123 lines
4.4 KiB
Plaintext
123 lines
4.4 KiB
Plaintext
|
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
|
||
|
|
||
|
|