NAME¶
sg_sat_set_features - use ATA SET FEATURES command via a SCSI to ATA Translation
(SAT) layer
SYNOPSIS¶
sg_sat_set_features [
--count=CO] [
--ck_cond]
[
--feature=FEA] [
--help] [
--lba=LBA]
[
--len={16|12}] [
--readonly] [
--verbose]
[
--version]
DEVICE
DESCRIPTION¶
This utility sends an ATA SET FEATURES command to the
DEVICE. This
command is used to change settings of ATA non-packet (i.e. disks) and packet
devices (e.g. cd/dvd drives). Rather than send the SET FEATURES command
directly to the device it is sent via a SCSI transport which is assumed to
contain a SCSI to ATA Translation (SAT) Layer (SATL). The SATL may be in an
operating system driver, in host bus adapter firmware or in some external
enclosure.
The SAT standard (SAT ANSI INCITS 431-2007, prior draft: sat-r09.pdf at
www.t10.org) defines two SCSI "ATA PASS-THROUGH" commands: one using
a 16 byte "cdb" and the other with a 12 byte cdb. This utility
defaults to using the 16 byte cdb variant. SAT-2 is also a standard: SAT-2
ANSI INCITS 465-2010 and the draft prior to that is sat2r09.pdf . The SAT-3
project has started and the most recent draft is sat3r05b.pdf .
The features can be read using the sg_sat_identify utility which uses either the
ATA IDENTIFY DEVICE (for non-packet devices) or the IDENTIFY PACKET DEVICE
(for packet devices) command.
OPTIONS¶
Arguments to long options are mandatory for short options as well.
- -c, --count=CO
- the number CO is placed in the "count" field in the ATA
SET FEATURES command. Only some subcommands (a term used for the value
placed in the "feature" field) require the count field to be
set. The default value placed in the "count" field is 0.
- -C, --ck_cond
- sets the CK_COND bit in the ATA PASS-THROUGH SCSI cdb. The default setting
is clear (i.e. 0). When set the SATL should yield a sense buffer
containing a ATA Result descriptor irrespective of whether the ATA command
succeeded or failed. When clear the SATL should only yield a sense buffer
containing a ATA Result descriptor if the ATA command failed.
- -f, --feature=FEA
- the value FEA is placed in the "feature" field in the ATA
SET FEATURES command. The term "subcommand" is sometimes used
for this value. The default value placed in the "feature" field
is 0 which is reserved and hence should not change anything. Two common
examples are 2h to enable the write cache and 82h to disable it.
- -h, --help
- outputs the usage message summarizing command line options then exits.
Ignores DEVICE if given.
- -L, --lba=LBA
- the number LBA is placed in the "lba" field of the ATA
SET FEATURES command. Only some sub-commands (a term used for the value
placed in the "feature" field) require the lba field to be set.
This value is typically not a "logical block address" as the
acronym might imply. The default value placed in the "lba" field
is 0. The maximum value allowed for LBA is 0xfffffffe (or 0xffffff
if --len=12).
- -l, --len={16|12}
- this is the length of the SCSI cdb used for the ATA PASS-THROUGH commands.
The argument can either be 16 or 12. The default is 16. Some SCSI
transports cannot convey SCSI commands longer than 12 bytes.
- -r, --readonly
- causes the DEVICE to be opened with the read-only flag (O_RDONLY in
Unix). The default action is to open DEVICE with the read-write
flag (O_RDWR in Unix). In some cases sending power management commands to
ATA disks are defeated by OS actions on the close() if the DEVICE
was opened with the read-write flag (e.g. the OS might think it needs to
flush something to disk).
- -v, --verbose
- increases the level or verbosity.
- -V, --version
- print out version string
NOTES¶
In the 2.4 series of Linux kernels the
DEVICE must be a SCSI generic (sg)
device. In the 2.6 and 3 series block devices (e.g. disks and ATAPI DVDs) can
also be specified. For example "sg_inq /dev/sda" will work in the
2.6 series kernels. From lk 2.6.6 other SCSI "char" device names may
be used as well (e.g. "/dev/st0m"). Prior to lk 2.6.29 USB mass
storage limited sense data to 18 bytes which made the
--ck_cond option
yield strange (truncated) results.
EXIT STATUS¶
The exit status of sg_sat_set_features is 0 when it is successful. Otherwise see
the
sg3_utils(8) man page.
AUTHOR¶
Written by Douglas Gilbert
REPORTING BUGS¶
Report bugs to <dgilbert at interlog dot com>.
COPYRIGHT¶
Copyright © 2007-2014 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_sat_identify(sg3_utils), sg_inq(sg3_utils), sdparm(sdparm),
hdparm(hdparm)