mtx - control SCSI media changer devices


SYNOPSIS

       mtx [-f <scsi-generic-device>] [nobarcode] [invert] [noat­
       tach] command [ command ... ]


DESCRIPTION

       The mtx command controls single or multi-drive SCSI  media
       changers   such   as   tape  changers,  autoloaders,  tape
       libraries, or optical media jukeboxes.   It  can  also  be
       used with media changers that use the 'ATTACHED' API, pre­
       suming that they  properly  report  the  MChanger  bit  as
       required by the SCSI T-10 SMC specification.


OPTIONS

       The  first  argument,  given  following  -f  , is the SCSI
       generic device corresponding to your media changer.   Con­
       sult your operating system's documentation for more infor­
       mation (for  example,  under  Linux  these  are  generally
       /dev/sg0   through  /dev/sg15,  under  FreeBSD  these  are
       /dev/pass0 through /dev/passX, under SunOS  it  may  be  a
       file under /dev/rdsk).

       The  'invert'  option  will  invert  (flip) the media (for
       optical jukeboxes that allow  such)  before  inserting  it
       into the drive or returning it to the storage slot.

       The 'noattach' option forces the regular media changer API
       even if the media changer  incorrectly  reported  that  it
       uses the 'ATTACHED' API.

       The  'nobarcode'  option  forces the loader to not request
       barcodes even if the loader is capable of reporting  them.

       Following  these  options  there  may  follow  one or more
       robotics control commands.  Note  that  the  'invert'  and
       'noattach'  options  apply to ALL of robotics control com­
       mands.


COMMANDS

       --version Report the mtx version number (e.g.  mtx  1.2.8)
                 and exit.

       inquiry   Report  the  product  type (Medium Changer, Tape
                 Drive, etc.), Vendor ID, Product  ID,  Revision,
                 and  whether  this uses the Attached Changer API
                 (some tape drives use this rather than reporting
                 a  Medium  Changer  on  a  separate  LUN or SCSI
                 address).

       noattach  Make further  commands  use  the  regular  media

                 matter what  the  "Attached"  bit  said  in  the
                 Inquiry   info.   Needed  with  some  brain-dead
                 changers that  report  Attached  bit  but  don't
                 respond to _ATTACHED API.

       inventory Makes  the  robot arm go and check what elements
                 are in the slots.  This  is  needed  for  a  few
                 libraries  like the Breece Hill ones that do not
                 automatically check the tape inventory at system
                 startup.

       status    Reports how many drives and storage elements are
                 contained in the device. For each drive, reports
                 whether  it  has  media loaded in it, and if so,
                 from which storage slot  the  media  originated.
                 For  each  storage  slot,  reports whether it is
                 empty or full, and if the media  changer  has  a
                 bar  code,  MIC  reader,  or  some  other way of
                 uniquely identifying media  without  loading  it
                 into a drive, this reports the volume tag and/or
                 alternate volume tag for each  piece  of  media.
                 For  historical reasons drives are numbered from
                 0 and storage slots are numbered from 1.

       load <slotnum> [ <drivenum> ]
                 Load  media  from  slot  <slotnum>  into   drive
                 <drivenum>. Drive 0 is assumed if the drive num­
                 ber is omitted.

       unload [<slotnum>] [ <drivenum> ]
                 Unloads media from drive  <drivenum>  into  slot
                 <slotnum>. If <drivenum> is omitted, defaults to
                 drive 0 (as do all commands).  If  <slotnum>  is
                 omitted, defaults to the slot that the drive was
                 loaded from. Note that there's currently no  way
                 to  say  'unload  drive 1's media to the slot it
                 came from', other than to  explicitly  use  that
                 slot number as the destination.

       [eepos <operation>] transfer <slotnum> <slotnum>
                 Transfers media from one slot to another, assum­
                 ing that your mechanism is capable of doing  so.
                 Usually   used   to   move   media   to/from  an
                 import/export   port.   'eepos'   is   used   to
                 extend/retract the import/export tray on certain
                 mid-range to high end tape libraries (if,  e.g.,
                 the tray was slot 32, you might say say 'eepos 1
                 transfer 32 32' to extend the tray).  Valid val­
                 ues  for  eepos <operation> are 0 (do nothing to
                 the import/export tray), 1, and 2 (what 1 and  2
                 do  varies  depending  upon the library, consult
                 your library's SCSI-level documentation).

                 Loads drive <drivenum> from the  first  slot  in
                 the media changer. Unloads the drive if there is
                 already media in it.  Note that this command may
                 not  be what you want on large tape libraries --
                 e.g. on Exabyte 220, the first slot is usually a
                 cleaning   tape.   If   <drivenum>  is  omitted,
                 defaults to first drive.

       last [<drivenum>]
                 Loads drive <drivenum> from the last slot in the
                 media  changer.  Unloads  the  drive if there is
                 already a tape in it.

       next [<drivenum>]
                 Unloads the drive and loads  the  next  tape  in
                 sequence.  If  the  drive  was  empty, loads the
                 first tape into the drive.


AUTHORS

       The original 'mtx' program was written by Leonard  Zubkoff
       and  extensively  revised  for large multi-drive libraries
       with bar code readers by Eric Lee Green <eric@badtux.org>,
       to whom all problems should be reported for this revision.
       See 'mtx.c' for other contributors.


BUGS AND LIMITATIONS

       You may need to do a 'mt offline' on  the  tape  drive  to
       eject  the tape before you can issue the 'mtx unload' com­
       mand. The Exabyte EZ-17 and 220 in particular will happily
       sit  there  snapping the robot arm's claws around thin air
       trying to grab a tape that's not there.

       For some Linux distributions, you may need  to  re-compile
       the kernel to scan SCSI LUN's in order to detect the media
       changer. Check /proc/scsi/scsi to see what's going on.

       If you try to unload a tape to its 'source' slot, and said
       slot  is full, it will instead put the tape into the first
       empty slot. Unfortunately the list of empty slots  is  not
       updated  between  commands  on the command line, so if you
       try to unload another drive to a full 'source' slot during
       the same invocation of 'mtx', it will try to unload to the
       same (no longer empty) slot  and  will  urp  with  a  SCSI
       error.

       This  program reads the Mode Sense Element Address Assign­
       ment Page (SCSI) and requests data on all  available  ele­
       ments. For larger libraries (more than a couple dozen ele­
       ments) this sets a big Allocation_Size in the SCSI command
       block  for  the REQUEST_ELEMENT_STATUS command in order to

       Some  operating  systems  may  not be able to handle this.
       Versions of Linux earlier than 2.2.6, in  particular,  may
       fail  this  request  due  to  inability to find contiguous
       pages of memory for the SCSI transfer (later  versions  of
       Linux 'sg' device do scatter-gather so that this should no
       longer be a problem).

       The eepos command remains in effect for all  further  com­
       mands  on  a  command  line. Thus you might want to follow
       eepos 1 transfer 32 32 with eepos 0 as  the  next  command
       (which clears the eepos bits).

       Need  a  better  name for 'eepos' command! ('eepos' is the
       name of the bit field in the actual  low-level  SCSI  com­
       mand, and has nothing to do with what it does).

       This  program has only been tested on Linux with a limited
       number of tape loaders  (a  dual-drive  Exabyte  220  tape
       library,  with  bar-code  reader  and 21 slots, an Exabyte
       EZ-17 7-slot autoloader, and a Seagate  DDS-4  autochanger
       with  6 slots). It may not work on other operating systems
       with larger libraries, due to the big SCSI  request  size.
       Report problems to Eric Lee Green <eric@badtux.org>.


HINTS

       Under  Linux,  cat /proc/scsi/scsi will tell you what SCSI
       devices you have.  You can then refer to them as /dev/sga,
       /dev/sgb, etc. by the order they are reported.

       Under  FreeBSD, camcontrol devlist will tell you what SCSI
       devices you have, along with which  pass  device  controls
       them.

       Under  Solaris,  set  up  your 'sgen' driver so that it'll
       look for tape changers (see /kernel/drv/sgen.conf and  the
       sgen  man  page), type touch /reconfigure then reboot. You
       can   find   your   changer   in   /devices   by    typing
       /usr/sbin/devfsadm   -C   to  clean  out  no-longer-extant
       entries in your /devices  directory,  then  find  /devices
       -name  hanger -print to find the device name. Set the sym­
       bolic link /dev/changer to point to that device  name  (if
       it is not doing so already).

       With BRU, set your mount and unmount commands as described
       on the EST web site at http://www.estinc.com  to  move  to
       the  next tape when backing up or restoring. With GNU tar,
       see mtx.doc for an example of how to use tar  and  mtx  to
       make multi-tape backups.


AVAILABILITY

       This  version of mtx is currently being maintained by Eric

       Technologies    Inc.    The    'mtx'    home    page    is
       http://mtx.sourceforge.net and the  actual  code  is  cur­
       rently  available  there  and  via CVS from http://source­
       forge.net/projects/mtx/ .


SEE ALSO

       mt(1),tapeinfo(1),scsitape(1),loaderinfo(1)


Man(1) output converted with man2html