STINIT(8)                                                            STINIT(8)

       stinit - initialize SCSI magnetic tape drives

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

       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 SCSI tape
       parameters up to Linux version 2.4.15 can be initialized.

       -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

       -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 out-

              Print the program version.

       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  descrip-
       tion 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 pre-
       ferred over the auto-rewind device for  each  mode.  If  the  directory
       /dev/tapes  is  found, the devfs filesystem is assumed to be mounted on
       /dev. Otherwise, the directories /dev/scsi and  /dev  are  scanned  for
       device files.

       SCSI  tape  drives  can  be initialized selectively using program argu-
       ments. 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.   Only  full  path
       names are supported with devfs.

       The configuration file is a simple text file that contains descriptions
       of tape drives and the  corresponding  initialization  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 consist  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 following 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
       partial matches).

              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.

              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 keywords for a definition block. Another
       consequence is that, for instance, some parameters can be easily  given
       different values for a specific firmware revision without repeating the
       parameters common to all revisions.

       The tape parameters are defined  using  the  following  keywords.  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/  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 spec-
       ified either in decimal notation or  hexadecimal  notation  (using  the
       prefix 0x).

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

              The cleaning request notifying parameter is set to value

              The immediate mode is used with commands like rewind if value is
              non-zero  (i.e.,  the  driver  does  not wait for the command to

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

              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
              example, for a device with buggy firmware level).

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

              The tape density code is set to value.

              The  buffered  writes  by  the  driver  in  fixed block mode are
              enabled if value is non-zero.

              Asynchronous writes by the driver are enabled if value  is  non-

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

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

              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.

              The tape drive door is locked automatically when the device file
              is opened if value is non-zero.

              The  MTEOM  command  is  performed  using  the SCSI command 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 num-
              ber remains valid.

              Backspacing over records is used by the driver when  reposition-
              ing the tape when read-ahead is enabled if value is non-zero.

              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.

              The support for tape partitions is enabled if value is non-zero.

              Logical block addresses are used in the MTSEEK and MTIOCPOS com-
              mands  if  value  is non-zero. The default is to use the device-
              specific addresses.

              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).

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

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

       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).

       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.

       The program is written by Kai Makisara <>.

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

       st(4) mt(1)

                                 November 2001                       STINIT(8)