Provided by: sg3-utils_1.33-1_amd64 bug

NAME

       sg_write_buffer - send a SCSI WRITE BUFFER command

SYNOPSIS

       sg_write_buffer  [--help]  [--id=ID] [--in=FILE] [--length=LEN] [--mode=MO] [--offset=OFF]
       [--raw] [--skip=SKIP] [--specific=MS] [--verbose] [--version] DEVICE

DESCRIPTION

       Sends a SCSI WRITE BUFFER command to DEVICE, along with data provided by the user. In some
       cases  no  data  is  required,  or  data  can be read from the file given in the --in=FILE
       option, or data is read from stdin when either --raw or --in=- is given.

       Some WRITE BUFFER command variants do not have associated data to send to the device,  for
       example "activate_mc" ("activate deferred microcode").

OPTIONS

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

       -h, --help
              output  the  usage  message  then exit. If used multiple times also prints the mode
              names and their acronyms.

       -i, --id=ID
              this option sets the buffer id field in the cdb. ID is a value between 0  (default)
              and 255 inclusive.

       -I, --in=FILE
              read  data from file FILE that will be sent with the WRITE BUFFER command.  If FILE
              is '-' then stdin is read until an EOF is detected (this  is  the  same  action  as
              --raw).

       -l, --length=LEN
              where  LEN  is  the  length, in bytes, of data to be written to the device.  If not
              given (and length cannot be deduced from --in=FILE or --raw) then defaults to zero.
              If  the  option is given and the length deduced from --in=FILE or --raw is less (or
              no data is provided), then bytes of 0xff are used as fill bytes.

       -m, --mode=MO
              this option sets the mode field in the cdb. MO is a value between 0  (default)  and
              31  inclusive.  Alternatively  an abbreviation can be given.  To list the available
              mode abbreviations give an invalid one (e.g. '--mode=xxx') or use the '-hh' option.

       -o, --offset=OFF
              this option sets the buffer offset field in the cdb.  OFF  is  a  value  between  0
              (default) and 2**24-1 . It is a byte offset.

       -r, --raw
              read  data  from  stdin  until an EOF is detected. This data is sent with the WRITE
              BUFFER command to DEVICE. The action of this option is the same as using '--in=-'.

       -s, --skip=SKIP
              this option is only active when --in=FILE is given and  FILE  is  a  regular  file,
              rather than stdin. Data is read starting at byte offset SKIP to the end of file (or
              the amount given by --length=LEN). If not given the byte offset defaults to 0 (i.e.
              the start of the file).

       -S, --specific=MS
              MS  is the mode specific field in the cdb. This is a 3-bit field so the values 0 to
              7 are accepted. This field was introduced in SPC-4 revision 32 and can be  used  to
              specify additional events that activate deferred microcode (when MO is 0xD).

       -v, --verbose
              increase the level of verbosity, (i.e. debug output).

       -V, --version
              print the version string and then exit.

NOTES

       If  no  --length=LEN  is  given this utility reads up to 8 MiB of data from the given file
       FILE (or stdin). If a larger amount of data  is  required  then  the  --length=LEN  option
       should  be  given. The user should be aware that most operating systems have limits on the
       amount of data that can be sent with one SCSI command. In Linux this depends on  the  pass
       through mechanism used (e.g. block SG_IO or the sg driver) and various setting in sysfs in
       the linux lk 2.6 series (e.g. /sys/block/sda/queue/max_sectors_kb).

       Downloading incorrect microcode into a device  has  the  ability  to  render  that  device
       inoperable.  One would hope that the device vendor verifies the data before activating it.
       If the SCSI WRITE BUFFER  command  is  given  values  in  its  cdb  (e.g.  LEN)  that  are
       inappropriate  (e.g. too large) then the device should respond with a sense key of ILLEGAL
       REQUEST and an additional sense code of INVALID FIELD in CDB. If a  WRITE  BUFFER  command
       (or  a  sequence  of  them)  fails due to device vendor verification checks then it should
       respond with a sense key of ILLEGAL REQUEST  and  an  additional  sense  code  of  COMMAND
       SEQUENCE ERROR.

       All  numbers given with options are assumed to be decimal.  Alternatively numerical values
       can be given in hexadecimal preceded by either "0x" or "0X" (or  has  a  trailing  "h"  or
       "H").

EXIT STATUS

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

AUTHORS

       Written by Luben Tuikov and Douglas Gilbert.

REPORTING BUGS

       Report bugs to <dgilbert at interlog dot com>.

COPYRIGHT

       Copyright © 2006-2011 Luben Tuikov and Douglas Gilbert
       This software is distributed under a FreeBSD license. There is NO warranty; not  even  for
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO

       sg_read_buffer(sg3_utils)