mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-27 03:47:43 +00:00
1da177e4c3
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
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
|
|
|
|
|