| .TH SG_VPD "8" "April 2007" "sg3_utils\-1.24" SG3_UTILS |
| .SH NAME |
| sg_vpd \- fetches Vital Product Data (VPD) pages using a SCSI INQUIRY command |
| .SH SYNOPSIS |
| .B sg_vpd |
| [\fI\-\-enumerate\fR] [\fI\-\-help\fR] [\fI\-\-hex\fR] [\fI\-\-ident\fR] |
| [\fI\-\-long\fR] [\fI\-\-page=PG\fR] [\fI\-\-quiet\fR] [\fI\-\-raw\fR] |
| [\fI\-\-verbose\fR] [\fI\-\-version\fR] \fIDEVICE\fR |
| .SH DESCRIPTION |
| .\" Add any additional description here |
| .PP |
| This utility fetches a Vital Product Data page and decodes it or |
| outputs it in ASCII hexadecimal or binary. VPD pages are fetched |
| with a SCSI INQUIRY command. |
| .PP |
| Probably the most important page is the Device Identification |
| VPD page (page number: 0x83). Since SPC\-3, support for this page |
| has been flagged as mandatory. This page can be fetched by |
| using the \fI\-\-ident\fR option. |
| .PP |
| When no options are given, other than a \fIDEVICE\fR, then the "Supported |
| VPD pages" (0x0) VPD page is fetched and decoded. |
| .SH OPTIONS |
| Arguments to long options are mandatory for short options as well. |
| .TP |
| \fB\-e\fR, \fB\-\-enumerate\fR |
| list the names of the known VPD pages, first the standard pages, then the |
| vendor specific pages. Each group is sorted in abbreviation order. The |
| \fIDEVICE\fR and other options are ignored and this utility exits afte |
| listing the VPD page names. |
| .TP |
| \fB\-h\fR, \fB\-\-help\fR |
| outputs the usage message summarizing command line options then exits. |
| Ignores \fIDEVICE\fR if given. |
| .TP |
| \fB\-H\fR, \fB\-\-hex\fR |
| outputs the requested VPD page in ASCII hexadecimal. Can be used multiple |
| times, see section on the ATA information vpd page. |
| .TP |
| \fB\-i\fR, \fB\-\-ident\fR |
| decode the device identification (0x83) VPD page. When used once this option |
| has the same effect as '\-\-page=di'. When use twice then the short form of |
| the device identification VPD page's logical unit designator is decoded. In |
| the latter case this option has the same effect as '\-\-quiet \-\-page=di_lu'. |
| .TP |
| \fB\-l\fR, \fB\-\-long\fR |
| when decoding some VPD pages, give a little more output. For example the ATA |
| Information VPD page only shows the signature (in hex) and the IDENTIFY |
| (PACKET) DEVICE (in hex) when this option is given. |
| .TP |
| \fB\-p\fR, \fB\-\-page\fR=\fIPG\fR |
| where \fIPG\fR is the VPD page to be decoded or output. The \fIPG\fR argument |
| can either be an abbreviation, a number or a pair or numbers separated by a |
| comma. The VPD page abbreviations can be seen by using the \fI\-\-enumerate\fR |
| option. If a number is given it is assumed to be decimal unless it has a |
| hexadecimal indicator which is either a leading '0x' or a trailing 'h'. If |
| one number is given then it is assumed to be a VPD page number. If two |
| numbers are given the second number indicates which vendor specific VPD page |
| to decode when several pages share the same VPD page number. If this option |
| is not given (nor '\-i', '\-l' nor '\-V') then the "Supported VPD pages" (0x0) |
| VPD page is fetched and decoded. |
| .TP |
| \fB\-q\fR, \fB\-\-quiet\fR |
| suppress the amount of decoding output. |
| .TP |
| \fB\-r\fR, \fB\-\-raw\fR |
| output requested VPD page in binary. The output should be piped to a |
| file or another utility when this option is used. The binary is |
| sent to stdout, and errors are sent to stderr. |
| .TP |
| \fB\-v\fR, \fB\-\-verbose\fR |
| increases the level or verbosity. |
| .TP |
| \fB\-V\fR, \fB\-\-version\fR |
| print out version string then exit. |
| .SH ATA INFORMATION VPD PAGE |
| This VPD page (0x89 or 'ai') is defined by the SCSI to ATA Translation |
| standard. It contains information about the SAT layer, the "signature" of |
| the ATA device and the response to the ATA IDENTIFY (PACKET) DEVICE |
| command. The latter part has 512 bytes of identity, capability and |
| settings data which the hdparm utility is capable of decoding (so this |
| utility doesn't decode it). |
| .PP |
| To unclutter the output for this page, the signature and the IDENTIFY (PACKET) |
| DEVICE response are not output unless the \fI\-\-long\fR option (or |
| \fI\-\-hex\fR or \fI\-\-raw\fR) are given. When the \fI\-\-long\fR option |
| is given the IDENTIFY (PACKET) DEVICE response is output as 256 (16 bit) |
| words as is the fashion for ATA devices. To see that response as a string of |
| bytes use the '\-HH' option. To format the output suitable for hdparm to |
| decode use either the '\-HHH' or '\-rr' option. For example if 'dev/sdb' is |
| a SATA disk behind a SAT layer then this |
| command: 'sg_vpd \-p ai \-HHH /dev/sdb | hdparm \-\-Istdin' |
| should decode the ATA IDENTIFY (PACKET) DEVICE response. |
| .SH NOTES |
| In the 2.4 series of Linux kernels the \fIDEVICE\fR must be |
| a SCSI generic (sg) device. In the 2.6 series block devices (e.g. disks |
| and ATAPI 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 EXIT STATUS |
| The exit status of sg_vpd is 0 when it is successful. Otherwise see |
| the sg3_utils(8) man page. |
| .SH AUTHOR |
| Written by Doug Gilbert |
| .SH "REPORTING BUGS" |
| Report bugs to <dgilbert at interlog dot com>. |
| .SH COPYRIGHT |
| Copyright \(co 2006\-2007 Douglas Gilbert |
| .br |
| This software is distributed under a FreeBSD license. There is NO |
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| .SH "SEE ALSO" |
| .B sg_inq(sg3_utils), sdparm(sdparm), hdparm(hdparm) |