Documentation/scsi/scsi-changer.rst

Source file repositories/reference/linux-study-clean/Documentation/scsi/scsi-changer.rst

File Facts

System
Linux kernel
Corpus path
Documentation/scsi/scsi-changer.rst
Extension
.rst
Size
6460 bytes
Lines
185
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

.. SPDX-License-Identifier: GPL-2.0

=========================
SCSI media changer driver
=========================

This is a driver for SCSI Medium Changer devices, which are listed
with "Type: Medium Changer" in /proc/scsi/scsi.

This is for *real* Jukeboxes.  It is *not* supported to work with
common small CD-ROM changers, neither one-lun-per-slot SCSI changers
nor IDE drives.

Userland tools available from here:
	http://linux.bytesex.org/misc/changer.html


General Information
-------------------

First some words about how changers work: A changer has 2 (possibly
more) SCSI ID's. One for the changer device which controls the robot,
and one for the device which actually reads and writes the data. The
later may be anything, a MOD, a CD-ROM, a tape or whatever. For the
changer device this is a "don't care", he *only* shuffles around the
media, nothing else.


The SCSI changer model is complex, compared to - for example - IDE-CD
changers. But it allows to handle nearly all possible cases. It knows
4 different types of changer elements:

  ===============   ==================================================
  media transport   this one shuffles around the media, i.e. the
                    transport arm.  Also known as "picker".
  storage           a slot which can hold a media.
  import/export     the same as above, but is accessible from outside,
                    i.e. there the operator (you !) can use this to
                    fill in and remove media from the changer.
		    Sometimes named "mailslot".
  data transfer     this is the device which reads/writes, i.e. the
		    CD-ROM / Tape / whatever drive.
  ===============   ==================================================

None of these is limited to one: A huge Jukebox could have slots for
123 CD-ROM's, 5 CD-ROM readers (and therefore 6 SCSI ID's: the changer
and each CD-ROM) and 2 transport arms. No problem to handle.


How it is implemented
---------------------

I implemented the driver as character device driver with a NetBSD-like
ioctl interface. Just grabbed NetBSD's header file and one of the
other linux SCSI device drivers as starting point. The interface
should be source code compatible with NetBSD. So if there is any
software (anybody knows ???) which supports a BSDish changer driver,
it should work with this driver too.

Over time a few more ioctls where added, volume tag support for example
wasn't covered by the NetBSD ioctl API.


Current State
-------------

Support for more than one transport arm is not implemented yet (and
nobody asked for it so far...).

I test and use the driver myself with a 35 slot cdrom jukebox from

Annotation

Implementation Notes