8.3. proc interface
To display the SCSI devices currently attached (and recognized) by the SCSI
subsystem use cat /proc/scsi/scsi.
The output looks like this:
Attached devices:
Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: PIONEER Model: DVD-ROM DVD-303 Rev: 1.10
Type: CD-ROM ANSI SCSI revision: 02
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: IBM Model: DNES-309170W Rev: SA30
Type: Direct-Access ANSI SCSI revision: 03
|
After the "Attached devices:" line there are 3 lines for each recognized
device. The first of these lines is SCSI address information discussed in
Section 3.1. The following 2 lines of data are
obtained from a INQUIRY
command that was performed on the device when it was attached. See
Section 9.4 for the relationship between the ordering of these
devices compared with the sg driver's ordering (which most of the time is
the same).
Existing devices can be removed using
echo "scsi remove-single-device <h> <b> <t> <l>"
> /proc/scsi/scsi
where the variables are host, bus (channel), target (scsi id) and lun. The
success (or otherwise) of this command can be determined by sending a
subsequent cat /proc/scsi/scsi command. The removal
will fail if the
device is busy (e.g. if a file system on the device is mounted).
New devices can be added using
echo "scsi add-single-device <h> <b> <t> <l>"
> /proc/scsi/scsi
where the variables are host, bus (channel), target (scsi id) and lun. The
success (or otherwise) of this command can be determined by sending a
subsequent cat /proc/scsi/scsi command.
The SCSI subsystem does not support hot-plugging of SCSI devices (there may
also be electrical issues on the associated SCSI parallel bus). It is
recommended that those who use add+remove-single-device make sure that
other devices on that SCSI bus are inactive if re-plugging is going to
take place.
To output a list of internal SCSI command blocks use
echo "scsi dump <n>" > /proc/scsi/scsi
where the numeric value of <n> doesn't matter. This is probably only of
interest to people chasing down bugs within the SCSI subsystem.
To start (or stop) logging information being sent to the console/log use
echo "scsi log <token> <n>" > /proc/scsi/scsi
where <token> is one of: {all, none, error, timeout, scan, mlqueue,
mlcomplete, llqueue, llcomplete, hlqueue, hlcomplete, ioctl}
and <n> is a number between 0 and 7. The tokens "all" and "none" don't
take an <n> argument. Prefix meanings:
hl upper level drivers [exception: sg uses "timeout"]
ml mid level
ll lower level drivers
[adapter drivers often have there own flags]
|
The value "0" turns off logging while "7" maximizes the volume of output.
Logging information will only be output if CONFIG_SCSI_LOGGING was selected
in the kernel build.
|
Warning: "scsi log all" (and several other variants) can cause a logging
infinite loop if the log file (typically /var/log/messages
) lies on a SCSI disk. Either turn off the kernel logging
daemon or direct its output to a non SCSI device.
|