183 lines
5.6 KiB
Groff
183 lines
5.6 KiB
Groff
|
|
.TH SG_MAP "8" "May 2013" "sg3_utils\-1.36" SG3_UTILS
|
||
|
|
.SH NAME
|
||
|
|
sg_map \- displays mapping between Linux sg and other SCSI devices
|
||
|
|
.SH SYNOPSIS
|
||
|
|
.B sg_map
|
||
|
|
[\fI\-a\fR] [\fI-h\fR] [\fI\-i\fR] [\fI\-n\fR] [\fI\-scd\fR] [\fI\-sd\fR]
|
||
|
|
[\fI\-sr\fR] [\fI\-st\fR] [\fI\-V\fR] [\fI\-x\fR]
|
||
|
|
.SH DESCRIPTION
|
||
|
|
.\" Add any additional description here
|
||
|
|
.PP
|
||
|
|
Sometimes it is difficult to determine which SCSI device a sg device
|
||
|
|
name (e.g. /dev/sg0) refers to. This command loops through the
|
||
|
|
sg devices and finds the corresponding SCSI disk, cdrom or tape
|
||
|
|
device name (if any). Scanners are an example of SCSI devices
|
||
|
|
that have no alternate SCSI device name apart from their sg device
|
||
|
|
name.
|
||
|
|
.PP
|
||
|
|
This utility is deprecated and has not been updated for years, only very
|
||
|
|
obvious bugs will be fixed. Unless a very old version of Linux is being
|
||
|
|
used (e.g. 2.4 series or earlier), then please use a utility like lsscsi(8)
|
||
|
|
or the facilities offered by udev(8).
|
||
|
|
.SH OPTIONS
|
||
|
|
.TP
|
||
|
|
\fB\-a\fR
|
||
|
|
assume the sg devices have alphabetical device names and loop
|
||
|
|
through /dev/sga, /dev/sgb, etc. Default is numeric scan.
|
||
|
|
Note that sg device nodes with an alphabetical index have been
|
||
|
|
deprecated since the Linux kernel 2.2 series.
|
||
|
|
.TP
|
||
|
|
\fB\-h\fR
|
||
|
|
print usage message then exit.
|
||
|
|
.TP
|
||
|
|
\fB\-i\fR
|
||
|
|
in addition do a standard INQUIRY and output vendor, product and revision
|
||
|
|
strings for devices that are found.
|
||
|
|
.TP
|
||
|
|
\fB\-n\fR
|
||
|
|
assume the sg devices have numeric device names and loop
|
||
|
|
through /dev/sg0, /dev/sg1, etc. Default is numeric scan
|
||
|
|
.TP
|
||
|
|
\fB\-scd\fR
|
||
|
|
display mappings to SCSI cdrom device names of the form
|
||
|
|
/dev/scd0, /dev/scd1 etc
|
||
|
|
.TP
|
||
|
|
\fB\-sd\fR
|
||
|
|
display mappings to SCSI disk device names
|
||
|
|
.TP
|
||
|
|
\fB\-sr\fR
|
||
|
|
display mappings to SCSI cdrom device names of the form
|
||
|
|
/dev/sr0, /dev/sr1 etc
|
||
|
|
.TP
|
||
|
|
\fB\-st\fR
|
||
|
|
display mappings to SCSI tape device names
|
||
|
|
.TP
|
||
|
|
\fB\-V\fR
|
||
|
|
print out version string then exit (without further ado).
|
||
|
|
.TP
|
||
|
|
\fB\-x\fR
|
||
|
|
after each active sg device name is displayed there are
|
||
|
|
five digits: <host_number> <bus> <scsi_id> <lun> <scsi_type>
|
||
|
|
.SH NOTES
|
||
|
|
If no options starting with "\-s" are given then the mapping to
|
||
|
|
all SCSI disk, cdrom and tape device names is shown.
|
||
|
|
.PP
|
||
|
|
If the device file system (devfs) is present a line noting
|
||
|
|
this is output. The "native" devfs scsi hierarchy makes the
|
||
|
|
relationship between a sg device name and any corresponding
|
||
|
|
disk, cdrom or tape device name easy to establish. This
|
||
|
|
replaces the need for this command. However many applications
|
||
|
|
will continue to look for Linux SCSI device names in their
|
||
|
|
traditional places. [Devfs supplies a compatibility daemon
|
||
|
|
called devfsd whose default configuration adds back the
|
||
|
|
Linux device names in their traditional positions.
|
||
|
|
.PP
|
||
|
|
Quite often the mapping information can be derived by
|
||
|
|
observing the output of the command: "sg_map".
|
||
|
|
However if devices have been added since boot this can
|
||
|
|
be deceptive.
|
||
|
|
.PP
|
||
|
|
In the Linux kernel 2.6 series something close to the mapping
|
||
|
|
shown by this utility can be found by analysing sysfs. The
|
||
|
|
main difference is that sysfs analysis will show the mapping
|
||
|
|
between sg nodes and other SCSI device nodes in terms of
|
||
|
|
major and minor numbers. While major 8, minor 16 will usually
|
||
|
|
be /dev/sdb this is not necessarily so. Facilities associated
|
||
|
|
with udev may assign major 8, minor 16 some other device node
|
||
|
|
name. This version of sg_map has been extended to cope with
|
||
|
|
sparse disk device node names of the form "/dev/sd<str>"
|
||
|
|
where <str> can be one of [a\-z,aa\-zz,aaa\-zzz]. See the sg_map26
|
||
|
|
utility for a more precise way (i.e. less directory scanning)
|
||
|
|
for mapping between sg device names and higher level names;
|
||
|
|
including finding user defined names.
|
||
|
|
.PP
|
||
|
|
This utility was written at a time when hotplugging of SCSI devices
|
||
|
|
was not supported in Linux. It used a simple algorithm to scan sg
|
||
|
|
device nodes in ascending numeric or alphabetical order, stopping
|
||
|
|
after there were 5 consecutive errors.
|
||
|
|
.PP
|
||
|
|
In the Linux kernel 2.6 series, this utility uses sysfs to find which
|
||
|
|
sg device nodes are active and only checks those. Hence there can be
|
||
|
|
large "holes" in the numbering of sg device nodes (e.g. after an
|
||
|
|
adapter has been removed) and still all active sg device nodes will
|
||
|
|
be listed. This utility assumes that sg device nodes are named using
|
||
|
|
the normal conventions and searches from /dev/sg0 to /dev/sg4095
|
||
|
|
inclusive.
|
||
|
|
.SH EXAMPLES
|
||
|
|
.PP
|
||
|
|
My system has a SCSI disk, a cd writer and a dvd player:
|
||
|
|
.br
|
||
|
|
$ sg_map
|
||
|
|
.br
|
||
|
|
# Note: the devfs pseudo file system is present
|
||
|
|
.br
|
||
|
|
/dev/sg0 /dev/sda
|
||
|
|
.br
|
||
|
|
/dev/sg1 /dev/sr0
|
||
|
|
.br
|
||
|
|
/dev/sg2 /dev/sr1
|
||
|
|
.PP
|
||
|
|
In order to find which sg device name corresponds to the disk:
|
||
|
|
.br
|
||
|
|
$ sg_map \-sd
|
||
|
|
.br
|
||
|
|
# Note: the devfs pseudo file system is present
|
||
|
|
.br
|
||
|
|
/dev/sg0 /dev/sda
|
||
|
|
.br
|
||
|
|
/dev/sg1
|
||
|
|
.br
|
||
|
|
/dev/sg2
|
||
|
|
.PP
|
||
|
|
The "\-x" option gives the following output:
|
||
|
|
.br
|
||
|
|
sg_map \-x
|
||
|
|
.br
|
||
|
|
# Note: the devfs pseudo file system is present
|
||
|
|
.br
|
||
|
|
/dev/sg0 1 0 1 0 0 /dev/sda
|
||
|
|
.br
|
||
|
|
/dev/sg1 2 0 4 0 5 /dev/sr0
|
||
|
|
.br
|
||
|
|
/dev/sg2 2 0 6 0 5 /dev/sr1
|
||
|
|
.PP
|
||
|
|
When a SCSI scanner is added the output becomes:
|
||
|
|
.br
|
||
|
|
$ sg_map
|
||
|
|
.br
|
||
|
|
# Note: the devfs pseudo file system is present
|
||
|
|
.br
|
||
|
|
/dev/sg0 /dev/sda
|
||
|
|
.br
|
||
|
|
/dev/sg1 /dev/sr0
|
||
|
|
.br
|
||
|
|
/dev/sg2 /dev/sr1
|
||
|
|
.br
|
||
|
|
/dev/sg3
|
||
|
|
.PP
|
||
|
|
By process of elimination /dev/sg3 must be the scanner.
|
||
|
|
.SH EXIT STATUS
|
||
|
|
The exit status of sg_map is 0 when it is successful. Otherwise see
|
||
|
|
the sg3_utils(8) man page.
|
||
|
|
.SH AUTHOR
|
||
|
|
Written by Douglas Gilbert
|
||
|
|
.SH "REPORTING BUGS"
|
||
|
|
Report bugs to <dgilbert at interlog dot com>.
|
||
|
|
.SH COPYRIGHT
|
||
|
|
Copyright \(co 2000\-2013 Douglas Gilbert
|
||
|
|
.br
|
||
|
|
This software is distributed under the GPL version 2. There is NO
|
||
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||
|
|
.SH "SEE ALSO"
|
||
|
|
.B sg_map26(8)
|
||
|
|
,
|
||
|
|
.B scsi_info(8)
|
||
|
|
,
|
||
|
|
.B scsidev(8)
|
||
|
|
,
|
||
|
|
.B devfsd(8)
|
||
|
|
,
|
||
|
|
.B lsscsi(8)
|
||
|
|
,
|
||
|
|
.B udev(7)
|