802 lines
41 KiB
Groff
802 lines
41 KiB
Groff
.TH SG_SES "8" "October 2021" "sg3_utils\-1.47" SG3_UTILS
|
|
.SH NAME
|
|
sg_ses \- access a SCSI Enclosure Services (SES) device
|
|
.SH SYNOPSIS
|
|
.B sg_ses
|
|
[\fI\-\-all\fR] [\fI\-\-ALL\fR] [\fI\-\-descriptor=DES\fR]
|
|
[\fI\-\-dev\-slot\-num=SN\fR] [\fI\-\-eiioe=A_F\fR] [\fI\-\-filter\fR]
|
|
[\fI\-\-get=STR\fR] [\fI\-\-hex\fR] [\fI\-\-index=IIA\fR |
|
|
\fI\-\-index=TIA,II\fR] [\fI\-\-inner\-hex\fR] [\fI\-\-join\fR]
|
|
[\fI\-\-maxlen=LEN\fR] [\fI\-\-page=PG\fR] [\fI\-\-quiet\fR] [\fI\-\-raw\fR]
|
|
[\fI\-\-readonly\fR] [\fI\-\-sas\-addr=SA\fR] [\fI\-\-status\fR]
|
|
[\fI\-\-verbose\fR] [\fI\-\-warn\fR] \fIDEVICE\fR
|
|
.PP
|
|
.B sg_ses
|
|
\fI\-\-control\fR [\fI\-\-byte1=B1\fR] [\fI\-\-clear=STR\fR]
|
|
[\fI\-\-data=H,H...\fR] [\fI\-\-data=@FN\fR] [\fI\-\-descriptor=DES\fR]
|
|
[\fI\-\-dev\-slot\-num=SN\fR] [\fI\-\-index=IIA\fR | \fI\-\-index=TIA,II\fR]
|
|
[\fI\-\-mask\fR] [\fI\-\-maxlen=LEN\fR] [\fI\-\-nickname=SEN\fR]
|
|
[\fI\-\-nickid=SEID\fR] [\fI\-\-page=PG\fR] [\fI\-\-readonly\fR]
|
|
[\fI\-\-sas\-addr=SA\fR] [\fI\-\-set=STR\fR] [\fI\-\-verbose\fR]
|
|
\fIDEVICE\fR
|
|
.PP
|
|
.B sg_ses
|
|
\fI\-\-data=@FN\fR \fI\-\-status\fR [\fI\-\-raw\fR \fI\-\-raw\fR]
|
|
[<all options from first form>]
|
|
.br
|
|
.B sg_ses
|
|
\fI\-\-inhex=FN\fR \fI\-\-status\fR [\fI\-\-raw\fR \fI\-\-raw\fR]
|
|
[<all options from first form>]
|
|
.PP
|
|
.B sg_ses
|
|
[\fI\-\-enumerate\fR] [\fI\-\-index=IIA\fR] [\fI\-\-list\fR] [\fI\-\-help\fR]
|
|
[\fI\-\-version\fR]
|
|
.SH DESCRIPTION
|
|
.\" Add any additional description here
|
|
.PP
|
|
Fetches management information from a SCSI Enclosure Service (SES) device.
|
|
This utility can also modify the state of a SES device. The \fIDEVICE\fR
|
|
should be a SES device which may be a dedicated enclosure services
|
|
processor in which case an INQUIRY response's Peripheral Device Type is
|
|
13 [0xd]. Alternatively it may be attached to another type of SCSI
|
|
device (e.g. a disk) in which case the EncServ bit is set in its INQUIRY
|
|
response.
|
|
.PP
|
|
If the \fIDEVICE\fR argument is given with no options then the names of all
|
|
diagnostic pages (dpages) supported are listed. Most, but not necessarily
|
|
all, of the named dpages are defined in the SES standards and drafts. The
|
|
most recent reference for this utility is the draft SCSI Enclosure Services
|
|
4 document T10/BSR INCITS 555 Revision 5 at https://www.t10.org . Existing
|
|
standards for SES, SES\-2 and SES\-3 are ANSI INCITS 305\-1998 and ANSI
|
|
INCITS 448\-2008 and ANSI INCITS 518\-2017 respectively.
|
|
.PP
|
|
SAS expanders typically have a SES device attached via a virtual port.
|
|
Some HBAs (SCSI initiators) choose to expose a SES device internally. That
|
|
means the SCSI subsystem on the host machine can see the SES device, but
|
|
devices connected to that HBA (e.g. a SAS expander) cannot see the HBA's
|
|
SES device. That internal SES device might report on the temperature(s)
|
|
of the HBA and whether anything is connected to its SCSI ports.
|
|
.PP
|
|
The first form shown in the synopsis is for fetching and decoding dpages or
|
|
fields from the SES \fIDEVICE\fR. A SCSI RECEIVE DIAGNOSTIC RESULTS command
|
|
is sent to the \fIDEVICE\fR to obtain each dpage response. Rather than
|
|
decoding a fetched dpage, it may be output in hex or binary with the
|
|
\fI\-\-hex\fR or \fI\-\-raw \-\-raw\fR options.
|
|
.PP
|
|
The second form in the synopsis is for modifying dpages or fields held in
|
|
the SES \fIDEVICE\fR. A SCSI SEND DIAGNOSTIC command containing a "control"
|
|
dpage is sent to the \fIDEVICE\fR to cause changes. Changing the state of an
|
|
enclosure (e.g. requesting the "ident" (locate) LED to flash on a disk
|
|
carrier in an array) is typically done using a read\-modify\-write cycle.
|
|
See the section on CHANGING STATE below.
|
|
.PP
|
|
The third form in the synopsis has two equivalent invocations shown. They
|
|
decode the contents of a file (named \fIFN\fR) that holds a hexadecimal or
|
|
binary representation of one, or many, SES dpage responses. Typically an
|
|
earlier invocation of the first form of this utility with the '\-HHHH'
|
|
option would have generated that file. Since no SCSI commands are sent, the
|
|
\fIDEVICE\fR argument if given will be ignored.
|
|
.PP
|
|
The last form in the synopsis shows the options for providing command line
|
|
help (i.e. usage information), listing out dpage and field information tables
|
|
held by the utility (\fI\-\-enumerate\fR), or printing the version string
|
|
of this utility.
|
|
.PP
|
|
There is a web page discussing this utility at
|
|
https://sg.danny.cz/sg/sg_ses.html . Support for downloading microcode to
|
|
a SES device has been placed in a separate utility called sg_ses_microcode.
|
|
.PP
|
|
In the following sections "dpage" refers to a diagnostic page, either fetched
|
|
with a SCSI RECEIVE DIAGNOSTIC RESULTS command, sent to the \fIDEVICE\fR with
|
|
a SCSI SEND DIAGNOSTIC command, or fetched from data supplied by the
|
|
\fI\-\-data=\fR option.
|
|
.SH OPTIONS
|
|
Arguments to long options are mandatory for short options as well.
|
|
The options are arranged in alphabetical order based on the long
|
|
option name.
|
|
.TP
|
|
\fB\-a\fR, \fB\-\-all\fR
|
|
shows (almost) all status dpages, following references and presenting
|
|
the information as a long list whose indentation indicates the level
|
|
of nesting. This option is actually the same as \fI\-\-join\fR, see its
|
|
description for more information.
|
|
.br
|
|
If used twice, adds threshold elements to output (if they are available).
|
|
So it is the same as using \fI\-\-join\fRtwice.
|
|
.TP
|
|
\fB\-z\fR, \fB\-\-ALL\fR
|
|
shows (almost) all status dpages, following references and presenting
|
|
the information as a long list whose indentation indicates the level
|
|
of nesting. Also shows the threshold elements if they are available.
|
|
This option is the same as using \fI\-\-join\fR rwice.
|
|
.TP
|
|
\fB\-b\fR, \fB\-\-byte1\fR=\fIB1\fR
|
|
some modifiable dpages may need byte 1 (i.e. the second byte) set. In the
|
|
Enclosure Control dpage, byte 1 contains the INFO, NON\-CRIT, CRIT and
|
|
UNRECOV bits. In the Subenclosure String Out, Subenclosure Nickname Control
|
|
and Download Microcode Control dpages, byte 1 is the Subenclosure identifier.
|
|
Active when the \fI\-\-control\fR and \fI\-\-data=H,H...\fR options are used
|
|
and the default value is 0. If the \fI\-\-clear=STR\fR or \fI\-\-set=STR\fR
|
|
option is used then the value read from byte 1 is written back to byte 1.
|
|
\fIB1\fR is in decimal unless it is prefixed by '0x' or '0X' (or has a
|
|
trailing 'h' or 'H').
|
|
.TP
|
|
\fB\-C\fR, \fB\-\-clear\fR=\fISTR\fR
|
|
Used to clear an element field in the Enclosure Control or Threshold Out
|
|
dpage. Must be used together with an indexing option to specify which element
|
|
is to be changed. The Enclosure Control dpage is assumed if the
|
|
\fI\-\-page=PG\fR option is not given. See the STR FORMAT and the CLEAR, GET,
|
|
SET sections below.
|
|
.TP
|
|
\fB\-c\fR, \fB\-\-control\fR
|
|
will send control information to the \fIDEVICE\fR via a SCSI SEND
|
|
DIAGNOSTIC command. Cannot give both this option and \fI\-\-status\fR.
|
|
The Enclosure Control, String Out, Threshold Out, Array Control (obsolete
|
|
in SES\-2), Subenclosure String Out, Subenclosure Nickname Control and
|
|
Download Microcode dpages can be set currently. This option is assumed if
|
|
either the \fI\-\-clear=STR\fR or \fI\-\-set=STR\fR option is given.
|
|
.TP
|
|
\fB\-d\fR, \fB\-\-data\fR=\fIH,H...\fR
|
|
permits a string of comma separated (ASCII) hex bytes to be specified (limit
|
|
1024). A (single) space separated string of hex bytes is also allowed but
|
|
the list needs to be in quotes. This option allows the parameters to a
|
|
control dpage to be specified. The string given should not include the first 4
|
|
bytes (i.e. page code and length). See the DATA SUPPLIED section below.
|
|
.TP
|
|
\fB\-d\fR, \fB\-\-data\fR=\-
|
|
reads one or more data strings from stdin, limit almost 2**16 bytes. stdin
|
|
may provide ASCII hex as a comma separated list (i.e. as with the
|
|
\fI\-\-data=H,H...\fR option). Additionally spaces, tabs and line feeds are
|
|
permitted as separators from stdin . Stops reading stdin when an EOF is
|
|
detected. See the DATA SUPPLIED section below.
|
|
.TP
|
|
\fB\-d\fR, \fB\-\-data\fR=@\fIFN\fR
|
|
reads one or more data strings from the file called \fIFN\fR, limit almost
|
|
2**16 bytes. The contents of the file is decoded in the same fashion as
|
|
stdin described in the previous option. See the DATA SUPPLIED section below.
|
|
.TP
|
|
\fB\-D\fR, \fB\-\-descriptor\fR=\fIDES\fR
|
|
where \fIDES\fR is a descriptor name (string) as found in the Element
|
|
Descriptor dpage. This is a medium level indexing alternative to the low
|
|
level \fI\-\-index=\fR options. If the descriptor name contains a space then
|
|
\fIDES\fR needs to be surrounded by quotes (single or double) or the space
|
|
escaped (e.g. preceded by a backslash). See the DESCRIPTOR NAME, DEVICE SLOT
|
|
NUMBER AND SAS ADDRESS section below.
|
|
.TP
|
|
\fB\-x\fR, \fB\-\-dev\-slot\-num\fR=\fISN\fR, \fB\-\-dsn\fR=\fISN\fR
|
|
where \fISN\fR is a device slot number found in the Additional Element Status
|
|
dpage. Only entries for FCP and SAS devices (with EIP=1) have device slot
|
|
numbers. \fISN\fR must be a number in the range 0 to 255 (inclusive). 255 is
|
|
used to indicate there is no corresponding device slot. This is a medium level
|
|
indexing alternative to the low level \fI\-\-index=\fR options. See the
|
|
DESCRIPTOR NAME, DEVICE SLOT NUMBER AND SAS ADDRESS section below.
|
|
.TP
|
|
\fB\-E\fR, \fB\-\-eiioe\fR=\fIA_F\fR
|
|
\fIA_F\fR is either the string 'auto' or 'force'. There was some fuzziness
|
|
in the interpretation of the 'element index' field in the Additional Element
|
|
Status (AES) dpage between SES\-2 and SES\-3. The EIIOE bit was introduced to
|
|
resolve the problem but not all enclosures have caught up. In the SES\-3
|
|
revision 12 draft the EIIOE bit was expanded to a 2 bit EIIOE field.
|
|
Using '\-\-eiioe=force' will decode the AES dpage as if the EIIOE field is set
|
|
to 1. Using '\-\-eiioe=auto' will decode the AES dpage as if the EIIOE field
|
|
is set to 1 if the first AES descriptor has its EIP bit set and its element
|
|
index field is 1 (in other words a heuristic to guess whether the EIIOE field
|
|
should be set to 1 or 0).
|
|
.br
|
|
If the enclosure sets the actual EIIOE field to 1 or more then this option has
|
|
no effect. It is recommended that HP JBOD users set \-\-eiioe=auto .
|
|
.TP
|
|
\fB\-e\fR, \fB\-\-enumerate\fR
|
|
enumerate all known diagnostic page (dpage) names and SES elements that this
|
|
utility recognizes plus the abbreviations accepted by this utility. Ignores
|
|
\fIDEVICE\fR if it is given. Essentially it is dumping out tables held
|
|
internally by this utility.
|
|
.br
|
|
If \fI\-\-enumerate\fR is given twice, then the recognised acronyms for the
|
|
\fI\-\-clear=STR\fR, \fI\-\-get=STR\fR and \fI\-\-set=STR\fR options are
|
|
listed. The utility exits after listing this information, so most other
|
|
options and \fIDEVICE\fR are ignored. Since there are many acronyms for
|
|
the Enclosure Control/Status dpage then the output can be further restricted
|
|
by giving the \fI\-\-index=IIA\fR option (e.g. "sg_ses \-ee \-I ts" to only
|
|
show the acronyms associated with the Enclosure Control/Status dpage's
|
|
Temperature Sensor Element Type).
|
|
.TP
|
|
\fB\-f\fR, \fB\-\-filter\fR
|
|
cuts down on the amount of output from the Enclosure Status dpage and the
|
|
Additional Element Status dpage. When this option is given, any line which
|
|
has all its binary flags cleared (i.e. 0) is filtered out (i.e. ignored).
|
|
If a line has some other value on it (e.g. a temperature) then it is output.
|
|
When this option is used twice only elements associated with the "status=ok"
|
|
field (in the Enclosure status dpage) are output. The \fI\-\-filter\fR option
|
|
is useful for reducing the amount of output generated by the \fI\-\-join\fR
|
|
option.
|
|
.TP
|
|
\fB\-G\fR, \fB\-\-get\fR=\fISTR\fR
|
|
Used to read a field in a status element. Must be used together with a an
|
|
indexing option to specify which element is to be read. By default the
|
|
Enclosure Status dpage is read, the only other dpages that can be read are the
|
|
Threshold In and Additional Element Status dpages. If a value is found it is
|
|
output in decimal to stdout (by default) or in hexadecimal preceded by "0x"
|
|
if the \fI\-\-hex\fR option is also given. See the STR FORMAT and the CLEAR,
|
|
GET, SET sections below.
|
|
.TP
|
|
\fB\-h\fR, \fB\-\-help\fR
|
|
output the usage message then exit. Since there is a lot of information,
|
|
it is split into two pages. The most important is shown on the first page.
|
|
Use this option twice (e.g. '\-hh') to output the second page. Note: the
|
|
\fI\-\-enumerate\fR option might also be viewed as a help or usage type
|
|
option. And like this option it has a "given twice" form: '\-ee'.
|
|
.TP
|
|
\fB\-H\fR, \fB\-\-hex\fR
|
|
If the \fI\-\-get=STR\fR option is given then output the value found (if
|
|
any) in hexadecimal, with a leading "0x". Otherwise output the response
|
|
in hexadecimal; with trailing ASCII if given once, without it if given
|
|
twice, and simple hex if given three or more times. Ignored when all
|
|
elements from several dpages are being accessed (e.g. when the \fI\-\-join\fR
|
|
option is used). Also see the \fI\-\-raw\fR option which may be used
|
|
with this option.
|
|
.br
|
|
To dump one of more dpage responses to stdout in ASCII parsable hexadecimal
|
|
use \fI\-HHH\fR or \fI\-HHHH\fR. The triple H form only outputs hexadecimals
|
|
which is fine for a single dpage response. When all dpages are dumped (e.g.
|
|
with \fI\-\-page=all\fR) then the quad H form adds the name of each dpage
|
|
following a hash mark ('#'). The \fI\-\-data=\fR option parser ignores
|
|
everything from and including a hash mark to the end of the line. Hence the
|
|
output of the quad H form is still parsable plus it is easier for users to
|
|
view and possibly edit. \fI\-HHHHH\fR (that is 5) adds the page code in
|
|
hex after the page's name in the comment.
|
|
.TP
|
|
\fB\-I\fR, \fB\-\-index\fR=\fIIIA\fR
|
|
where \fIIIA\fR is either an individual index (II) or an Element type
|
|
abbreviation (A). See the INDEXES section below. If the \fI\-\-page=PG\fR
|
|
option is not given then the Enclosure Status (or Control) dpage is assumed.
|
|
May be used with the \fI\-\-join\fR option or one of the \fI\-\-clear=STR\fR,
|
|
\fI\-\-get=STR\fR or \fI\-\-set=STR\fR options. To enumerate the available
|
|
Element type abbreviations use the \fI\-\-enumerate\fR option.
|
|
.TP
|
|
\fB\-I\fR, \fB\-\-index\fR=\fITIA,II\fR
|
|
where \fITIA,II\fR is an type header index (TI) or Element type
|
|
abbreviation (A) followed by an individual index (II). See the INDEXES section
|
|
below. If the \fI\-\-page=PG\fR option is not given then the Enclosure
|
|
Status (or Control) dpage is assumed. May be used with the \fI\-\-join\fR
|
|
option or one of the \fI\-\-clear=STR\fR, \fI\-\-get=STR\fR or
|
|
\fI\-\-set=STR\fR options. To enumerate the available Element type
|
|
abbreviations use the \fI\-\-enumerate\fR option.
|
|
.TP
|
|
\fB\-X\fR, \fB\-\-inhex\fR=\fIFN\fR
|
|
where \fIFN\fR is a filename. It has the equivalent action of the
|
|
\fI\-\-data=@FN\fR option. If \fIFN\fR is '\-' then stdin is read. This
|
|
option has been given for compatibility with other utilities in this
|
|
package that use \fI\-\-inhex=FN\fR (or \fI\-\-in=FN\fR) is a similar
|
|
way. See the "FORMAT OF FILES CONTAINING ASCII HEX" section in the
|
|
sg3_utils manpage for more information.
|
|
.TP
|
|
\fB\-i\fR, \fB\-\-inner\-hex\fR
|
|
the outer levels of a status dpage are decoded and printed out but the
|
|
innermost level (e.g. the Element Status Descriptor) is output in hex. Also
|
|
active with the Additional Element Status and Threshold In dpages. Can be
|
|
used with an indexing option and/or \fI\-\-join\fR options.
|
|
.TP
|
|
\fB\-j\fR, \fB\-\-join\fR
|
|
group elements from the Element Descriptor, Enclosure Status and Additional
|
|
Element Status dpages. If this option is given twice then elements from the
|
|
Threshold In dpage are also grouped. The order is dictated by the Configuration
|
|
dpage.
|
|
.br
|
|
There can be a bewildering amount of information in the "join" output. The
|
|
default is to output everything. Several additional options are provided to
|
|
cut down the amount displayed. If the indexing options is given, only the
|
|
matching elements and their associated fields are output. The \fI\-\-filter\fR
|
|
option (see its description) can be added to reduce the amount of output.
|
|
Also "\-\-page=aes" (or "\-p 0xa") can be added to suppress the output of
|
|
rows that don't have a "aes" dpage component. See the INDEXES and DESCRIPTOR
|
|
NAME, DEVICE SLOT NUMBER AND SAS ADDRESS sections below.
|
|
.TP
|
|
\fB\-l\fR, \fB\-\-list\fR
|
|
This option is equivalent to \fI\-\-enumerate\fR. See that option.
|
|
.TP
|
|
\fB\-M\fR, \fB\-\-mask\fR
|
|
When modifying elements, the default action is a read (status element),
|
|
mask, modify (based on \fI\-\-clear=STR\fR or \fI\-\-set=STR\fR) then write
|
|
back as the control element. The mask step is new in sg_ses version 1.98
|
|
and is based on what is allowable (and in the same location) in draft SES\-3
|
|
revision 6. Those masks may evolve, as they have in the past. This option
|
|
re\-instates the previous logic which was to ignore the mask step. The
|
|
default action (i.e. without this option) is to perform the mask step in
|
|
the read\-mask\-modify\-write sequence.
|
|
.TP
|
|
\fB\-m\fR, \fB\-\-maxlen\fR=\fILEN\fR
|
|
\fILEN\fR is placed in the ALLOCATION LENGTH field of the SCSI RECEIVE
|
|
DIAGNOSTIC RESULTS commands sent by the utility. It represents the maximum
|
|
size of data the SES device can return (in bytes). It cannot exceed 65535
|
|
and defaults to 65532 (bytes). Some systems may not permit such large sizes
|
|
hence the need for this option. If \fILEN\fR is less than 0 or greater than
|
|
65535 then an error is generated. If \fILEN\fR is 0 then the default value
|
|
is used, otherwise if it is less than 4 then it is ignored (and a warning is
|
|
sent to stderr).
|
|
.TP
|
|
\fB\-n\fR, \fB\-\-nickname\fR=\fISEN\fR
|
|
where \fISEN\fR is the new Subenclosure Nickname. Only the first 32
|
|
characters (bytes) of \fISEN\fR are used, if more are given they are
|
|
ignored. See the SETTING SUBENCLOSURE NICKNAME section below.
|
|
.TP
|
|
\fB\-N\fR, \fB\-\-nickid\fR=\fISEID\fR
|
|
where \fISEID\fR is the Subenclosure identifier that the new
|
|
Nickname (\fISEN\fR) will be applied to. So \fISEID\fR must be an existing
|
|
Subenclosure identifier. The default value is 0 which is the
|
|
main enclosure.
|
|
.TP
|
|
\fB\-p\fR, \fB\-\-page\fR=\fIPG\fR
|
|
where \fIPG\fR is a dpage abbreviation or code (a number). If \fIPG\fR
|
|
starts with a digit it is assumed to be in decimal unless prefixed by
|
|
0x for hex. Valid range is 0 to 255 (0x0 to 0xff) inclusive. Default is
|
|
dpage 'sdp' which is page_code 0 (i.e. "Supported Diagnostic Pages") if
|
|
no other options are given.
|
|
.br
|
|
Page code 0xff or abbreviation "all" is not a real dpage (as the highest
|
|
real dpage is 0x3f) but instead causes all dpages whose page code is 0x2f
|
|
or less to be output. This can be used with either the \fI\-HHHH\fR or
|
|
\fI\-rr\fR to send either hexadecimal ASCII or binary respectively to
|
|
stdout.
|
|
.br
|
|
To list the available dpage abbreviations give "xxx" for \fIPG\fR; the same
|
|
information can also be found with the \fI\-\-enumerate\fR option.
|
|
.TP
|
|
\fB\-q\fR, \fB\-\-quiet\fR
|
|
this suppresses the number of warnings and messages output. The exit status
|
|
of the utility is unaffected by this option.
|
|
.TP
|
|
\fB\-r\fR, \fB\-\-raw\fR
|
|
outputs the chosen status dpage in ASCII hex in a format suitable for a
|
|
later invocation using the \fI\-\-data=\fR option. A dpage less its first
|
|
4 bytes (page code and length) is output. When used twice (e.g. \fI\-rr\fR)
|
|
the full dpage contents is output in binary to stdout.
|
|
.br
|
|
when \fI\-rr\fR is used together with the \fI\-\-data=\-\fR or
|
|
\fI\-\-data=@FN\fR then stdin or file FN is decoded as a binary stream that
|
|
continues to be read until an end of file (EOF). Once that data is read then
|
|
the internal raw option is cleared to 0 so the output is not effected. So
|
|
the \fI\-rr\fR option either changes how the input or output is treated,
|
|
but not both.
|
|
.TP
|
|
\fB\-R\fR, \fB\-\-readonly\fR
|
|
open the \fIDEVICE\fR read\-only (e.g. in Unix with the O_RDONLY flag).
|
|
The default is to open it read\-write.
|
|
.TP
|
|
\fB\-A\fR, \fB\-\-sas\-addr\fR=\fISA\fR
|
|
this is an indexing method for SAS end devices (e.g. SAS disks). The utility
|
|
will try to find the element or slot in the Additional Element Status dpage
|
|
whose SAS address matches \fISA\fR. For a SAS disk or tape that SAS address
|
|
is its target port identifier for the port connected to that element or slot.
|
|
Most SAS disks and tapes have two such target ports, usually numbered
|
|
consecutively.
|
|
.br
|
|
SATA devices in a SAS enclosure often receive "manufactured" target port
|
|
identifiers from a SAS expander; typically will have a SAS address close to,
|
|
but different from, the SAS address of the expander itself. Note that this
|
|
manufactured target port identifier is different from a SATA disk's WWN.
|
|
.br
|
|
\fISA\fR is a hex number that is up to 8 digits long. It may have a
|
|
leading '0x' or '0X' or a trailing 'h' or 'H'. This option is a medium level
|
|
indexing alternative to the low level \fI\-\-index=\fR options.
|
|
See the DESCRIPTOR NAME, DEVICE SLOT NUMBER AND SAS ADDRESS section below.
|
|
.TP
|
|
\fB\-S\fR, \fB\-\-set\fR=\fISTR\fR
|
|
Used to set an element field in the Enclosure Control or Threshold Out dpage.
|
|
Must be used together with an indexing option to specify which element is to
|
|
be changed. The Enclosure Control dpage is assumed if the \fI\-\-page=PG\fR
|
|
option is not given. See the STR FORMAT and CLEAR, GET, SET sections below.
|
|
.TP
|
|
\fB\-s\fR, \fB\-\-status\fR
|
|
will fetch dpage from the \fIDEVICE\fR via a SCSI RECEIVE DIAGNOSTIC RESULTS
|
|
command (or from \fI\-\-data=@FN\fR). In the absence of other options that
|
|
imply modifying a dpage (e.g. \fI\-\-control\fR or \fI\-\-set=STR\fR) then
|
|
\fI\-\-status\fR is assumed, except when the \fI\-\-data=\fR option is given.
|
|
When the \fI\-\-data=\fR option is given there is no default action: either
|
|
the \fI\-\-control\fR or this option must be given to distinguish between
|
|
the two different ways that data will be treated.
|
|
.TP
|
|
\fB\-v\fR, \fB\-\-verbose\fR
|
|
increase the level of verbosity. For example when this option is given four
|
|
times (in which case the short form is more convenient: '\-vvvv') then if
|
|
the internal join array has been generated then it is output to stderr in
|
|
a form suitable for debugging.
|
|
.TP
|
|
\fB\-V\fR, \fB\-\-version\fR
|
|
print the version string and then exit.
|
|
.TP
|
|
\fB\-w\fR, \fB\-\-warn\fR
|
|
warn about certain irregularities with warnings sent to stderr. The join
|
|
is a complex operation that relies on information from several dpages to be
|
|
synchronized. The quality of SES devices vary and to be fair, the
|
|
descriptions from T10 drafts and standards have been tweaked several
|
|
times (see the EIIOE field) in order to clear up confusion.
|
|
.SH INDEXES
|
|
An enclosure can have information about its disk and tape drives plus other
|
|
supporting components like power supplies spread across several dpages.
|
|
Addressing a specific element (overall or individual) within a dpage is
|
|
complicated. This section describes low level indexing (i.e. choosing a
|
|
single element (or a group of related elements) from a large number of
|
|
elements). If available, the medium level indexing described in the
|
|
following section (DESCRIPTOR NAME, DEVICE SLOT NUMBER AND SAS ADDRESS)
|
|
might be simpler to use.
|
|
.PP
|
|
The Configuration dpage is key to low level indexing: it contains a list
|
|
of "type headers", each of which contains an Element type (e.g. Array
|
|
Device Slot), a Subenclosure identifier (0 for the primary enclosure) and
|
|
a "Number of possible elements". Corresponding to each type header, the
|
|
Enclosure Status dpage has one "overall" element plus "Number of possible
|
|
elements" individual elements all of which have the given Element type. For
|
|
some Element types the "Number of possible elements" will be 0 so the
|
|
Enclosure Status dpage has only one "overall" element corresponding to that
|
|
type header. The Element Descriptor dpage and the Threshold (In and Out)
|
|
dpages follow the same pattern as the Enclosure Status dpage.
|
|
.PP
|
|
The numeric index corresponding to the overall element is "\-1". If the
|
|
Configuration dpage indicates a particular element type has "n" elements
|
|
and n is greater than 0 then its indexes range from 0 to n\-1 .
|
|
.PP
|
|
The Additional Element Status dpage is a bit more complicated. It has
|
|
entries for "Number of possible elements" of certain Element types. It
|
|
does not have entries corresponding to the "overall" elements. To make
|
|
the correspondence a little clearer each descriptor in this dpage optionally
|
|
contains an "Element Index Present" (EIP) indicator. If EIP is set then each
|
|
element's "Element Index" field refers to the position of the corresponding
|
|
element in the Enclosure Status dpage.
|
|
.PP
|
|
Addressing a single overall element or a single individual element is done
|
|
with two indexes: TI and II. Both are origin 0. TI=0 corresponds to the
|
|
first type header entry which must be a Device Slot or Array Device Slot
|
|
Element type (according to the SES\-2 standard). To address the corresponding
|
|
overall instance, II is set to \-1, otherwise II can be set to the individual
|
|
instance index. As an alternative to the type header index (TI), an Element
|
|
type abbreviation (A) optionally followed by a number (e.g. "ps" refers to
|
|
the first Power Supply Element type; "ps1" refers to the second) can be
|
|
given.
|
|
.PP
|
|
One of two command lines variants can be used to specify indexes:
|
|
\fI\-\-index=TIA,II\fR where \fITIA\fR is either an type header index (TI)
|
|
or an Element type abbreviation (A) (e.g. "ps" or "ps1"). \fIII\fR is either
|
|
an individual index or "\-1" to specify the overall element. The second
|
|
variant is \fI\-\-index=IIA\fR where \fIIIA\fR is either an individual
|
|
index (II) or an Element type abbreviation (A). When \fIIIA\fR is an
|
|
individual index then the option is equivalent to \fI\-\-index=0,II\fR. When
|
|
\fIIIA\fR is an Element type abbreviation then the option is equivalent to
|
|
\fI\-\-index=A,\-1\fR.
|
|
.PP
|
|
Wherever an individual index is applicable, it can be replaced by an
|
|
individual index range. It has the form: <first_ii>\-<last_ii>. For
|
|
example: '3\-5' will select individual indexes 3, 4 and 5 .
|
|
.PP
|
|
To cope with vendor specific Element types (whose type codes should be in
|
|
the range 128 to 255) the Element type code can be given as a number with
|
|
a leading underscore. For example these are equivalent: \fI\-\-index=arr\fR
|
|
and \fI\-\-index=_23\fR since the Array Device Slot Element type code is 23.
|
|
Also \fI\-\-index=ps1\fR and \fI\-\-index=_2_1\fR are equivalent.
|
|
.PP
|
|
Another example: if the first type header in the Configuration dpage has
|
|
has Array Device Slot Element type then \fI\-\-index=0,\-1\fR is
|
|
equivalent to \fI\-\-index=arr\fR. Also \fI\-\-index=arr,3\fR is equivalent
|
|
to \fI\-\-index=3\fR.
|
|
.PP
|
|
The \fI\-\-index=\fR options can be used to reduce the amount of
|
|
output (e.g. only showing the element associated with the second 12 volt
|
|
power supply). They may also be used together with with the
|
|
\fI\-\-clear=STR\fR, \fI\-\-get=STR\fR and \fI\-\-set=STR\fR options which
|
|
are described in the STR section below.
|
|
.SH DESCRIPTOR NAME, DEVICE SLOT NUMBER AND SAS ADDRESS
|
|
The three options: \fI\-\-descriptor=DES\fR, \fI\-\-dev\-slot\-num=SN\fR
|
|
and \fI\-\-sas\-addr=SA\fR allow medium level indexing, as an alternative
|
|
to the low level \fI\-\-index=\fR options. Only one of the three options
|
|
can be used in an invocation. Each of the three options implicitly set the
|
|
\fI\-\-join\fR option since they need either the Element Descriptor dpage
|
|
or the Additional Element Status dpage as well as the dpages needed by the
|
|
\fI\-\-index=\fR option.
|
|
.PP
|
|
These medium level indexing options need support from the SES device and
|
|
that support is optional. For example the \fI\-\-descriptor=DES\fR needs
|
|
the Element Descriptor dpage provided by the SES device however that is
|
|
optional. Also the provided descriptor names need to be useful, and having
|
|
descriptor names which are all "0" is not very useful. Also some
|
|
elements (e.g. overall elements) may not have descriptor names.
|
|
.PP
|
|
These medium level indexing options can be used to reduce the amount of
|
|
output (e.g. only showing the elements related to device slot number 3).
|
|
They may also be used together with with the \fI\-\-clear=STR\fR,
|
|
\fI\-\-get=STR\fR and \fI\-\-set=STR\fR options which are described in the
|
|
following section. Note that even if a field can be set (e.g. "do not
|
|
remove" (dnr)) and that field can be read back with \fI\-\-get=STR\fR
|
|
confirming that change, the disk array may still ignore it (e.g. because it
|
|
does not have the mechanism to lock the disk drawer).
|
|
.SH STR FORMAT
|
|
The \fISTR\fR operands of the \fI\-\-clear=STR\fR, \fI\-\-get=STR\fR and
|
|
\fI\-\-set=STR\fR options all have the same structure. There are two forms:
|
|
.br
|
|
<acronym>[=<value>]
|
|
.br
|
|
<start_byte>:<start_bit>[:<num_bits>][=<value>]
|
|
.PP
|
|
The <acronym> is one of a list of common fields (e.g. "ident" and "fault")
|
|
that the utility converts internally into the second form. The <start_byte>
|
|
is usually in the range 0 to 3, the <start_bit> must be in the range 0 to
|
|
7 and the <num_bits> must be in the range 1 to 64 (default 1). The
|
|
number of bits are read in the left to right sense of the element tables
|
|
shown in the various SES draft documents. For example the 8 bits of
|
|
byte 2 would be represented as 2:7:8 with the most significant bit being
|
|
2:7 and the least significant bit being 2:0 .
|
|
.PP
|
|
The <value> is optional but is ignored if provided to \fI\-\-get=STR\fR.
|
|
For \fI\-\-set=STR\fR the default <value> is 1 while for \fI\-\-clear=STR\fR
|
|
the default value is 0 . <value> is assumed to be decimal, hexadecimal
|
|
values can be given in the normal fashion.
|
|
.PP
|
|
The supported list of <acronym>s can be viewed by using the
|
|
\fI\-\-enumerate\fR option twice (or "\-ee").
|
|
.SH CLEAR, GET, SET
|
|
The \fI\-\-clear=STR\fR, \fI\-\-get=STR\fR and \fI\-\-set=STR\fR options can
|
|
be used up to 8 times in the same invocation. Any <acronym>s used in the
|
|
\fISTR\fR operands must refer to the same dpage.
|
|
.PP
|
|
When multiple of these options are used (maximum: 8), they are applied in the
|
|
order in which they appear on the command line. So if options contradict each
|
|
other, the last one appearing on the command line will be enforced. When
|
|
there are multiple \fI\-\-clear=STR\fR and \fI\-\-set=STR\fR options, then
|
|
the dpage they refer to is only written after the last one.
|
|
.SH DATA SUPPLIED
|
|
This section describes the two scenarios that can occur when the
|
|
\fI\-\-data=\fR option is given. These scenarios are the same irrespective
|
|
of whether the argument to the \fI\-\-data=\fR option is a string of
|
|
hex bytes on the command line, stdin (indicated by \fI\-\-data=\-\fR) or
|
|
names a file (e.g. \fI\-\-data=@thresh_in_dpage.hex\fR).
|
|
.PP
|
|
The first scenario is flagged by the \fI\-\-control\fR option. It uses the
|
|
supplied data to build a 'control' dpage that will be sent to the
|
|
\fIDEVICE\fR using the SCSI SCSI SEND DIAGNOSTIC command. The supplied dpage
|
|
data should not include its first 4 bytes. Those 4 bytes are added by this
|
|
utility using the \fI\-\-page=PG\fR option with \fIPG\fR placed at byte
|
|
offset 0). If needed, the \fI\-\-byte1=B1\fR option sets byte offset 1,
|
|
else 0 is placed in that position. The number of bytes decoded from the data
|
|
provided (i.e. its length) goes into byte offsets 2 and 3.
|
|
.PP
|
|
The second scenario is flagged by the \fI\-\-status\fR option. It decodes
|
|
the supplied data assuming that it represents the response to one or more
|
|
SCSI RECEIVE DIAGNOSTIC RESULTS commands. Those responses have typically
|
|
been captured from some earlier invocation(s) of this utility. Those earlier
|
|
invocations could use the '\-HHH' or '\-HHHH' option and file redirection to
|
|
capture that response (or responses) in hexadecimal. The supplied dpage
|
|
response data is decoded according to the other command line options. For
|
|
example the \fI\-\-join\fR option could be given and that would require the
|
|
data from multiple dpages typically: Configuration, Enclosure status,
|
|
Element descriptor and Additional element status dpages. If in doubt use
|
|
\fI\-\-page=all\fR in the capture phase; having more dpages than needed
|
|
is not a problem.
|
|
.PP
|
|
By default the user supplied data is assumed to be ASCII hexadecimal in
|
|
lines that don't exceed 512 characters. Anything on a line from and
|
|
including a hash mark ('#') to the end of line is ignored. An end of
|
|
line can be a LF or CR,LF and blank lines are ignored. Each separated
|
|
pair (or single) hexadecimal digits represent a byte (and neither a
|
|
leading '0x' nor a trailing 'h' should be given). Separators are either
|
|
space, tab, comma or end of line.
|
|
.PP
|
|
Alternatively binary can be used and this is flagged by the '\-rr' option.
|
|
The \fI\-\-data=H,H...\fR form cannot use binary values for the 'H's, only
|
|
ASCII hexadecimal. The other two forms (\fI\-\-data=\-\fR and
|
|
\fI\-\-data=@FN\fR) may contain binary data. Note that when the '\-rr'
|
|
option is used with \fI\-\-data=@FN\fR that it only changes the
|
|
interpretation of the input data, it does not change the decoding and output
|
|
representation.
|
|
.SH CHANGING STATE
|
|
This utility has various techniques for changing the state of a SES device.
|
|
As noted above this is typically a read\-modify\-write type operation.
|
|
Most modifiable dpages have a "status" (or "in") page that can be read, and
|
|
a corresponding "control" (or "out") dpage that can be written back to change
|
|
the state of the enclosure.
|
|
.PP
|
|
The lower level technique provided by this utility involves outputting
|
|
a "status" dpage in hex with \fI\-\-raw\fR. Then a text editor can be used
|
|
to edit the hex (note: to change an Enclosure Control descriptor the SELECT
|
|
bit needs to be set). Next the control dpage data can fed back with the
|
|
\fI\-\-data=H,H...\fR option together with the \fI\-\-control\fR option;
|
|
the \fI\-\-byte1=B1\fR option may need to be given as well.
|
|
.PP
|
|
Changes to the Enclosure Control dpage (and the Threshold Out dpage) can be
|
|
done at a higher level. This involves choosing a dpage (the default in this
|
|
case is the Enclosure Control dpage). Next choose an individual or overall
|
|
element index (or name it with its Element Descriptor string). Then give
|
|
the element's name (e.g. "ident" for RQST IDENT) or its position within that
|
|
element (e.g. in an Array Device Slot Control element RQST IDENT is byte 2,
|
|
bit 1 and 1 bit long ("2:1:1")). Finally a value can be given, if not the
|
|
value for \fI\-\-set=STR\fR defaults to 1 and for \fI\-\-clear=STR\fR
|
|
defaults to 0.
|
|
.SH SETTING SUBENCLOSURE NICKNAME
|
|
The format of the Subenclosure Nickname control dpage is different from its
|
|
corresponding status dpage. The status dpage reports all Subenclosure
|
|
Nicknames (and Subenclosure identifier 0 is the main enclosure) while the
|
|
control dpage allows only one of them to be changed. Therefore using the
|
|
\fB\-\-data\fR option technique to change a Subenclosure nickname is
|
|
difficult (but still possible).
|
|
.PP
|
|
To simplify changing a Subenclosure nickname the \fI\-\-nickname=SEN\fR and
|
|
\fI\-\-nickid=SEID\fR options have been added. If the \fISEN\fR string
|
|
contains spaces or other punctuation, it should be quoted: surrounded by
|
|
single or double quotes (or the offending characters escaped). If the
|
|
\fI\-\-nickid=SEID\fR is not given then a Subenclosure identifier of 0 is
|
|
assumed. As a guard the \fI\-\-control\fR option must also be given. If
|
|
the \fI\-\-page=PG\fR option is not given then \fI\-\-page=snic\fR is
|
|
assumed.
|
|
.PP
|
|
When \fI\-\-nickname=SEN\fR is given then the Subenclosure Nickname Status
|
|
dpage is read to obtain the Generation Code field. That Generation Code
|
|
together with no more than 32 bytes from the Nickname (\fISEN\fR) and the
|
|
Subenclosure Identifier (\fISEID\fR) are written to the Subenclosure Nickname
|
|
Control dpage.
|
|
.PP
|
|
There is an example of changing a nickname in the EXAMPLES section below.
|
|
.SH NVME ENCLOSURES
|
|
Support has been added to sg_ses (actually, its underlying library) for
|
|
NVMe (also known as NVM Express) Enclosures. It can be considered
|
|
experimental in sg3_utils package version 1.43 and sg_ses version 2.34 .
|
|
.PP
|
|
This support is based on a decision by NVME\-MI (Management Interface)
|
|
developers to support the SES\-3 standard. This was facilitated by adding
|
|
NVME\-MI SES Send and SES Receive commands that tunnel dpage contents as
|
|
used by SES.
|
|
.SH NOTES
|
|
This utility can be used to fetch arbitrary (i.e. non SES) dpages (using
|
|
the SCSI READ DIAGNOSTIC command). To this end the \fI\-\-page=PG\fR and
|
|
\fI\-\-hex\fR options would be appropriate. Non\-SES dpages can be sent to
|
|
a device with the sg_senddiag utility.
|
|
.PP
|
|
The most troublesome part of the join operation is associating Additional
|
|
Element Status descriptors correctly. At least one SES device vendor has
|
|
misinterpreted the SES\-2 standard, specifically with its "element index"
|
|
field interpretation. The code in this utility interprets the "element
|
|
index" field as per the SES\-2 standard and if that yields an inappropriate
|
|
Element type, adjusts its indexing to follow that vendor's
|
|
misinterpretation. The SES\-3 drafts have introduced the EIIOE (Element
|
|
Index Includes Overall Elements) bit which later became a 2 bit field to
|
|
resolve this ambiguity. See the \fI\-\-eiioe=A_F\fR option.
|
|
.PP
|
|
In draft SES\-3 revision 5 the "Door Lock" element name was changed to
|
|
the "Door" (and an OPEN field was added to the status element). As a
|
|
consequence the former 'dl' element type abbreviation has been changed
|
|
to 'do'.
|
|
.PP
|
|
Some RAID controllers hide SES device nodes from the host Operating System.
|
|
It has been reported that some MegaRAID controllers do this and the
|
|
following command is needed to expose them:
|
|
.PP
|
|
perccli /cx set backplane expose=<on/off>
|
|
.PP
|
|
where perccli is Dell's version of BroadCom's (LSI) storcli utility.
|
|
.PP
|
|
There is a related command set called SAF\-TE (SCSI attached fault\-tolerant
|
|
enclosure) for enclosure (including RAID) status and control. SCSI devices
|
|
that support SAF\-TE report "Processor" peripheral device type (0x3) in their
|
|
INQUIRY response. See the sg_safte utility in this package or the
|
|
safte\-monitor utility on the Internet.
|
|
.PP
|
|
The internal join array is statically allocated and its size is controlled
|
|
by the MX_JOIN_ROWS define. Its current value is 520.
|
|
.SH EXAMPLES
|
|
Examples can also be found at https://sg.danny.cz/sg/sg_ses.html
|
|
.PP
|
|
The following examples use Linux device names. For suitable device names
|
|
in other supported Operating Systems see the sg3_utils(8) man page.
|
|
.PP
|
|
To view the supported dpages:
|
|
.PP
|
|
sg_ses /dev/bsg/6:0:2:0
|
|
.PP
|
|
To view the Configuration Diagnostic dpage:
|
|
.PP
|
|
sg_ses \-\-page=cf /dev/bsg/6:0:2:0
|
|
.PP
|
|
To view the Enclosure Status dpage:
|
|
.PP
|
|
sg_ses \-\-page=es /dev/bsg/6:0:2:0
|
|
.PP
|
|
To get the (attached) SAS address of that device (which is held in the
|
|
Additional Element Sense dpage (dpage 10)) printed on hex:
|
|
.PP
|
|
sg_ses \-p aes \-D ArrayDevice07 \-G at_sas_addr \-H /dev/sg3
|
|
.PP
|
|
To collate the information in the Enclosure Status, Element Descriptor
|
|
and Additional Element Status dpages the \fI\-\-join\fR option can be used:
|
|
.PP
|
|
sg_ses \-\-join /dev/sg3
|
|
.PP
|
|
This will produce a lot of output. To filter out lines that don't contain
|
|
much information add the \fI\-\-filter\fR option:
|
|
.PP
|
|
sg_ses \-\-join \-\-filter /dev/sg3
|
|
.PP
|
|
Fields in the various elements of the Enclosure Control and Threshold dpages
|
|
can be changed with the \fI\-\-clear=STR\fR and \fI\-\-set=STR\fR
|
|
options. [All modifiable dpages can be changed with the \fI\-\-raw\fR and
|
|
\fI\-\-data=H,H...\fR options.] The following example looks at making
|
|
the "ident" LED (also called "locate") flash on "ArrayDevice07" which is a
|
|
disk (or more precisely the carrier drawer the disk is in):
|
|
.PP
|
|
sg_ses \-\-index=7 \-\-set=2:1:1 /dev/sg3
|
|
.PP
|
|
If the Element Descriptor diagnostic dpage shows that "ArrayDevice07" is
|
|
the descriptor name associated with element index 7 then this invocation
|
|
is equivalent to the previous one:
|
|
.PP
|
|
sg_ses \-\-descriptor=ArrayDevice07 \-\-set=2:1:1 /dev/sg3
|
|
.PP
|
|
Further the byte 2, bit 1 (for 1 bit) field in the Array Device Slot Control
|
|
element is RQST IDENT for asking a disk carrier to flash a LED so it can
|
|
be located. In this case "ident" (or "locate") is accepted as an acronym
|
|
for that field:
|
|
.PP
|
|
sg_ses \-\-descriptor=ArrayDevice07 \-\-set=ident /dev/sg3
|
|
.PP
|
|
To stop that LED flashing:
|
|
.PP
|
|
sg_ses \-\-dev\-slot\-num=7 \-\-clear=ident /dev/sg3
|
|
.PP
|
|
The above assumes the descriptor name 'ArrayDevice07' corresponds to device
|
|
slot number 7.
|
|
.PP
|
|
Now for an example of a more general but lower level technique for changing
|
|
a modifiable diagnostic dpage. The String (In and Out) diagnostics dpage is
|
|
relatively simple (compared with the Enclosure Status/Control dpage). However
|
|
the use of this lower level technique is awkward involving three steps: read,
|
|
modify then write. First check the current String (In) dpage contents:
|
|
.PP
|
|
sg_ses \-\-page=str /dev/bsg/6:0:2:0
|
|
.PP
|
|
Now the "read" step. The following command will send the contents of the
|
|
String dpage (from byte 4 onwards) to stdout. The output will be in ASCII
|
|
hex with pairs of hex digits representing a byte, 16 pairs per line,
|
|
space separated. The redirection puts stdout in a file called "t":
|
|
.PP
|
|
sg_ses \-\-page=str \-\-raw /dev/bsg/6:0:2:0 > t
|
|
.PP
|
|
Then with the aid of the SES\-3 document (in revision 3: section 6.1.6)
|
|
use your favourite editor to change t. The changes can be sent to the
|
|
device with:
|
|
.PP
|
|
sg_ses \-\-page=str \-\-control \-\-data=\- /dev/bsg/6:0:2:0 < t
|
|
.PP
|
|
If the above is successful, the String dpage should have been changed. To
|
|
check try:
|
|
.PP
|
|
sg_ses \-\-page=str /dev/bsg/6:0:2:0
|
|
.PP
|
|
To change the nickname on the main enclosure:
|
|
.PP
|
|
sg_ses \-\-nickname='1st enclosure' \-\-control /dev/bsg/6:0:2:0
|
|
.PP
|
|
To capture the whole state of an enclosure (from a SES perspective) for
|
|
later analysis, this can be done:
|
|
.PP
|
|
sg_ses \-\-page=all \-HHHH /dev/sg5 > enc_sg5_all.hex
|
|
.PP
|
|
Note that if there are errors or warnings they will be sent to stderr so
|
|
they will appear on the command line (since only stdout is redirected).
|
|
A text editor could be used to inspect enc_sg5_all.hex . If all looks in
|
|
order at some later time, potentially on a different machine where
|
|
enc_sg5_all.hex has been copied, a "join" could be done. Note that join
|
|
reflects the state of the enclosure when the capture was done.
|
|
.PP
|
|
sg_ses \-\-data=@enc_sg5_all.hex \-\-status \-\-join
|
|
.SH EXIT STATUS
|
|
The exit status of sg_ses 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\-2021 Douglas Gilbert
|
|
.br
|
|
This software is distributed under a BSD\-2\-Clause license. There is NO
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
.SH "SEE ALSO"
|
|
.B sg_inq, sg_safte, sg_senddiag, sg_ses_microcode, sg3_utils (sg3_utils);
|
|
.B safte\-monitor (Internet)
|