Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6] / Documentation / s390 / TAPE
1 Channel attached Tape device driver 
2
3 -----------------------------WARNING-----------------------------------------
4 This driver is considered to be EXPERIMENTAL. Do NOT use it in 
5 production environments. Feel free to test it and report problems back to us. 
6 -----------------------------------------------------------------------------
7
8 The LINUX for zSeries tape device driver manages channel attached tape drives 
9 which are compatible to IBM 3480 or IBM 3490 magnetic tape subsystems. This 
10 includes various models of these devices (for example the 3490E). 
11
12
13 Tape driver features 
14
15 The device driver supports a maximum of 128 tape devices. 
16 No official LINUX device major number is assigned to the zSeries tape device 
17 driver. It allocates major numbers dynamically and reports them on system 
18 startup. 
19 Typically it will get major number 254 for both the character device front-end 
20 and the block device front-end. 
21
22 The tape device driver needs no kernel parameters. All supported devices 
23 present are detected on driver initialization at system startup or module load.
24 The devices detected are ordered by their subchannel numbers. The device with 
25 the lowest subchannel number becomes device 0, the next one will be device 1 
26 and so on. 
27
28
29 Tape character device front-end 
30
31 The usual way to read or write to the tape device is through the character 
32 device front-end. The zSeries tape device driver provides two character devices
33 for each physical device -- the first of these will rewind automatically when 
34 it is closed, the second will not rewind automatically. 
35
36 The character device nodes are named /dev/rtibm0 (rewinding) and /dev/ntibm0 
37 (non-rewinding) for the first device, /dev/rtibm1 and /dev/ntibm1 for the 
38 second, and so on. 
39
40 The character device front-end can be used as any other LINUX tape device. You 
41 can write to it and read from it using LINUX facilities such as GNU tar. The 
42 tool mt can be used to perform control operations, such as rewinding the tape 
43 or skipping a file. 
44
45 Most LINUX tape software should work with either tape character device. 
46
47
48 Tape block device front-end 
49
50 The tape device may also be accessed as a block device in read-only mode. 
51 This could be used for software installation in the same way as it is used with 
52 other operation systems on the zSeries platform (and most LINUX 
53 distributions are shipped on compact disk using ISO9660 filesystems). 
54
55 One block device node is provided for each physical device. These are named 
56 /dev/btibm0 for the first device, /dev/btibm1 for the second and so on. 
57 You should only use the ISO9660 filesystem on LINUX for zSeries tapes because 
58 the physical tape devices cannot perform fast seeks and the ISO9660 system is 
59 optimized for this situation. 
60
61
62 Tape block device example 
63
64 In this example a tape with an ISO9660 filesystem is created using the first 
65 tape device. ISO9660 filesystem support must be built into your system kernel
66 for this. 
67 The mt command is used to issue tape commands and the mkisofs command to 
68 create an ISO9660 filesystem: 
69
70 - create a LINUX directory (somedir) with the contents of the filesystem 
71      mkdir somedir
72      cp contents somedir 
73
74 - insert a tape 
75
76 - ensure the tape is at the beginning 
77      mt -f /dev/ntibm0 rewind 
78
79 - set the blocksize of the character driver. The blocksize 2048 bytes
80   is commonly used on ISO9660 CD-Roms
81      mt -f /dev/ntibm0 setblk 2048 
82
83 - write the filesystem to the character device driver 
84      mkisofs -o /dev/ntibm0 somedir 
85
86 - rewind the tape again 
87      mt -f /dev/ntibm0 rewind 
88
89 - Now you can mount your new filesystem as a block device: 
90      mount -t iso9660 -o ro,block=2048 /dev/btibm0 /mnt 
91
92 TODO List 
93
94    - Driver has to be stabilized still
95
96 BUGS 
97
98 This driver is considered BETA, which means some weaknesses may still
99 be in it.
100 If an error occurs which cannot be handled by the code you will get a 
101 sense-data dump.In that case please do the following: 
102
103 1. set the tape driver debug level to maximum: 
104      echo 6 >/proc/s390dbf/tape/level 
105
106 2. re-perform the actions which produced the bug. (Hopefully the bug will 
107    reappear.) 
108
109 3. get a snapshot from the debug-feature: 
110      cat /proc/s390dbf/tape/hex_ascii >somefile 
111
112 4. Now put the snapshot together with a detailed description of the situation 
113    that led to the bug: 
114  - Which tool did you use? 
115  - Which hardware do you have? 
116  - Was your tape unit online? 
117  - Is it a shared tape unit? 
118
119 5. Send an email with your bug report to: 
120      mailto:Linux390@de.ibm.com 
121
122