.TH SG_GET_CONFIG "8" "December 2012" "sg3_utils\-1.35" SG3_UTILS
.SH NAME
sg_get_config \- send SCSI GET CONFIGURATION command (MMC\-4 +)
.SH SYNOPSIS
.B sg_get_config
[\fI\-\-brief\fR] [\fI\-\-current\fR] [\fI\-\-help\fR] [\fI\-\-hex\fR]
[\fI\-\-inner\-hex\fR] [\fI\-\-list\fR] [\fI\-\-raw\fR] [\fI\-\-readonly\fR]
[\fI\-\-rt=RT\fR] [\fI\-\-starting=FC\fR] [\fI\-\-verbose\fR]
[\fI\-\-version\fR] \fIDEVICE\fR
.SH DESCRIPTION
.\" Add any additional description here
.PP
Sends a SCSI GET CONFIGURATION command to \fIDEVICE\fR and decodes the
response. The response includes the features and profiles of the device.
Typically these devices are CD, DVD, HD\-DVD and BD players that may (but
not necessarily) have media in them. These devices may well be connected via
ATAPI, USB or IEEE 1394 transports. In such cases they are "SCSI" devices
only in the sense that they use the "Multi\-Media command" set (MMC).
MMC is a specialized SCSI command set whose definition can be found
at http://www.t10.org .
.PP
This utility is based on the MMC\-4 and later draft standards. See section
5 on "Features and Profile for Multi_Media devices" for more information on
specific feature parameters and profiles. The manufacturer's product manual
may also be useful.
.PP
Since modern DVD and BD writers support many features and profiles, the
decoded output from this utility can be large. There are various ways to cut
down the output. If the \fI\-\-brief\fR option is used only the feature names
are shown and the feature parameters are not decoded. Alternatively if only
one feature is of interest then this combination of options is
appropriate: "\-\-rt=2 \-\-starting=\fIFC\fR". Another possibility is to show
only the features that are relevant to the media in the drive (i.e. "current")
with the "\-\-rt=1" option.
.SH OPTIONS
Arguments to long options are mandatory for short options as well.
.TP
\fB\-b\fR, \fB\-\-brief\fR
show the feature names but don't decode the parameters of those features.
When used with \fI\-\-list\fR outputs known feature names but not known
profile names.
.TP
\fB\-c\fR, \fB\-\-current\fR
output features marked as current. This option is equivalent to '\-\-rt=1'.
.TP
\fB\-h\fR, \fB\-\-help\fR
output the usage message then exit.
.TP
\fB\-H\fR, \fB\-\-hex\fR
output the response in hex (don't decode response).
.TP
\fB\-i\fR, \fB\-\-inner\-hex\fR
decode to the feature name level then output each feature's data in hex.
.TP
\fB\-l\fR, \fB\-\-list\fR
list all known feature and profile names. Ignore the device name (if given).
Simply lists the feature names and profiles (followed by their hex values)
that this utility knows about. If \fI\-\-brief\fR is also given then only
feature names are listed.
.TP
\fB\-q\fR, \fB\-\-readonly\fR
opens the DEVICE read\-only rather than read\-write which is the
default. The Linux sg driver needs read\-write access for the SCSI
GET CONFIGURATION command but other access methods may require
read\-only access.
.TP
\fB\-r\fR, \fB\-\-rt\fR=\fIRT\fR
where \fIRT\fR is the field of that name in the GET CONFIGURATION cdb.
Allowable values are 0, 1, 2, or 3 . The command's action also depends on
the value given to the \fI\-\-starting=FC\fR option. The default value is 0.
When \fIRT\fR is 0 then all features, regardless of currency, are
returned (whose feature code is greater than or equal to \fIFC\fR given
to \fI\-\-starting=\fR). When \fIRT\fR is 1 then all current features are
returned (whose feature code is greater than or equal to \fIFC\fR). When
\fIRT\fR is 2 then the feature whose feature code is equal to \fIFC\fR,
if any, is returned.  When \fIRT\fR is 3 the response is reserved (probably
yields an "illegal field in cdb" error). To simplify the meanings of the
\fIRT\fR values are:
.br
  \fB0\fR : all features, current on not
.br
  \fB1\fR : only current features
.br
  \fB2\fR : only feature whose code is \fIFC\fR
.br
  \fB3\fR : reserved
.br
.TP
\fB\-R\fR, \fB\-\-raw\fR
output response in binary (to stdout). Note that the short form is \fI\-R\fR
unlike most other utilities in this package that use \fI\-r\fR for this
action.
.TP
\fB\-s\fR, \fB\-\-starting\fR=\fIFC\fR
where \fIFC\fR is the feature code value. This option works closely with
the \fI\-\-rt=RT\fR option. The \fIFC\fR value is in the range 0 to
65535 (0xffff) inclusive. Its default value is 0. A value prefixed
with "0x" (or a trailing 'h') is interpreted as hexadecimal.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
increase the level of verbosity, (i.e. debug output).
.TP
\fB\-V\fR, \fB\-\-version\fR
print the version string and then exit.
.SH NOTES
There are multiple versions of the MMC (draft) standards: MMC [1997],
MMC\-2 [2000],  MMC\-3 [2002], MMC\-4 and MMC\-5. The first three are now
ANSI INCITS standards with the year they became standards shown in
brackets. The draft immediately prior to standardization can
be found at http://www.t10.org . In the initial MMC standard there
was no GET CONFIGURATION command and the relevant information was
obtained from the "CD capabilities and mechanical status mode
page" (mode page 0x2a). It was later renamed the "MM capabilities and
mechanical status mode page" and has been made obsolete in MMC\-4 and
MMC\-5. The GET CONFIGURATION command was introduced in MMC\-2 and has
become a replacement for that mode page. New features such as support
for "BD" (blue ray) media type can only be found by using the
GET CONFIGURATION command. Hence older CD players may not support
the GET CONFIGURATION command in which case the "MM capabilities ..."
mode page can be checked with sdparm(8), sginfo(8) or sg_modes(8).
.PP
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
can also be specified. For example "sg_get_config /dev/hdc"
will work in the 2.6 series kernels as long as /dev/hdc is
an ATAPI device. In the 2.6 series external DVD writers attached
via USB could be queried with "sg_get_config /dev/scd1" for example.
.SH EXIT STATUS
The exit status of sg_get_config is 0 when it is successful. Otherwise see
the sg3_utils(8) man page.
.SH AUTHORS
Written by Douglas Gilbert.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
Copyright \(co 2004\-2012 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 sginfo(8), sg_modes(8), sg_inq(8), sg_prevent(8),
.B sg_start(8) [all in sg3_utils],
.B sdparm(8)
