The program stinit is meant for initializing of SCSI tape drive modes
at system startup, when the tape driver module is loaded, or when new
tape drivers are initialized using
echo "scsi add-single-device x y z v" >/proc/scsi/scsi
or (with 2.6 kernels)
echo "y z v" > /sys/class/scsi_host/hostx/scan
where x=host y=channel z=id v=lun (- is wild card for 2.6).

The parameters used in initialization of a tape drive are fetched from
a text file. The parameter file is indexed by the inquiry data
returned by the drive, i.e., the parameters are defined by the drive
manufacturer, model, etc. This means that the initialization for a
drive does not depend on its hardware address. A similar method is
used by most Unices either within the kernel or outside the kernel.

The contents of the configuration file and the command line parameters
are defined in the man page stinit.8. A sample configuration file
stinit.def.examples is included in this distribution. It can be used as
example when writing descriptions for the tape drives in a
system. NOTE that the examples by no means specify what are the
"correct" parameters for different types of devices.

The program is configured for maximum of 32 tapes and 4 modes (the
default Linux configuration). If the kernel is configured for
different number of tape modes, the definitions MAX_TAPES and
NBR_MODES in stinit.c should be configured accordingly. (With 8 bit
minor numbers NBR_MODES * MAX_TAPES == 128.)

The files:
stinit.c            - the program source code
stinit.8            - the man page
stinit.def.examples - a file containing example definitions for
                      imaginary tape drives
Makefile            - a sample makefile for the program
README.stinit       - this file

Changes in version 0.9b:
- fix back out to SCSI_IOCTL_SEND_COMMAND for 2.4 kernels (2.4 uses errno
  EINVAL for unsupported ioctls)

Changes in version 0.9:
- try first SG_IO for inquiry, if the ioctl fails, try SCSI_IOCTL_SEND_COMMAND
  - error checking for SG_IO is very simplistic for now

Changes in version 0.8:
- in devfs, /dev/tapes/tape<n> does not match <n>th drive after rmmoding
  and insmodding the st driver; fix provided by Philippe Troin
- put the man page into /usr/share/man/man8
- counts can use the k, M, or G postfix

Changes in version 0.7:
- the directory scanning for tape devices is restricted to files with
  certain names in some directories to avoid triggering automatic
  module loading for device that don't exist (original patch from
  Philippe Troin)
- support for devfs (/dev/tapes) added
- logging bug fixes
- add setting the cleaning request parameter
- add setting the no-wait (immediate) bit

Changes in version 0.6:
- fix the bug with whitespace at the beginning of lines
- use O_NONBLOCK to open the tape (anticipate kernel change)

Initial version 0.5.

May 29, 2005  Kai Mäkisara <Kai.Makisara@kolumbus.fi>

