.TH SG_INQ "8" "March 2005" "sg3_utils-1.14" SG3_UTILS
.SH NAME
sg_inq \- outputs data retrieved from the SCSI INQUIRY command
.SH SYNOPSIS
.B sg_inq
[\fI-c\fR] [\fI-cl\fR] [\fI-d\fR] [\fI-e\fR] [\fI-h\fR] [\fI-i\fR]
[\fI-o=<opcode_page>\fR] [\fI-p=<vpd_page>\fR] [\fI-P\fR]
[\fI-r\fR] [\fI-s\fR] [\fI-v\fR] [\fI-V\fR] [\fI-x\fR] [\fI-36\fR] [\fI-?\fR]
\fI<scsi_device>\fR
.SH DESCRIPTION
.\" Add any additional description here
.PP
This utility sends an INQUIRY SCSI command to the given device and then
outputs the response. All SCSI devices are meant to respond to
a "standard" INQUIRY command with at least a 36 byte response (in SCSI 2
and higher). An INQUIRY is termed as "standard" when both the EVPD and
CmdDt bits are clear. 
.PP
An important "non-standard" INQUIRY page is the Device Identification
Vital Prodoct Data (VPD) page (page number: 0x83). In recent SPC-3
drafts support for this page has been flagged as mandatory. The '-i'
option decodes this page.
.PP
If <scsi_device> exists and the SCSI INQUIRY fails (because the SG_IO
ioctl is unknown) then an ATA IDENTIFY is tried. If it succeeds then
device identification strings are output. If the "-r" option is given
then the 256 byte IDENTIFY block is output in binary.
.PP
The reference document used for interpreting an INQUIRY is T10/1416-D Revision
21d (SPC-3, 14th February 2005) found at http://www.t10.org . Obsolete items
in the standard INQUIRY response are displayed in brackets.
.TP
-c
set the Command Support Data (CmdDt) bit (defaults to clear(0)). Used
in conjunction with the '-o=<opcode>' option to specify the SCSI command
opcode to supply the support data for. The command support data is a mask of
the same length as the command with bits set in positions that are
modifiable. For example, '12 03 ff 00 ff 01' shows the device 
supports the EVPD and CmdDt bits [byte 1, bits 0 and 1] in an INQUIRY command.
The CmdDt bit is now obsolete. It has been replaced by the REPORT SUPPORTED
OPERATION CODES command which is accessed via the sg_opcodes utility.
.TP
-cl
lists the command data for all supported commands (followed by the command
name) by looping through all 256 opcodes. This option uses the CmdDt bit
which is now obsolete. See the sg_opcodes utility.
.TP
-d
lists version descriptors. There are up to 8 version descriptors in the
upper bytes of a standard INQUIRY, If the code is recognised then the
corresponding string is output. Version descriptors are versions of
standards and drafts that the device claims to comply with (e.g. SAM,
SPC, SBC, SAS etc).
.TP
-e
enable (i.e. sets) the Vital Product Data (EVPD) bit (defaults to clear(0)).
Used in conjunction with the '-p=<vpd_page>' option to specify the VPD page
to fetch. If '-p' is not given then VPD page 0 (list supported VPD pages)
is assumed. Support for VPD page 0 and page 0x83 (device identification)
have been made mandatory in recent SPC-3 drafts.
.TP
-h
outputs INQUIRY response in hex rather than trying to decode it. When
used with '-i' outputs partially decoded device identification descriptors
with the identifier itself output in hex.
.TP
-H
same action as "-h". For compatibility with many other sg3_utils programs
in which "-H" is for hex output.
.TP
-i
outputs the Device Identification Vital Product Data (VPD) page [0x83].
If '-r' is not given then attempts to decode the response which can be made
up of several "identification descriptors". If '-h' is given then each
descriptor header is decoded and the identifier itself is output in hex.
To see the whole VPD 0x83 page response in hex use '-p=83 -h'. Recent SPC-3
drafts have made support of the device identification VPD page mandatory.
.TP
-o=<opcode_page>
used in conjunction with the '-e' or '-c' option. If neither given then
the '-e' option assumed. When the '-e' option is also given (or assumed)
then the argument to this option is the VPD page number. The argument
is interpreted as hexadecimal and is expected to be in the range 0 to ff 
inclusive. Only VPD page 0 is decoded and lists supported VPD pages and
their names (if known). To decode the mandatory device identification
page (0x83) use the '-i' option.
A now obsolete usage is when the '-c' option is given in which
case the argument to this option is assumed to be a command opcode number. 
Recent SCSI draft standards have moved this facility (see sg_opcodes).
Defaults to 0 so if '-e' is given without '-o=' then VPD page 0 is output.
.TP
-p=<vpd_page>
same action as '-o=<opcode_page>' option described above. Since the
opcode value with the CmdDt is now obsolete, the main use of this
option is to specify the VPD page number. The argument is interpreted as
hexadecimal and is expected to be in the range 0 to ff inclusive.
Defaults to 0 so if '-e' is given without '-p=' then VPD page 0 is output.
.TP
-P
outputs the Unit Path Report Vital Product Data (VPD) page [0xc0],
which is specific to selected EMC devices. To see the whole VPD 0xc0
page response in hex use '-o=c0 -h'.
.TP
-r
outputs the INQUIRY response in binary. If the SCSI INQUIRY has failed
and an ATA IDENTIFY succeeds then the 256 byte IDENTIFY response is
output in hex. Standard output should be redirected
to a file or some other program that can process binary data.
.TP
-s
outputs the SCSI Ports Vital Product Data (VPD) page [0x88].
If '-r' is not given then attempts to decode the response. The response
contains information about the target (or rarely the initiator) ports
associated with the addressed device server (i.e. the target). In practice
this is a way to find all target port addresses of a dual ported disk.
If '-h' is given then each target (and/or initiator) descriptor is output
in hex. To see the whole VPD 0x88 page response in hex use '-p=88 -h'.
.TP
-v
verbose: print out cdb of issued commands prior to execution. '-vv'
and '-vvv' are also accepted yielding greater verbosity.
.TP
-V
print out version string
.TP
-i
outputs the Extended INQUIRY Vital Product Data (VPD) [0x86] page.
If '-r' is not given then attempts to decode the response.
If '-h' is given then prints out VPD page in hex which is similar to
using '-p=86 -h'.
.TP
-36
only requires 36 bytes of response data for an INQUIRY. Furthermore even
if the device indicates in its response it can supply more data, a
second (longer) INQUIRY is not performed.
.TP
-?
output usage message and exit. Ignore all other parameters.
.PP
Some device with weak SCSI command set implementations lock up when
they receive commands they don't understand (or even response lengths
that they don't expect). Such devices need to be treated carefully
hence the '-36' option. Without this option this utility will issue
a standard INQUIRY requesting 36 bytes of response data. If the device
indicates it could have supplied more data then a second INQUIRY is
issued to fetch the longer response.
.PP
In the INQUIRY standard response there is a 'MultiP' flag which is set
when the device has 2 or more ports. Some vendors use the preceding
vendor specific ('VS') bit to indicate which port is being accessed by
the INQUIRY command (0 -> relative port 1 (port "a"), 1 -> relative
port 2 (port "b")). When the 'MultiP' flag is set, the preceding vendor
specific bit is shown in parentheses. SPC-3 compliant devices should
use the device identification VPD page (0x83) to show which port is
being used for access and the SCSI ports VPD page (0x88) to show all
available ports on the device.
.PP
In the 2.4 series of Linux kernels the given device must be
a SCSI generic (sg) device. In the 2.6 series block devices (e.g. disks
and SCSI DVDs) can also be specified. For example "sg_inq /dev/sda"
will work in the 2.6 series kernels. From lk 2.6.6 other SCSI "char"
device names may be used as well (e.g. "/dev/st0m").
.SH AUTHOR
Written by Doug Gilbert
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
Copyright \(co 2001-2005 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 sgdiag(scsirastools), sg_opcodes(sg3_utils), sg_modes(sg3_utils),
.B sg_logs(sg3_utils), blktool(internet)
