3.4. Device Names in scsidev
A utility program called scsidev adds device names to
the /dev/scsi directory that reflect the SCSI address
of each device. The first 2 letters of the name are the upper level SCSI
driver name (i.e. either sd, sr, st or sg). The number following the "h"
is the host number while the number following the "-" is meant for
host identification purposes. For PCI adapters this seems to be always
0 while for ISA adapters it is their IO address. [Perhaps this field
could be made more informative or dropped.] The numbers following
the "c", "i" and "l" are channel (bus), target id and lun values
respectively. Raw disks are shown without a trailing partition number
while partitions contained within them are shown with the partition
number following a "p".
The scsidev would typically be run as part of the
boot up sequence. It may also be useful to run it after the SCSI
configuration has changed (e.g. adding or removing lower level driver
modules, or the use of the add/remove-single-device command). After
scsidev has been run on my system which contains
2 disks, a cd reader and writer plus a scanner, then the following
names were added in the /dev/scsi directory:
$ ls -l /dev/scsi/ # abridged
total 0
brw------- 8, 0 Sep 2 11:56 sdh0-0c0i0l0
brw------- 8, 1 Sep 2 11:56 sdh0-0c0i0l0p1
...
brw------- 8, 8 Sep 2 11:56 sdh0-0c0i0l0p8
brw------- 8, 16 Sep 2 11:56 sdh0-0c0i1l0
brw------- 8, 17 Sep 2 11:56 sdh0-0c0i1l0p1
...
brw------- 8, 24 Sep 2 11:56 sdh0-0c0i1l0p8
crw------- 21, 0 Sep 2 11:56 sgh0-0c0i0l0
crw------- 21, 1 Sep 2 11:56 sgh0-0c0i1l0
crw------- 21, 2 Sep 2 11:56 sgh1-0c0i2l0
crw------- 21, 3 Sep 2 11:56 sgh1-0c0i5l0
crw------- 21, 4 Sep 2 11:56 sgh1-0c0i6l0
br-------- 11, 0 Sep 2 11:56 srh1-0c0i2l0
br-------- 11, 1 Sep 2 11:56 srh1-0c0i6l0
|
The mapping between the SCSI generic device names (sg) and their corresponding
names when controlled by other upper level drivers (i.e. sd, sr or st) can
be seen by looking for name matches when the second letter is ignored.
Hence "sdh0-0c0i0l0" and "sgh0-0c0i0l0" refer to the same device. By process
of elimination the "sgh1-0c0i5l0" filename is the scanner since that class
of devices can only be accessed via the sg interface.
The scsidev package also includes the ability to introduce names like
/dev/scsi/scanner by manipulating the
/etc/scsi.alias configuration file. The package also includes
the useful rescan-scsi-bus.sh utility.
For further information about scsidev see
W6. On my system, both devfs and scsidev
co-exist happily.