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] [--page=PG[,SPG]] [--raw] [-R]
11 [--six] [--verbose] [--version] [DEVICE]
12
13 sg_modes [-6] [-a] [-A] [-c=PC] [-d] [-D] [-e] [-f] [-h] [-H] [-l] [-L]
14 [-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: the current values [0] (i.e.
48 those active at the moment), the changeable values [1] (bit mask
49 showing which fields could be changed with a MODE SELECT),
50 default values [2] (the manufacturer's settings). Finally there
51 are the saved values [3] which are the values that will be
52 re-instated the next time the device is power cycled. If this
53 option is not given then current values [0] are assumed.
54
55 -d, --dbd
56 disable block descriptors. By default, block descriptors (usu‐
57 ally one (for disks) or none) are returned in a MODE SENSE
58 response. This option sets the "disable block descriptors" (DBD)
59 bit in the cdb which instructs the device not to return any
60 block descriptors in its response. Older devices may not support
61 this setting and may return an "illegal request" sense key;
62 alternatively they may ignore it. Oddly the Reduced Block Com‐
63 mand set (RBC) requires this bit set.
64
65 -D, --dbout
66 disable outputting block descriptors. Irrespective of whether
67 block descriptors are present in the response or not, they are
68 not output.
69
70 -e, --examine
71 examine each mode page in the range 0 through to 62 (inclusive).
72 If some response is given then print out the mode page name or
73 number (in hex) if the name is not known.
74
75 -f, --flexible
76 Some devices, bridges and/or drivers attempt crude translations
77 between MODE SENSE 6 and 10 byte commands without correcting the
78 response. This will cause the response to be mis-interpreted
79 (usually with an error saying the response is malformed). With
80 this option, the length of the response is checked, and if it
81 looks wrong, the response is then decoded as if the other mode
82 sense (cdb length) was sent.
83
84 -h, --help
85 print out the usage message then exit.
86
87 -H, --hex
88 The default action is to decode known mode page numbers (and
89 subpage numbers) into text. When this option is used once, the
90 response is output in hexadecimal. When this option is used
91 twice, mode page numbers and page control values are output in
92 hex.
93
94 -l, --list
95 lists all common page and subpage codes and their names that are
96 found in the command set that matches the peripheral type of the
97 given DEVICE. If no DEVICE and no --page=PG is given then the
98 common page and subpage codes and their names are listed for SBC
99 (e.g. a disk). If no DEVICE is given and a --page=PG is given
100 then the common page and subpage codes and their names are
101 listed for the command set whose peripheral device type matches
102 the value given to PG. For example 'sg_mode --list --page=1'
103 lists the command mode pages and subpages for tape devices.
104 Additionally if a sub_page_code is given then it is interpreted
105 as a transport identifier and command transport specific mode
106 page codes and their names are listed following the main mode
107 page list. Other options are ignored.
108
109 -L, --llbaa
110 set the Long LBA Accepted (LLBAA) bit in the MODE SENSE (10)
111 cdb. This bit is not defined in the MODE SENSE (6) cdb so set‐
112 ting the '-L' and '--six' options is reported as an error. When
113 set the DEVICE may respond with 16 byte block descriptors as
114 indicated by the 'LongLBA' field in the response. In most cases
115 setting this option is not needed.
116
117 -O, --old
118 switch to older style options.
119
120 -p, --page=PG
121 page code to fetch. The PG is assumed to be a decimal value
122 unless prefixed by '0x' or has a trailing 'h'. It should be a
123 value between 0 and 63 (inclusive). When not given and a default
124 is required then a value of 63 (0x3f), which fetches all mode
125 pages, is used.
126
127 -p, --page=PG,SPG
128 page code and subpage code values to fetch. Both arguments are
129 assumed to be decimal unless flagged as hexadecimal. The page
130 code should be between 0 and 63 inclusive. The subpage code
131 should be between 0 and 255 inclusive. The default value for the
132 subpage code is 0.
133
134 -r, --raw
135 output the response in binary to stdout. Error messages and
136 warnings, if any, are sent to stderr. When this option is used
137 twice (e.g. '-rr') then has the same action as '-R'
138
139 -R output the selected mode page to stdout a byte per line. Each
140 line contains two hexadecimal digits (e.g. "3e"). Useful as
141 input (after editing) to the sg_wr_mode utility.
142
143 -6, --six
144 by default this utility sends a 10 byte MODE SENSE command to
145 the DEVICE. However some SCSI devices only support 6 byte MODE
146 SENSE commands (e.g. SCSI-2 tape drives). This parameter forces
147 the use of 6 byte MODE SENSE commands.
148
149 -v, --verbose
150 increase level of verbosity. Can be used multiple times.
151
152 -V, --version
153 print out version string then exit.
154
156 If the normal sg_modes utility fails with "illegal command operation
157 code" then try the '--six' (or '-6') option.
158
159 This utility performs a SCSI INQUIRY command to determine the periph‐
160 eral type of the device (e.g. 0 -> Direct Access Device (disk)) prior
161 to sending a MODE SENSE command. This helps in decoding the block
162 descriptor and mode pages.
163
164 In the 2.4 series of Linux kernels the DEVICE must be a SCSI generic
165 (sg) device. In the 2.6 series block devices (e.g. SCSI disks and DVD
166 drives) can also be specified. For example "sg_modes -a /dev/sda" will
167 work in the 2.6 series kernels.
168
170 The exit status of sg_modes is 0 when it is successful. Otherwise see
171 the sg3_utils(8) man page.
172
174 The options in this section were the only ones available prior to
175 sg3_utils version 1.23 . In sg3_utils version 1.23 and later these
176 older options can be selected by either setting the SG3_UTILS_OLD_OPTS
177 environment variable or using '--old' (or '-O) as the first option.
178
179 -6 by default this utility sends a 10 byte MODE SENSE command to
180 the DEVICE. This parameter forces the use of 6 byte MODE SENSE
181 commands. See --six in the main description.
182
183 -a see --all in the main description.
184
185 -A output all the mode pages and subpages supported by the DEVICE.
186 Same as '--all --all' in the new syntax.
187
188 -c=PC PC is the page control value. See --control=PC in the main
189 description.
190
191 -d see --dbd in the main description.
192
193 -D see --dbout in the main description.
194
195 -e see --examine in the main description.
196
197 -f see --flexible in the main description.
198
199 -h The default action is to decode known mode page numbers (and
200 subpage numbers) into text. With this option mode page numbers
201 (and subpage numbers) are output in hexadecimal.
202
203 -H same action as the '-h' option.
204
205 -l see --list in the main description.
206
207 -L see --llbaa in the main description.
208
209 -N switch to the newer style options.
210
211 -p=PG PG is page code to fetch. Should be a hexadecimal number between
212 0 and 3f inclusive (0 to 63 decimal). The default value when
213 required is 3f (fetch all mode pages).
214
215 -p=PG,SPG
216 page code and subpage code values to fetch. The page code should
217 be a hexadecimal number between 0 and 3f inclusive. The subpage
218 code should be a hexadecimal number between 0 and ff inclusive.
219 The default value for the subpage code is 0.
220
221 -r output the selected mode page to stdout a byte per line. Each
222 line contains two hexadecimal digits (e.g. "3e"). Useful as
223 input (after editing) to the sg_wr_mode utility.
224
225 -subp=SPG
226 sub page code to fetch. Should be a hexadecimal number between 0
227 and 0xff inclusive. The default value is 0.
228
229 -v increase verbosity of output.
230
231 -V print out version string then exit.
232
233 -? output usage message then exit. Ignore all other parameters.
234
236 Written by Doug Gilbert
237
239 Report bugs to <dgilbert at interlog dot com>.
240
242 Copyright © 2000-2007 Douglas Gilbert
243 This software is distributed under the GPL version 2. There is NO war‐
244 ranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR‐
245 POSE.
246
248 sdparm(sdparm), sg_wr_mode(sg3_utils), sginfo(sg3_utils), sgmode(scsir‐
249 astools), scsiinfo(net), scu(net), seatools(seagate)
250
251 All these utilities offer some facility to change mode page (or block
252 descriptor) parameters.
253
254
255
256sg3_utils-1.23 January 2007 SG_MODES(8)