NAME
sg_opcodes - reports information on supported SCSI commands or task
management functions
SYNOPSIS
sg_opcodes [--alpha] [--help] [--hex] [--opcode=OP] [--raw] [--rctd]
[--sa=SA] [--tmf] [--unsorted] [--verbose] [--version] DEVICE
sg_opcodes [-a] [-o=OP] [-R] [-s=SA] [-t] [-u] [-v] [-V] [-?] DEVICE
DESCRIPTION
This utility sends a SCSI REPORT SUPPORTED OPERATION CODES or a REPORT
SUPPORTED TASK MANAGEMENT FUNCTIONS command to the DEVICE and then
outputs the response. The default action is to report supported
operation codes. In this mode it will either list all supported
commands or give detailed information on a specific command identified
by the --opcode=OP option (perhaps with additional information from the
--sa=SA option).
The name of a SCSI command depends on its peripheral device type (e.g.
a disk). The REPORT SUPPORTED OPERATION CODES and REPORT SUPPORTED TASK
MANAGEMENT FUNCTIONS commands are not supported in the MMC command set
for CD and DVD devices. This utility does an INQUIRY to obtain the
peripheral device type and prints out the vendor, product and revision
strings.
A similar facility to query supported operation codes previously was
available via the CmdDt bit in the SCSI INQUIRY command (see
sg_inq(8)). However that facility was made obsolete and replaced by the
REPORT SUPPORTED OPERATION CODES command in SPC-3 (revision 4) during
February 2002.
This utility supports two command line syntaxes, the preferred one is
shown first in the synopsis and explained in this section. A later
section on the old command line syntax outlines the second group of
options.
OPTIONS
Arguments to long options are mandatory for short options as well.
-a, --alpha
when all supported commands are being listed there is no
requirement for the device server (i.e. the DEVICE) to sort the
list of commands. When this option is given the list of
supported commands is sorted by name (alphabetically). When this
option and the --unsorted option are both _not_ given then the
list of supported commands is sorted numerically (first by
operation code and then by service action).
-h, --help
outputs the usage message summarizing command line options then
exits. Ignores DEVICE if given.
-H, --hex
outputs the response in ASCII hexadecimal to stdout.
-O, --old
switch to older style options.
-o, --opcode=OP
the DEVICE will be queried for the given operation code ( i.e.
the OP value) which is the first byte of a SCSI command. OP is
decimal unless prefixed by "0x" or it has a trailing "h". OP
should be in the range 0 to 255 (0xff) inclusive. When this
option is not given then all available SCSI commands supported
by the DEVICE are listed.
-r, --raw
output the response in binary to stdout. Error messages and
warnings, if any, are sent to stderr.
-R, --rctd
set report command timeout descriptor (RCTD) bit in the cdb. The
response may or may not contain command timeout descriptors. If
available they are output. If supported there are two values: a
nominal command timeout and a recommended command timeout. Both
have units of seconds. A value of zero means that no timeout is
indicated and this is shown in the corresponding decoded output
as "-".
-s, --sa=SA
the DEVICE will be queried for a command with the given service
action (i.e. the SA value). Used in conjunction with the
--opcode=OP option. If this option is not given, --opcode=OP is
given and the command in question does have a service action
then a value of 0 will be assumed. SA is decimal and expected to
be in the range 0 to 65535 (0xffff) inclusive.
-t, --tmf
list supported task management functions. This is done with the
SCSI REPORT SUPPORTED TASK MANAGEMENT FUNCTIONS command. When
this option is chosen the --alpha, --opcode=OP, --rctd, --sa=SA
and --unsorted options are ignored.
-u, --unsorted
when all supported commands are being listed there is no
requirement for the device server (i.e. the DEVICE) to sort the
list of commands. When this option is given the list of
supported commands is in the order given by the DEVICE. When
this option is not given the supported commands are sorted
numerically (first by operation code and then by service
action).
-v, --verbose
increase level of verbosity. Can be used multiple times.
-V, --version
print out version string then exit.
NOTES
As of SPC-4 revision 7a the recognized task management functions are:
abort set, abort task set, clear ACA, clear task set, I_T nexus reset,
logical unit reset, query task, target reset and wakeup.
In the 2.4 series of Linux kernels the DEVICE must be a SCSI generic
(sg) device. In the 2.6 series block devices (e.g. SCSI disks and DVD
drives) can also be specified. For example "sg_opcodes /dev/sda" will
work in the 2.6 series kernels.
EXIT STATUS
The exit status of sg_opcodes is 0 when it is successful. Otherwise see
the sg3_utils(8) man page.
OLDER COMMAND LINE OPTIONS
The options in this section were the only ones available prior to
sg3_utils version 1.23 . In sg3_utils version 1.23 and later these
older options can be selected by either setting the SG3_UTILS_OLD_OPTS
environment variable or using ’--old’ (or ’-O) as the first option.
-a sort command alphabetically. Equivalent to --alpha in main
description.
-N switch to the newer style options.
-o=OP the DEVICE will be queried for the given operation code (i.e.
OP) which is the first byte of a SCSI command. OP is hexadecimal
and expected to be in the range 0 to ff inclusive. When this
option is not given then all available SCSI commands supported
by the DEVICE are listed.
-R set the report command timeout descriptor (RCTD) bit in cdb.
Equivalent to --rctd in main description.
-s=SA the DEVICE will be queried for a command with the given service
action (i.e. SA). Used in conjunction with the -o=OP option. If
this option is not given, -o=OP is given and the command in
question does have a service action then a value of 0 will be
assumed. SA is hexadecimal and expected to be in the range 0 to
ffff inclusive.
-t list supported task management functions. Equivalent to --tmf in
the main description.
-u output all supported commands in the order given by DEVICE.
Equivalent to --unsorted in main description.
-v increase level of verbosity. Can be used multiple times.
-V print out version string then exit.
-? output usage message. Ignore all other parameters.
AUTHOR
Written by Doug Gilbert
REPORTING BUGS
Report bugs to <dgilbert at interlog dot com>.
COPYRIGHT
Copyright © 2004-2007 Douglas Gilbert
This software is distributed under the GPL version 2. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
SEE ALSO
sg_inq(sg3_utils)