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] [--six] [--verbose] [--version] [DEVICE]
12
13       sg_modes [-6] [-a] [-A] [-c=PC] [-d] [-D] [-e] [-f] [-h] [-H] [-l] [-L]
14       [-m=LEN] [-p=PG[,SPG]] [-r] [-subp=SPG] [-v] [-V] [-?] [DEVICE]
15

DESCRIPTION

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

OPTIONS

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

NOTES

166       If the normal sg_modes utility fails with  "illegal  command  operation
167       code" then try the '--six' (or '-6') option.
168
169       This  utility  performs a SCSI INQUIRY command to determine the periph‐
170       eral type of the device (e.g. 0 -> Direct Access Device  (disk))  prior
171       to  sending  a  MODE  SENSE  command.  This helps in decoding the block
172       descriptor and mode pages.
173
174       In the 2.4 series of Linux kernels the DEVICE must be  a  SCSI  generic
175       (sg)  device.  In the 2.6 series block devices (e.g. SCSI disks and DVD
176       drives) can also be specified. For example "sg_modes -a /dev/sda"  will
177       work in the 2.6 series kernels.
178

EXIT STATUS

180       The  exit  status of sg_modes is 0 when it is successful. Otherwise see
181       the sg3_utils(8) man page.
182

OLDER COMMAND LINE OPTIONS

184       The options in this section were  the  only  ones  available  prior  to
185       sg3_utils  version  1.23  .  In  sg3_utils version 1.23 and later these
186       older options can be selected by either setting the  SG3_UTILS_OLD_OPTS
187       environment variable or using '--old' (or '-O) as the first option.
188
189       -6     by  default  this  utility sends a 10 byte MODE SENSE command to
190              the DEVICE. This parameter forces the use of 6 byte  MODE  SENSE
191              commands.  See --six in the main description.
192
193       -a     see --all in the main description.
194
195       -A     output  all the mode pages and subpages supported by the DEVICE.
196              Same as '--all --all' in the new syntax.
197
198       -c=PC  PC is the page control  value.  See  --control=PC  in  the  main
199              description.
200
201       -d     see --dbd in the main description.
202
203       -D     see --dbout in the main description.
204
205       -e     see --examine in the main description.
206
207       -f     see --flexible in the main description.
208
209       -h     The  default  action  is  to decode known mode page numbers (and
210              subpage numbers) into text. With this option mode  page  numbers
211              (and subpage numbers) are output in hexadecimal.
212
213       -H     same action as the '-h' option.
214
215       -l     see --list in the main description.
216
217       -L     see --llbaa in the main description.
218
219       -N     switch to the newer style options.
220
221       -m=LEN see --maxlen=LEN in the main description.
222
223       -p=PG  PG is page code to fetch. Should be a hexadecimal number between
224              0 and 3f inclusive (0 to 63 decimal).  The  default  value  when
225              required is 3f (fetch all mode pages).
226
227       -p=PG,SPG
228              page code and subpage code values to fetch. The page code should
229              be a hexadecimal number between 0 and 3f inclusive. The  subpage
230              code  should be a hexadecimal number between 0 and ff inclusive.
231              The default value for the subpage code is 0.
232
233       -r     output the selected mode page to stdout a byte  per  line.  Each
234              line  contains  two  hexadecimal  digits  (e.g. "3e"). Useful as
235              input (after editing) to the sg_wr_mode(8) utility.
236
237       -subp=SPG
238              sub page code to fetch. Should be a hexadecimal number between 0
239              and 0xff inclusive. The default value is 0.
240
241       -v     increase verbosity of output.
242
243       -V     print out version string then exit.
244
245       -?     output usage message then exit. Ignore all other parameters.
246

AUTHOR

248       Written by Doug Gilbert
249

REPORTING BUGS

251       Report bugs to <dgilbert at interlog dot com>.
252
254       Copyright © 2000-2008 Douglas Gilbert
255       This  software is distributed under the GPL version 2. There is NO war‐
256       ranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR  PUR‐
257       POSE.
258

SEE ALSO

260       sdparm(8),   sg_wr_mode(8),   sginfo(8),   sgmode(scsirastools),  scsi‐
261       info(net), scu(net), seatools(seagate)
262
263       All these utilities offer some facility to change mode page  (or  block
264       descriptor) parameters.
265
266
267
268sg3_utils-1.26                   January 2008                      SG_MODES(8)
Impressum