1SG_MODES(8)                        SG3_UTILS                       SG_MODES(8)
2
3
4

NAME

6       sg_modes - reads mode pages with SCSI MODE SENSE command
7

SYNOPSIS

9       sg_modes [--all] [--control=PC] [--dbd] [--dbout] [--examine] [--flexi‐
10       ble]    [--help]    [--hex]    [--list]    [--llbaa]     [--maxlen=LEN]
11       [--page=PG[,SPG]]   [--raw]   [-R]  [--readwrite]  [--six]  [--verbose]
12       [--version] [DEVICE]
13
14       sg_modes [-6] [-a] [-A] [-c=PC] [-d] [-D] [-e] [-f] [-h] [-H] [-l] [-L]
15       [-m=LEN] [-p=PG[,SPG]] [-r] [-subp=SPG] [-v] [-V] [-w] [-?] [DEVICE]
16

DESCRIPTION

18       This  utility sends a MODE SENSE SCSI command to the DEVICE and outputs
19       the response. There is a 6 byte and 10 byte (cdb) variant of  the  MODE
20       SENSE  command, this utility defaults to the 10 byte variant. The SPC-4
21       standard (and SPC-5 drafts) include a note  stating  that  implementers
22       should migrate away from the SCSI MODE SELECT(6) and MODE SENSE(6) com‐
23       mands in favour of the 10 byte variants (e.g.  MODE SENSE(10)).
24
25       This utility decodes mode page headers and block descriptors  but  out‐
26       puts  the contents of each mode page in hex. It also has no facility to
27       change the mode page contents or block descriptor data. Mode page  con‐
28       tents are decoded and can be changed by the sdparm utility.
29
30       This  utility  supports two command line syntaxes, the preferred one is
31       shown first in the synopsis and explained in this section. A later sec‐
32       tion  on  the  old  command  line  syntax  outlines the second group of
33       options.
34
35       If no page is given (and --list is not selected) then --all is assumed.
36       The --all option requests all mode pages (but not subpages) in a single
37       response.
38

OPTIONS

40       Arguments to long options are mandatory for short options as well.
41
42       -a, --all
43              output all the mode pages reported by the DEVICE. This  is  what
44              the  page  code 63 (0x3f) is defined to do. When used once, mode
45              subpages are not fetched. When used twice (e.g. '-aa'), all mode
46              pages   and  subpages  are  requested  which  is  equivalent  to
47              '--page=63,255'.
48
49       -c, --control=PC
50              PC is the page control value. Up to four different  versions  of
51              each page are held by the device:
52                0 : current values (i.e. those active at present)
53                1 : changeable values
54                2 : default values (i.e. the manufacturer's settings)
55                3 : saved values
56              The  changeable  values are bit masks showing which fields could
57              be changed  with  a  MODE  SELECT.  The  saved  values  will  be
58              re-instated  the  next time the device is power cycled or reset.
59              If this option is not given then current values [0] are assumed.
60
61       -d, --dbd
62              disable block descriptors. By default, block  descriptors  (usu‐
63              ally  one  (for  disks)  or  none)  are returned in a MODE SENSE
64              response. This option sets the "disable block descriptors" (DBD)
65              bit  in  the  cdb  which  instructs the device not to return any
66              block descriptors in its response. Older devices may not support
67              this  setting  and  may  return  an "illegal request" sense key;
68              alternatively they may ignore it. Oddly the Reduced  Block  Com‐
69              mand set (RBC) requires this bit set.
70
71       -D, --dbout
72              disable  outputting  block  descriptors. Irrespective of whether
73              block descriptors are present in the response or not,  they  are
74              not output.
75
76       -e, --examine
77              examine each mode page in the range 0 through to 62 (inclusive).
78              If some response is given then print out the mode page  name  or
79              number (in hex) if the name is not known.
80
81       -f, --flexible
82              Some  devices, bridges and/or drivers attempt crude translations
83              between MODE SENSE 6 and 10 byte commands without correcting the
84              response.  This  will  cause  the response to be mis-interpreted
85              (usually with an error saying the response is  malformed).  With
86              this  option,  the  length of the response is checked, and if it
87              looks wrong, the response is then decoded as if the  other  mode
88              sense (cdb length) was sent.
89
90       -h, --help
91              print out the usage message then exit.
92
93       -H, --hex
94              The  default  action  is  to decode known mode page numbers (and
95              subpage numbers) into text. When this option is used  once,  the
96              response is output in hexadecimal to stdout. When this option is
97              used twice, mode page numbers and page control values are output
98              in hex.
99              When  this  option is used three times, the full response to the
100              MODE SENSE command is output in hex to stdout without any decod‐
101              ing.  This  form can be redirected to a file (or piped) and then
102              used 'sdparm --inhex=' to decode.
103
104       -l, --list
105              lists all common page and subpage codes and their names that are
106              found in the command set that matches the peripheral type of the
107              given DEVICE.  If no DEVICE and no --page=PG is given  then  the
108              common page and subpage codes and their names are listed for SBC
109              (e.g. a disk). If no DEVICE is given and a  --page=PG  is  given
110              then  the  common  page  and  subpage  codes and their names are
111              listed for the command set whose peripheral device type  matches
112              the  value  given  to  PG. For example 'sg_mode --list --page=1'
113              lists the command mode pages  and  subpages  for  tape  devices.
114              Additionally  if a sub_page_code is given then it is interpreted
115              as a transport identifier and command  transport  specific  mode
116              page  codes  and  their names are listed following the main mode
117              page list.  Other options are ignored.
118
119       -L, --llbaa
120              set the Long LBA Accepted (LLBAA) bit in  the  MODE  SENSE  (10)
121              cdb.  This  bit is not defined in the MODE SENSE (6) cdb so set‐
122              ting the '-L' and '--six' options is reported as an error.  When
123              set  the  DEVICE  may  respond with 16 byte block descriptors as
124              indicated by the 'LongLBA' field in the response. In most  cases
125              setting this option is not needed.
126
127       -m, --maxlen=LEN
128              The  LEN argument is the maximum response length in bytes. It is
129              the 'allocation length' field in the cdb. When not given (or LEN
130              is  zero)  then  the  allocation length field is set to 4096 for
131              MODE SENSE (10) or 252 for MODE SENSE (6). The LEN argument must
132              be  non-negative  and  no greater than 65535 for MODE SENSE (10)
133              and not greater than 255 for MODE SENSE (6).
134
135       -O, --old
136              Switch to older style options. Please use as first option.
137
138       -p, --page=PG
139              page code to fetch. The PG is assumed  to  be  a  decimal  value
140              unless  prefixed  by  '0x' or has a trailing 'h'. It should be a
141              value between 0 and 63 (inclusive). When not given and a default
142              is  required  then  a value of 63 (0x3f), which fetches all mode
143              pages, is used.
144              Alternatively an acronym for the mode page  can  be  given.  The
145              available acronyms can be listed out with the --page=xxx option.
146              They are almost the same as the acronyms used for mode pages  in
147              the sdparm utility.
148
149       -p, --page=PG,SPG
150              page  code  and subpage code values to fetch. Both arguments are
151              assumed to be decimal unless flagged as  hexadecimal.  The  page
152              code  should  be  between  0  and 63 inclusive. The subpage code
153              should be between 0 and 255 inclusive. The default value for the
154              subpage code is 0.
155
156       -r, --raw
157              output  the  response  in  binary  to stdout. Error messages and
158              warnings, if any, are sent to stderr. When this option  is  used
159              twice (e.g. '-rr') then has the same action as '-R'
160
161       -R     output  the  selected  mode page to stdout a byte per line. Each
162              line contains two hexadecimal  digits  (e.g.  "3e").  Useful  as
163              input (after editing) to the sg_wr_mode(8) utility.
164
165       -w, --readwrite
166              open  DEVICE  in  "read-write"  mode.  Default  is to open it in
167              read-only mode.
168
169       -6, --six
170              by default this utility sends a 10 byte MODE  SENSE  command  to
171              the  DEVICE.  However some SCSI devices only support 6 byte MODE
172              SENSE commands (e.g. SCSI-2 tape drives). This parameter  forces
173              the use of 6 byte MODE SENSE commands.
174
175       -v, --verbose
176              increase level of verbosity. Can be used multiple times.
177
178       -V, --version
179              print out version string then exit.
180

NOTES

182       If  the  normal  sg_modes utility fails with "illegal command operation
183       code" then try the '--six' (or '-6') option.
184
185       This utility performs a SCSI INQUIRY command to determine  the  periph‐
186       eral  type  of the device (e.g. 0 -> Direct Access Device (disk)) prior
187       to sending a MODE SENSE command.  This  helps  in  decoding  the  block
188       descriptor and mode pages.
189
190       This  utility  opens  DEVICE  in read-only mode (e.g. in Unix, with the
191       O_RDONLY flag) by default. It will open DEVICE in  read-write  mode  if
192       the --readwrite option is given.
193
194       In  the  2.4  series of Linux kernels the DEVICE must be a SCSI generic
195       (sg) device. In the 2.6 series block devices (e.g. SCSI disks  and  DVD
196       drives)  can also be specified. For example "sg_modes -a /dev/sda" will
197       work in the 2.6 series kernels.
198

EXIT STATUS

200       The exit status of sg_modes is 0 when it is successful.  Otherwise  see
201       the sg3_utils(8) man page.
202

OLDER COMMAND LINE OPTIONS

204       The  options  in  this  section  were  the only ones available prior to
205       sg3_utils version 1.23 . Since then this utility defaults to the  newer
206       command  line options which can be overridden by using --old (or -O) as
207       the first option. See the ENVIRONMENT VARIABLES section for another way
208       to force the use of these older command line options.
209
210       -6     by  default  this  utility sends a 10 byte MODE SENSE command to
211              the DEVICE. This parameter forces the use of 6 byte  MODE  SENSE
212              commands.  See --six in the main description.
213
214       -a     see --all in the main description.
215
216       -A     output  all the mode pages and subpages supported by the DEVICE.
217              Same as '--all --all' in the new syntax.
218
219       -c=PC  PC is the page control  value.  See  --control=PC  in  the  main
220              description.
221
222       -d     see --dbd in the main description.
223
224       -D     see --dbout in the main description.
225
226       -e     see --examine in the main description.
227
228       -f     see --flexible in the main description.
229
230       -h     The  default  action  is  to decode known mode page numbers (and
231              subpage numbers) into text. With this option mode  page  numbers
232              (and subpage numbers) are output in hexadecimal.
233
234       -H     same action as the '-h' option.
235
236       -l     see --list in the main description.
237
238       -L     see --llbaa in the main description.
239
240       -N, --new
241              Switch to the newer style options.
242
243       -m=LEN see --maxlen=LEN in the main description.
244
245       -p=PG  PG is page code to fetch. Should be a hexadecimal number between
246              0 and 3f inclusive (0 to 63 decimal).  The  default  value  when
247              required  is 3f (fetch all mode pages). Note that an acronym for
248              the page and/or subpage values is not  accepted  in  this  older
249              format (because any acronym starting with the letters 'a' to 'f'
250              is ambiguous; it could either be a hex number or an acronym).
251
252       -p=PG,SPG
253              page code and subpage code values to fetch. The page code should
254              be  a hexadecimal number between 0 and 3f inclusive. The subpage
255              code should be a hexadecimal number between 0 and ff  inclusive.
256              The default value for the subpage code is 0.
257
258       -r     output  the  selected  mode page to stdout a byte per line. Each
259              line contains two hexadecimal  digits  (e.g.  "3e").  Useful  as
260              input (after editing) to the sg_wr_mode(8) utility.
261
262       -subp=SPG
263              sub page code to fetch. Should be a hexadecimal number between 0
264              and 0xff inclusive. The default value is 0.
265
266       -v     increase verbosity of output.
267
268       -V     print out version string then exit.
269
270       -w     see --readwrite in the main description.
271
272       -?     output usage message then exit. Ignore all other parameters.
273

ENVIRONMENT VARIABLES

275       Since    sg3_utils    version    1.23    the    environment    variable
276       SG3_UTILS_OLD_OPTS  can  be given. When it is present this utility will
277       expect the older command line options. So the presence of this environ‐
278       ment variable is equivalent to using --old (or -O) as the first command
279       line option.
280

AUTHOR

282       Written by Douglas Gilbert
283

REPORTING BUGS

285       Report bugs to <dgilbert at interlog dot com>.
286
288       Copyright © 2000-2018 Douglas Gilbert
289       This software is distributed under the GPL version 2. There is NO  war‐
290       ranty;  not  even  for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR‐
291       POSE.
292

SEE ALSO

294       sdparm(8),  sg_wr_mode(8),   sginfo(8),   sgmode(scsirastools),   scsi‐
295       info(net), scu(net), seatools(seagate)
296
297       All  these  utilities offer some facility to change mode page (or block
298       descriptor) parameters.
299
300
301
302sg3_utils-1.43                  September 2018                     SG_MODES(8)
Impressum