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] [--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
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
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
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
180 The exit status of sg_modes is 0 when it is successful. Otherwise see
181 the sg3_utils(8) man page.
182
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
248 Written by Doug Gilbert
249
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
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)