STINIT(8)                                               STINIT(8)

NAME
       stinit - initialize SCSI magnetic tape drives

SYNOPSIS
       stinit [-f conf-file] [-h] [-p] [-r] [-v] [devices...]

DESCRIPTION
       This manual page documents the tape control program stinit
       can used to initialize SCSI tape  drive  modes  at  system
       startup, after loading the tape driver as module, or after
       introduction of new device to the SCSI subsystem  at  run-
       time.  The  initialization  is  performed by sending ioctl
       commands to the drive. The commands are defined in a  text
       file  that  is  indexed  using  the inquiry data the drive
       returns (manufacturer, device, revision). Values  for  all
       of  the  general  and  mode-specific parameters defined in
       /usr/include/sys/mtio.h can be initialized.

OPTIONS
       -f conf-file
              Specifies the name of the text file containing  the
              definitions  for  different  tape  drive  types. By
              default stinit tries to find  the  definition  file
              stinit.def or /etc/stinit.def (in this order).

       -h     Print the usage information.

       -p     The  definition  file  is  parsed but no tape drive
              initialization is attempted.  This  option  can  be
              used for testing the integrity of a definition file
              after changes have been made.

       -r     Rewind every device being initialized.

       -v     The more -v options (currently up to two), the more
              verbose output.

THE DEVICES BEING INITIALIZED
       If  the  program is started without arguments, it tries to
       find all accessible SCSI tape devices and the device files
       for  the  different  modes of the devices. The tape drives
       are searched in the  scanning  order  of  the  kernel  and
       searching  is  stopped at the first non-existing tape. All
       of  the  found  devices  are  initialized  if  a  matching
       description  is found from the parameter file. Note that a
       mode for a device is not initialized if the  corresponding
       device  file  is  not found even if a matching description
       for the mode exists. The non-rewind  device  is  preferred
       over the auto-rewind device for each mode. The directories
       /dev/scsi and /dev are scanned for device files.

       SCSI tape drives can be initialized selectively using pro-
       gram arguments. A numeric argument specifies the number of
       the tape drive in the scanning order of the kernel. A file
       name  specifies that the device corresponding to this name
       is to be initialized. If the file name  is  given  without
       the  directory specification, the program searches for the
       name in the device directories /dev/scsi and /dev

THE CONFIGURATION FILE
       The configuration file is a simple text file that contains
       descriptions of tape drives and the corresponding initial-
       ization parameters. The parameter  definition  blocks  are
       delimited  by  {}.  Specification of the drive description
       is restarted after each parameter definition block.

       The drive descriptions and the parameter definitions  con-
       sist of pairs name = value.  The value is either a numeric
       parameter, a string not containing  blanks,  or  a  quoted
       string.  If  the =value -part is omitted, the value "1" is
       used. If the character # is found from an input line,  the
       rest of the line is discarded. This allows use of comments
       in the definition file.  The  following  example  contains
       definitions for one type of tape drives:

              # The XY dat
              manufacturer=XY-COMPANY model = "UVW DRIVE" {
              scsi2logical=1 # Common definitions for all modes
              can-bsr can-partitions auto-lock
              # Definition of modes
              mode1 blocksize=0 compression=1
              mode2 blocksize=1024 compression=1
              mode3 blocksize=0 compression=0
              mode4 blocksize = 1024 compression=0 }

       The  devices are identified using zero or more of the fol-
       lowing keywords corresponding to the data returned by  the
       tape  device  as response to the SCSI INQUIRY command. The
       matches are case-sensitive and performed up to the  length
       defined  in the configuration file (permitting use of par-
       tial matches).

       manufacturer=
              This keyword specifies the string that  must  match
              the vendor identification returned by the device.

       model= This keyword defines the string that must match the
              product identification returned by the device.

       model= This keyword matched the string that must match the
              product revision level returned by the device.

       All  of  the matching initializations are collected in the
       order they are defined in the file. This means that common
       parameters  can be defined for all devices using zero key-
       words for a definition block. Another consequence is that,
       for  instance, some parameters can be easily given differ-
       ent  values  for  a  specific  firmware  revision  without
       repeating the parameters common to all revisions.

       The  tape  parameters are defined using the following key-
       words. More thorough description of the parameters can  be
       found from the st(4) man page (not up to date when this is
       written) or from the file  drivers/scsi/README.st  in  the
       Linux  kernel  source tree. The keywords are matched using
       only the first characters. The part of  the  keywords  not
       used in matching is enclosed by []. The numeric values may
       be specified either in  decimal  notation  or  hexadecimal
       notation (using the prefix 0x).

       drive-[buffering]=value
              The  drive's  buffering  parameter is set to value.
              This parameter if common for all modes.

       mode=value
              This keyword starts definition of tape mode  value.
              The number of the mode must be between 1 and 4.

       disab[led]=value
              This  mode  is disabled for this device if value is
              non-zero. Can be used if some  mode  defined  in  a
              more  general  definition  should  be disabled by a
              more specific definition for some device (for exam-
              ple, for a device with buggy firmware level).

       block[size]=value
              The  default  tape  block  size  is  set  to value.
              bytes. The block size  zero  means  variable  block
              mode.

       dens[ity]=value
              The tape density code is set to value.

       buff[ering]=value
              The  buffered  writes  by the driver in fixed block
              mode are enabled if value is non-zero.

       async[-writes]=value
              Asynchronous writes by the driver  are  enabled  if
              value is non-zero.

       read[-ahead]=value
              Read-ahead  by  the  driver  in fixed block mode is
              allowed if value is non-zero.

       two[-fms]=value
              Two filemarks are written when a file being written
              to  is closed if value is non-zero. By default, one
              filemark is written.

       comp[ression]=value
              Compression of the data by the drive is enabled  if
              value  is non-zero. Note that the tape driver can't
              enable compression for all drives that can compress
              data. Note also that some drives define compression
              using density codes.

       auto[-lock]=value
              The tape drive door is  locked  automatically  when
              the device file is opened if value is non-zero.

       fast[-eom]=value
              The  MTEOM command is performed using the SCSI com-
              mand that spaces directly to the end of  medium  if
              value  is  non-zero.  The drawback is that the file
              number in the status becomes invalid.  By  default,
              spacing  to  end  of medium is performed by spacing
              over filemarks until end of medium is detected  and
              the file number remains valid.

       can-b[sr]=value
              Backspacing over records is used by the driver when
              repositioning the tape when read-ahead  is  enabled
              if value is non-zero.

       noblk[limits]=value
              The  tape driver does not use the READ BLOCK LIMITS
              SCSI command when the device  is  being  opened  if
              value  is  non-zero. This is for the drives that do
              not support this SCSI command.

       can-p[artitions]=value
              The support for tape partitions is enabled if value
              is non-zero.

       scsi2[logical]=value
              Logical  block addresses are used in the MTSEEK and
              MTIOCPOS commands if value is non-zero. The default
              is to use the device-specific addresses.

       defs-for-w[rites]=value
              The  parameters  defining the tape format (density,
              block size, etc.)  are forced when  writing  starts
              at  the  beginning  of a tape if value is non-zero.
              The default is to change there parameters each time
              the device is opened at the beginning of a tape (or
              the mode is changed in the middle of a tape).

       timeout
              The normal timeout for the device is set  to  value
              seconds.

       long-time[out]
              The  long  timeout  for  the device is set to value
              seconds.

RETURN VALUE
       The program exits with value one if the  command  line  is
       incorrect,  the definition file is not found, or option -p
       is given and parsing the definition  file  fails.  In  all
       other  cases  the  return  value is zero (i.e., failing of
       initialization is not currently  signaled  by  the  return
       value).

RESTRICTIONS
       With  the  exception  of the -p option, the program can be
       used only by the superuser. This is  because  the  program
       uses ioctls allowed only for the superuser.

AUTHOR
       The   program   is   written  by  Kai  Makisara  <Kai.Mak-
       isara@metla.fi>.

COPYRIGHT
       The program and the manual page  are  copyrighted  by  Kai
       Makisara,  1998.  They can be distributed according to the
       GNU Copyleft.

SEE ALSO
       st(4) mt(1)

                            April 1998                          1