xref: /freebsd/bin/chio/chio.1 (revision b2d48be1bc7df45ddd13b143a160d0acb5a383c5)
1.\"	$NetBSD: chio.1,v 1.4 1997/10/02 00:41:25 hubertf Exp $
2.\"-
3.\" Copyright (c) 1996 Jason R. Thorpe <thorpej@and.com>
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. All advertising materials mentioning features or use of this software
15.\"    must display the following acknowledgements:
16.\"	This product includes software developed by Jason R. Thorpe
17.\"	for And Communications, http://www.and.com/
18.\" 4. The name of the author may not be used to endorse or promote products
19.\"    derived from this software without specific prior written permission.
20.\"
21.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31.\" SUCH DAMAGE.
32.\"
33.\" $FreeBSD$
34.\"
35.Dd May 14, 1998
36.Dt CHIO 1
37.Os
38.Sh NAME
39.Nm chio
40.Nd medium changer control utility
41.Sh SYNOPSIS
42.Nm
43.Op Fl f Ar changer
44.Ar command
45.Op Fl <flags>
46.Ar arg1
47.Ar arg2
48.Op Ar arg3 Op ...
49.Sh DESCRIPTION
50The
51.Nm
52utility is used to control the operation of medium changers, such as those
53found in tape and optical disk jukeboxes.
54.Pp
55The options are as follows:
56.Bl -tag -width indent
57.It Fl f Ar changer
58Use the device
59.Ar changer
60rather than the default device
61.Pa /dev/ch0 .
62.El
63.Pp
64The default changer may be overridden by setting the environment variable
65.Ev CHANGER
66to the desired changer device.
67.Pp
68A medium changer apparatus is made up of
69.Em elements .
70There are five element types:
71.Em picker
72(medium transport),
73.Em slot
74(storage),
75.Em portal
76(import/export),
77.Em drive
78(data transfer), and
79.Em voltag
80(select by volume identifier).
81The
82.Em voltag
83pseudo-element type allows the selection of tapes by their volume tag
84(typically a barcode on the tape).
85.Pp
86In this command description, the shorthand
87.Em ET
88will be used to represent an element type, and
89.Em EU
90will be used to represent an element unit.
91For example, to represent the first robotic arm in the changer, the
92.Em ET
93would be
94.Dq picker
95and the
96.Em EU
97would be
98.Dq 0 .
99.Sh SUPPORTED COMMANDS
100.Bl -tag -width indent
101.It Ic move Xo
102.Ar <from ET> <from EU> <to ET> <to EU>
103.Op Cm inv
104.Xc
105Move the media unit from
106.Ar <from ET/EU>
107to
108.Ar <to ET/EU> .
109If the optional modifier
110.Cm inv
111is specified, the media unit will be inverted before insertion.
112.It Ic exchange Xo
113.Ar <src ET> <src EU> <dst1 ET> <dst1 EU>
114.Op Ar <dst2 ET> <dst2 ET>
115.Op Cm inv1
116.Op Cm inv2
117.Xc
118Perform a media unit exchange operation.
119The media unit in
120.Ar <src ET/EU>
121is moved to
122.Ar <dst1 ET/EU>
123and the media unit previously in
124.Ar <dst1 ET/EU>
125is moved to
126.Ar <dst2 ET/EU> .
127In the case of a simple exchange,
128.Ar <dst2 ET/EU>
129is omitted and the values
130.Ar <src ET/EU>
131are used in their place.
132The optional modifiers
133.Cm inv1
134and
135.Cm inv2
136specify whether the media units are to be inverted before insertion into
137.Ar <dst1 ET/EU>
138and
139.Ar <dst2 ET/EU>
140respectively.
141.Pp
142Note that not all medium changers support the
143.Ic exchange
144operation; the changer must have multiple free pickers or emulate
145multiple free pickers with transient storage.
146.It Ic return Xo
147.Ar <from ET> <from EU>
148.Xc
149Return the media unit to its source element.
150This command will query the status of the specified media unit, and
151will move it to the element specified in its source attribute.
152This is a convenient way to return media from a drive or portal
153to its previous element in the changer.
154.It Ic position Xo
155.Ar <to ET> <to EU>
156.Op Cm inv
157.Xc
158Position the picker in front of the element described by
159.Ar <to ET/EU> .
160If the optional modifier
161.Cm inv
162is specified, the media unit will be inverted before insertion.
163.Pp
164Note that not all changers behave as expected when issued this command.
165.It Ic params
166Report the number of slots, drives, pickers, and portals in the changer,
167and which picker unit the changer is currently configured to use.
168.It Ic getpicker
169Report which picker unit the changer is currently configured to use.
170.It Ic setpicker Xo
171.Ar <unit>
172.Xc
173Configure the changer to use picker
174.Ar <unit> .
175.It Ic ielem Xo
176.Op Ar <timeout>
177.Xc
178Perform an
179.Em INITIALIZE ELEMENT STATUS
180operation on the changer.
181The optional
182.Ar <timeout>
183parameter may be given to specify a timeout in seconds for the
184operations.
185This may be used if the operation takes unusually long
186because of buggy firmware or the like.
187.It Ic voltag Xo
188.Op Fl fca
189.Ar <ET>
190.Ar <EU>
191.Op Ar <label>
192.Op Ar <serial>
193.Xc
194Change volume tag for an element in the media changer.
195This command
196is only supported by few media changers.
197If it is not supported by a
198device, using this command will usually result in an "Invalid Field in
199CDB" error message on the console.
200.Pp
201If the
202.Fl c
203flag is specified, the volume tag of the specified element is
204cleared.
205If the
206.Fl f
207flag is specified, the volume tag is superseded with the specified
208volume tag even if a volume tag is already defined for the element.
209It is an error to not specify the
210.Fl f
211flag when trying to set a label for an element which already has
212volume tag information defined.
213.Pp
214The command works with the primary volume tag or, if the
215.Fl a
216flag is given, with the alternate volume tag.
217.It Ic status Xo
218.Op Fl vVsSbIa
219.Op Ar <type>
220.Xc
221Report the status of all elements in the changer.
222If
223.Ar <type>
224is specified, report the status of all elements of type
225.Ar <type> .
226.It Fl v
227Print the primary volume tag for each loaded medium, if any.
228The volume
229tag is printed as
230.Dq <LABEL:SERIAL> .
231.It Fl V
232Print the alternate volume tag for each loaded medium, if any.
233.It Fl s
234Print the additional sense code and additional sense code qualifier for
235each element.
236.It Fl S
237Print the element source address for each element.
238.It Fl b
239Print SCSI bus information for each element.
240Note that this information
241is valid only for drives.
242.It Fl I
243Print the internal element addresses for each element.
244The internal
245element address is not normally used with this driver.
246It is reported
247for diagnostic purposes only.
248.It Fl a
249Print all additional information (as in
250.Fl vVsSba ) .
251.El
252.Pp
253The status bits are defined as follows:
254.Bl -tag -width indent
255.It FULL
256Element contains a media unit.
257.It IMPEXP
258Media was deposited into element by an outside human operator.
259.It EXCEPT
260Element is in an abnormal state.
261.It ACCESS
262Media in this element is accessible by a picker.
263.It EXENAB
264Element supports passing media (exporting) to an outside human operator.
265.It INENAB
266Element supports receiving media (importing) from an outside human operator.
267.El
268.Sh FILES
269.Bl -tag -width /dev/ch0 -compact
270.It Pa /dev/ch0
271default changer device
272.El
273.Sh EXAMPLES
274.Bl -tag -width indent
275.It Li chio move slot 3 drive 0
276Move the media in slot 3 (fourth slot) to drive 0 (first drive).
277.It Li chio move voltag VOLUME01 drive 0
278Move the media with the barcode VOLUME01 to drive 0 (first drive).
279.It Li chio return drive 0
280Remove the tape from drive 0 (first drive) and return it to its original
281location in the rack.
282.It Li chio setpicker 2
283Configure the changer to use picker 2 (third picker) for operations.
284.El
285.Sh SEE ALSO
286.Xr mt 1 ,
287.Xr mount 8
288.Sh AUTHORS
289.An -nosplit
290The
291.Nm
292program and SCSI changer driver were written by
293.An Jason R. Thorpe Aq Mt thorpej@and.com
294for And Communications,
295.Pa http://www.and.com/ .
296.Pp
297Additional work by
298.An Hans Huebner Aq Mt hans@artcom.de
299and
300.An Steve Gunn Aq Mt csg@waterspout.com .
301