| .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) |