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 op‐
33       tions.
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  re-in‐
58              stated  the  next  time  the device is power cycled or reset. If
59              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 re‐
64              sponse. 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; al‐
68              ternatively they may ignore it. Oddly the Reduced Block  Command
69              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              The  sdparm  utility  which  lists mode and VPD pages also has a
81              --examine option will similar functionility.
82
83       -f, --flexible
84              Some devices, bridges and/or drivers attempt crude  translations
85              between MODE SENSE 6 and 10 byte commands without correcting the
86              response. This will cause the  response  to  be  mis-interpreted
87              (usually  with  an error saying the response is malformed). With
88              this option, the length of the response is checked,  and  if  it
89              looks  wrong,  the response is then decoded as if the other mode
90              sense (cdb length) was sent.
91
92       -h, --help
93              print out the usage message then exit.
94
95       -H, --hex
96              The default action is to decode known  mode  page  numbers  (and
97              subpage  numbers)  into text. When this option is used once, the
98              response is output in hexadecimal to stdout. When this option is
99              used twice, mode page numbers and page control values are output
100              in hex.
101              When this option is used three times, the full response  to  the
102              MODE SENSE command is output in hex to stdout without any decod‐
103              ing. This form can be redirected to a file (or piped)  and  then
104              used 'sdparm --inhex=' to decode.
105
106       -l, --list
107              lists all common page and subpage codes and their names that are
108              found in the command set that matches the peripheral type of the
109              given  DEVICE.   If no DEVICE and no --page=PG is given then the
110              common page and subpage codes and their names are listed for SBC
111              (e.g.  a  disk).  If no DEVICE is given and a --page=PG is given
112              then the common page and  subpage  codes  and  their  names  are
113              listed  for the command set whose peripheral device type matches
114              the value given to PG. For  example  'sg_mode  --list  --page=1'
115              lists  the command mode pages and subpages for tape devices. Ad‐
116              ditionally if a sub_page_code is given then it is interpreted as
117              a  transport identifier and command transport specific mode page
118              codes and their names are listed following the  main  mode  page
119              list.  Other options are ignored.
120
121       -L, --llbaa
122              set  the  Long  LBA  Accepted (LLBAA) bit in the MODE SENSE (10)
123              cdb. This bit is not defined in the MODE SENSE (6) cdb  so  set‐
124              ting  the '-L' and '--six' options is reported as an error. When
125              set the DEVICE may respond with 16 byte block descriptors as in‐
126              dicated  by  the  'LongLBA' field in the response. In most cases
127              setting this option is not needed.
128
129       -m, --maxlen=LEN
130              The LEN argument is the maximum response length in bytes. It  is
131              the 'allocation length' field in the cdb. When not given (or LEN
132              is zero) then the allocation length field is  set  to  4096  for
133              MODE SENSE (10) or 252 for MODE SENSE (6). The LEN argument must
134              be non-negative and no greater than 65535 for  MODE  SENSE  (10)
135              and not greater than 255 for MODE SENSE (6).
136
137       -O, --old
138              Switch to older style options. Please use as first option.
139
140       -p, --page=PG
141              page  code to fetch. The PG is assumed to be a decimal value un‐
142              less prefixed by '0x' or has a trailing  'h'.  It  should  be  a
143              value between 0 and 63 (inclusive). When not given and a default
144              is required then a value of 63 (0x3f), which  fetches  all  mode
145              pages, is used.
146              Alternatively  an  acronym  for  the mode page can be given. The
147              available acronyms can be listed out with the --page=xxx option.
148              They  are almost the same as the acronyms used for mode pages in
149              the sdparm utility.
150
151       -p, --page=PG,SPG
152              page code and subpage code values to fetch. Both  arguments  are
153              assumed  to  be  decimal unless flagged as hexadecimal. The page
154              code should be between 0 and  63  inclusive.  The  subpage  code
155              should be between 0 and 255 inclusive. The default value for the
156              subpage code is 0.
157
158       -r, --raw
159              output the response in binary  to  stdout.  Error  messages  and
160              warnings,  if  any, are sent to stderr. When this option is used
161              twice (e.g. '-rr') then has the same action as '-R'
162
163       -R     output the selected mode page to stdout a byte  per  line.  Each
164              line  contains two hexadecimal digits (e.g. "3e"). Useful as in‐
165              put (after editing) to the sg_wr_mode(8) utility.
166
167       -w, --readwrite
168              open DEVICE in "read-write" mode.  Default  is  to  open  it  in
169              read-only mode.
170
171       -6, -s, --six
172              by  default  this  utility sends a 10 byte MODE SENSE command to
173              the DEVICE. However some SCSI devices only support 6  byte  MODE
174              SENSE  commands (e.g. SCSI-2 tape drives). This parameter forces
175              the use of 6 byte MODE SENSE commands.
176
177       -v, --verbose
178              increase level of verbosity. Can be used multiple times.
179
180       -V, --version
181              print out version string then exit.
182

NOTES

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

EXIT STATUS

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

OLDER COMMAND LINE OPTIONS

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

ENVIRONMENT VARIABLES

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

AUTHOR

284       Written by Douglas Gilbert
285

REPORTING BUGS

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

SEE ALSO

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