dwww Home | Manual pages | Find package

SG_MODES(8)                        SG3_UTILS                       SG_MODES(8)

NAME
       sg_modes - reads mode pages with SCSI MODE SENSE command

SYNOPSIS
       sg_modes [--all] [--control=PC] [--dbd] [--dbout] [--examine] [--flexi-
       ble]     [--help]    [--hex]    [--list]    [--llbaa]    [--maxlen=LEN]
       [--page=PG[,SPG]]  [--raw]  [-R]  [--readwrite]   [--six]   [--verbose]
       [--version] [DEVICE]

       sg_modes [-6] [-a] [-A] [-c=PC] [-d] [-D] [-e] [-f] [-h] [-H] [-l] [-L]
       [-m=LEN] [-p=PG[,SPG]] [-r] [-subp=SPG] [-v] [-V] [-w] [-?] [DEVICE]

DESCRIPTION
       This  utility sends a MODE SENSE SCSI command to the DEVICE and outputs
       the response. There is a 6 byte and 10 byte (cdb) variant of  the  MODE
       SENSE  command, this utility defaults to the 10 byte variant. The SPC-4
       standard (and SPC-5 drafts) include a note  stating  that  implementers
       should migrate away from the SCSI MODE SELECT(6) and MODE SENSE(6) com-
       mands in favour of the 10 byte variants (e.g. MODE SENSE(10)).

       This  utility  decodes mode page headers and block descriptors but out-
       puts the contents of each mode page in hex. It also has no facility  to
       change  the mode page contents or block descriptor data. Mode page con-
       tents are decoded and can be changed by the sdparm utility.

       This utility supports two command line syntaxes, the preferred  one  is
       shown first in the synopsis and explained in this section. A later sec-
       tion  on  the  old command line syntax outlines the second group of op-
       tions.

       If no page is given (and --list is not selected) then --all is assumed.
       The --all option requests all mode pages (but not subpages) in a single
       response.

OPTIONS
       Arguments to long options are mandatory for short options as well.

       -a, --all
              output all the mode pages reported by the DEVICE. This  is  what
              the  page  code 63 (0x3f) is defined to do. When used once, mode
              subpages are not fetched. When used twice (e.g. '-aa'), all mode
              pages  and  subpages  are  requested  which  is  equivalent   to
              '--page=63,255'.

       -c, --control=PC
              PC  is  the page control value. Up to four different versions of
              each page are held by the device:
                0 : current values (i.e. those active at present)
                1 : changeable values
                2 : default values (i.e. the manufacturer's settings)
                3 : saved values
              The changeable values are bit masks showing which  fields  could
              be  changed  with a MODE SELECT. The saved values will be re-in-
              stated the next time the device is power  cycled  or  reset.  If
              this option is not given then current values [0] are assumed.

       -d, --dbd
              disable  block  descriptors. By default, block descriptors (usu-
              ally one (for disks) or none) are returned in a MODE  SENSE  re-
              sponse.  This  option sets the "disable block descriptors" (DBD)
              bit in the cdb which instructs the  device  not  to  return  any
              block descriptors in its response. Older devices may not support
              this  setting and may return an "illegal request" sense key; al-
              ternatively they may ignore it. Oddly the Reduced Block  Command
              set (RBC) requires this bit set.

       -D, --dbout
              disable  outputting  block  descriptors. Irrespective of whether
              block descriptors are present in the response or not,  they  are
              not output.

       -e, --examine
              examine each mode page in the range 0 through to 62 (inclusive).
              If  some  response is given then print out the mode page name or
              number (in hex) if the name is not known.
              The sdparm utility which lists mode and VPD  pages  also  has  a
              --examine option will similar functionility.

       -f, --flexible
              Some  devices, bridges and/or drivers attempt crude translations
              between MODE SENSE 6 and 10 byte commands without correcting the
              response. This will cause the  response  to  be  mis-interpreted
              (usually  with  an error saying the response is malformed). With
              this option, the length of the response is checked,  and  if  it
              looks  wrong,  the response is then decoded as if the other mode
              sense (cdb length) was sent.

       -h, --help
              print out the usage message then exit.

       -H, --hex
              The default action is to decode known  mode  page  numbers  (and
              subpage  numbers)  into text. When this option is used once, the
              response is output in hexadecimal to stdout. When this option is
              used twice, mode page numbers and page control values are output
              in hex.
              When this option is used three times, the full response  to  the
              MODE SENSE command is output in hex to stdout without any decod-
              ing.  This  form can be redirected to a file (or piped) and then
              used 'sdparm --inhex=' to decode.

       -l, --list
              lists all common page and subpage codes and their names that are
              found in the command set that matches the peripheral type of the
              given DEVICE.  If no DEVICE and no --page=PG is given  then  the
              common page and subpage codes and their names are listed for SBC
              (e.g.  a  disk).  If no DEVICE is given and a --page=PG is given
              then the common page and  subpage  codes  and  their  names  are
              listed  for the command set whose peripheral device type matches
              the value given to PG. For  example  'sg_mode  --list  --page=1'
              lists  the command mode pages and subpages for tape devices. Ad-
              ditionally if a sub_page_code is given then it is interpreted as
              a transport identifier and command transport specific mode  page
              codes  and  their  names are listed following the main mode page
              list.  Other options are ignored.

       -L, --llbaa
              set the Long LBA Accepted (LLBAA) bit in  the  MODE  SENSE  (10)
              cdb.  This  bit is not defined in the MODE SENSE (6) cdb so set-
              ting the '-L' and '--six' options is reported as an error.  When
              set the DEVICE may respond with 16 byte block descriptors as in-
              dicated  by  the  'LongLBA' field in the response. In most cases
              setting this option is not needed.

       -m, --maxlen=LEN
              The LEN argument is the maximum response length in bytes. It  is
              the 'allocation length' field in the cdb. When not given (or LEN
              is  zero)  then  the  allocation length field is set to 4096 for
              MODE SENSE (10) or 252 for MODE SENSE (6). The LEN argument must
              be non-negative and no greater than 65535 for  MODE  SENSE  (10)
              and not greater than 255 for MODE SENSE (6).

       -O, --old
              Switch to older style options. Please use as first option.

       -p, --page=PG
              page  code to fetch. The PG is assumed to be a decimal value un-
              less prefixed by '0x' or has a trailing  'h'.  It  should  be  a
              value between 0 and 63 (inclusive). When not given and a default
              is  required  then  a value of 63 (0x3f), which fetches all mode
              pages, is used.
              Alternatively an acronym for the mode page  can  be  given.  The
              available acronyms can be listed out with the --page=xxx option.
              They  are almost the same as the acronyms used for mode pages in
              the sdparm utility.

       -p, --page=PG,SPG
              page code and subpage code values to fetch. Both  arguments  are
              assumed  to  be  decimal unless flagged as hexadecimal. The page
              code should be between 0 and  63  inclusive.  The  subpage  code
              should be between 0 and 255 inclusive. The default value for the
              subpage code is 0.

       -r, --raw
              output  the  response  in  binary  to stdout. Error messages and
              warnings, if any, are sent to stderr. When this option  is  used
              twice (e.g. '-rr') then has the same action as '-R'

       -R     output  the  selected  mode page to stdout a byte per line. Each
              line contains two hexadecimal digits (e.g. "3e"). Useful as  in-
              put (after editing) to the sg_wr_mode(8) utility.

       -w, --readwrite
              open  DEVICE  in  "read-write"  mode.  Default  is to open it in
              read-only mode.

       -6, -s, --six
              by default this utility sends a 10 byte MODE  SENSE  command  to
              the  DEVICE.  However some SCSI devices only support 6 byte MODE
              SENSE commands (e.g. SCSI-2 tape drives). This parameter  forces
              the use of 6 byte MODE SENSE commands.

       -v, --verbose
              increase level of verbosity. Can be used multiple times.

       -V, --version
              print out version string then exit.

NOTES
       If  the  normal  sg_modes utility fails with "illegal command operation
       code" then try the '--six' (or '-6') option.

       This utility performs a SCSI INQUIRY command to determine  the  periph-
       eral  type  of the device (e.g. 0 -> Direct Access Device (disk)) prior
       to sending a MODE SENSE command. This helps in decoding the  block  de-
       scriptor and mode pages.

       This  utility  opens  DEVICE  in read-only mode (e.g. in Unix, with the
       O_RDONLY flag) by default. It will open DEVICE in  read-write  mode  if
       the --readwrite option is given.

       In  the  2.4  series of Linux kernels the DEVICE must be a SCSI generic
       (sg) device. In the 2.6 series block devices (e.g. SCSI disks  and  DVD
       drives)  can also be specified. For example "sg_modes -a /dev/sda" will
       work in the 2.6 series kernels.

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

OLDER COMMAND LINE OPTIONS
       The  options  in  this  section  were  the only ones available prior to
       sg3_utils version 1.23 . Since then this utility defaults to the  newer
       command  line options which can be overridden by using --old (or -O) as
       the first option. See the ENVIRONMENT VARIABLES section for another way
       to force the use of these older command line options.

       -6     by default this utility sends a 10 byte MODE  SENSE  command  to
              the  DEVICE.  This parameter forces the use of 6 byte MODE SENSE
              commands.  See --six in the main description.

       -a     see --all in the main description.

       -A     output all the mode pages and subpages supported by the  DEVICE.
              Same as '--all --all' in the new syntax.

       -c=PC  PC  is  the page control value. See --control=PC in the main de-
              scription.

       -d     see --dbd in the main description.

       -D     see --dbout in the main description.

       -e     see --examine in the main description.

       -f     see --flexible in the main description.

       -h     The default action is to decode known  mode  page  numbers  (and
              subpage  numbers)  into text. With this option mode page numbers
              (and subpage numbers) are output in hexadecimal.

       -H     same action as the '-h' option.

       -l     see --list in the main description.

       -L     see --llbaa in the main description.

       -N, --new
              Switch to the newer style options.

       -m=LEN see --maxlen=LEN in the main description.

       -p=PG  PG is page code to fetch. Should be a hexadecimal number between
              0 and 3f inclusive (0 to 63 decimal). The default value when re-
              quired is 3f (fetch all mode pages). Note that  an  acronym  for
              the  page  and/or  subpage  values is not accepted in this older
              format (because any acronym starting with the letters 'a' to 'f'
              is ambiguous; it could either be a hex number or an acronym).

       -p=PG,SPG
              page code and subpage code values to fetch. The page code should
              be a hexadecimal number between 0 and 3f inclusive. The  subpage
              code  should be a hexadecimal number between 0 and ff inclusive.
              The default value for the subpage code is 0.

       -r     output the selected mode page to stdout a byte  per  line.  Each
              line  contains two hexadecimal digits (e.g. "3e"). Useful as in-
              put (after editing) to the sg_wr_mode(8) utility.

       -subp=SPG
              sub page code to fetch. Should be a hexadecimal number between 0
              and 0xff inclusive. The default value is 0.

       -v     increase verbosity of output.

       -V     print out version string then exit.

       -w     see --readwrite in the main description.

       -?     output usage message then exit. Ignore all other parameters.

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

AUTHOR
       Written by Douglas Gilbert

REPORTING BUGS
       Report bugs to <dgilbert at interlog dot com>.

COPYRIGHT
       Copyright © 2000-2020 Douglas Gilbert
       This software is distributed under the GPL version 2. There is NO  war-
       ranty;  not  even  for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR-
       POSE.

SEE ALSO
       sdparm(8),  sg_wr_mode(8),   sginfo(8),   sgmode(scsirastools),   scsi-
       info(net), scu(net), seatools(seagate)

       All  these  utilities offer some facility to change mode page (or block
       descriptor) parameters.

sg3_utils-1.45                  September 2020                     SG_MODES(8)

Generated by dwww version 1.16 on Tue Dec 16 16:02:25 CET 2025.