.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 https://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 https://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)
