1SG_MODES(8) SG3_UTILS SG_MODES(8)
2
3
4
6 sg_modes - reads mode pages with SCSI MODE SENSE command
7
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
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
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
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
200 The exit status of sg_modes is 0 when it is successful. Otherwise see
201 the sg3_utils(8) man page.
202
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
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
282 Written by Douglas Gilbert
283
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
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)