smartctl.cpp, scsiprint.cpp: extend --log=defects option so it works for the SCSI Pending Defects log page; add --log=envrep option to output Environmental Reporting log page; add: --log=zdevstat option to output Zone block device statistics log page; fix spelling

git-svn-id: http://svn.code.sf.net/p/smartmontools/code/trunk@5333 4ea69e1a-61f1-4043-bf83-b5c94c648137
pull/86/merge
dpgilbert 7 months ago
parent a0102c012a
commit 54408c7912
  1. 29
      smartmontools/ChangeLog
  2. 56
      smartmontools/ChangeLog-5.0-6.0
  3. 12
      smartmontools/ChangeLog-6.0-7.0
  4. 14
      smartmontools/NEWS
  5. 2
      smartmontools/ataprint.cpp
  6. 28
      smartmontools/scsiprint.cpp
  7. 3
      smartmontools/scsiprint.h
  8. 49
      smartmontools/smartctl.8.in
  9. 11
      smartmontools/smartctl.cpp
  10. 2
      smartmontools/smartd.8.in
  11. 4
      smartmontools/smartd.conf.5.in

@ -1,5 +1,17 @@
$Id$
2022-02-25 Douglas Gilbert <dgilbert@interlog.com>
smartctl.cpp, scsiprint.cpp: extend --log=defects option so it
works for the SCSI Pending Defects log page (similar to ATA log
page of same name). Add --log=envrep option to output
Environmental Reporting log page (e.g. temperature(s) and
relative humidiy). Add: --log=zdevstat option to output Zone
block device statistics log page. Updated smartctl.8.in for the
above changes. Ran 'spellintian * | grep -v duplica' on source
using Ubuntu 20.04 LTS with Canadian English as the locale.
Fixed reported spelling errors.
2022-02-23 Christian Franke <franke@computer.org>
configure.ac, update-smart-drivedb.*: Use RELEASE_7_3_DRIVEDB for
@ -52,7 +64,7 @@ $Id$
2022-02-18 Christian Franke <franke@computer.org>
Allow to specify a separate install location for drivedb.h.
Allow one to specify a separate install location for drivedb.h.
This prevents that update-smart-drivedb overwrites the package
installed file (Debian Bug 976696, Ubuntu Bug 1893202).
@ -169,7 +181,7 @@ $Id$
2022-01-06 Christian Franke <franke@computer.org>
json.cpp, json.h: Allow to use any string for object keys.
json.cpp, json.h: Allows one to use any string for object keys.
Convert to final key with new public function 'json::str2key()'.
Rename related variables from 'key' to 'keystr'.
@ -213,7 +225,7 @@ $Id$
2022-01-03 Christian Franke <franke@computer.org>
json.h: Allow to use std::string for object keys.
json.h: Allows one to use std::string for object keys.
2022-01-02 Douglas Gilbert <dgilbert@interlog.com>
@ -251,7 +263,7 @@ $Id$
2021-12-21 Douglas Gilbert <dgilbert@interlog.com>
expermimental: add support for printing the SCSI Environmental
experimental: add support for printing the SCSI Environmental
Reporting log (sub)page [0xd,0x1] via the -l scttemp option
and select it when '-x' is given. Also generate json output.
Outputs temperature and relative humidity current values and
@ -297,7 +309,7 @@ $Id$
User could be specified with new option '-u, --warn-as-user'.
popen_as_ugid.cpp, popen_as_ugid.h: New files with popen() wrapper
function. It allows to change uid/gid and also prevents that
function. It allows one to change uid/gid and also prevents that
unneeded file descriptors are inherited by the child process.
configure.ac, Makefile.am: Enable new functionality for all OS with
@ -368,8 +380,8 @@ $Id$
smartctl.8.in, smartd.8.in: Remove EXPERIMENTAL notes for features
added before 7.1.
smartd.cpp: Allow to disable preconfigured state/log files with '-'.
The previous method required to specify the '-s' and '-A' options
smartd.cpp: Allow one to disable preconfigured state/log files with
'-'. The previous method required to specify the '-s' and '-A' options
with empty strings as arguments. This does not work conjunction with
shell variable expansion (GH issues/115).
smartd.8.in: Document new option argument.
@ -764,7 +776,8 @@ $Id$
2020-11-23 Christian Franke <franke@computer.org>
smartd.cpp: Allow to specify a delay limit for staggered self-tests.
smartd.cpp: Allow one to specify a delay limit for staggered
self-tests.
smartd.conf.5.in: Document new functionality.
2020-11-21 Christian Franke <franke@computer.org>

@ -478,7 +478,7 @@ smartmontools 5.43 2012-06-30
[CF] smartd: Disable auto standby also after start of scheduled
self-test.
[CF] smartd: Add smartd.conf DEFAULT directive. Allows to set default
[CF] smartd: Add smartd.conf DEFAULT directive. Allows one to set default
settings for multiple devices.
[CF] smartd: Re-enable auto standby if smartd.conf is re-read.
@ -1318,7 +1318,7 @@ smartmontools 5.41 2011-06-09
[CF] Makefile.am: Handle examplescripts in main Makefile.
Remove 'examplescripts/Makefile.am'.
[CF] configure.in: New option '--with-exampledir' allows to change
[CF] configure.in: New option '--with-exampledir' allows one to change
path of 'DOCDIR/examplescripts' directory.
(Debian package uses '/usr/share/doc/smartmontools/examples')
@ -1651,7 +1651,7 @@ smartmontools 5.40 2010-10-16
- Intel X25-M SSD
[CF] Makefile.am: Fix unix2dos and makensis parameters to allow
to build the Windows installer on Linux also.
one to build the Windows installer on Linux also.
[CF] Makefile.am: Use a separate build rule for each man page to
avoid compatibility problems with BSD make.
@ -1675,7 +1675,7 @@ smartmontools 5.40 2010-10-16
Patch was provided by Richard Gregory:
http://www.csc.liv.ac.uk/~greg/projects/erc/
Modified for new ata_pass_through() interface.
Linux HPT fixes ommitted for now.
Linux HPT fixes omitted for now.
[CF] Fix SCT temperature table commands on big endian CPUs.
@ -1815,7 +1815,7 @@ smartmontools 5.40 2010-10-16
Autoconf 2.5x is still supported.
[CF] Move drive database entries from 'knowndrives.cpp' to new file
'drivedb.h'. This allows to update the drive database from SVN
'drivedb.h'. This allows one to update the drive database from SVN
if installation was configured with '--enable-drivedb'.
Remove the Makefile target to create 'drivedb.h'.
@ -1856,7 +1856,7 @@ smartmontools 5.39.1 2010-01-28
smartmontools 5.39 2009-12-09
[CF] do_release: Commit CHANGELOG and NEWS also. Allow to review changes.
[CF] do_release: Commit CHANGELOG and NEWS also. Allows one to review changes.
[CF] Linux: Add workaround for Adaptec series 2, 5 and 5Z controllers
with firmware >= 17380. Patch was provided by Phil Wilson, see:
@ -1882,7 +1882,7 @@ smartmontools 5.39 2009-12-09
- WD My Passport hard drive (USB interface)
[CF] smartd: Write 'worst' attribute value to '.state' file also.
This allows to use state persistence with 'raw64' attributes.
This allows one to use state persistence with 'raw64' attributes.
[CF] Rework ATA SMART attribute check in smartctl and smartd.
smartd: Ignore normalized attribute value and threshold
@ -1906,7 +1906,7 @@ smartmontools 5.39 2009-12-09
[CF] Add '-v ID,raw64[,...]' print format based on a patch provided
by Marcin Marszalek.
[CF] Add '-v ID,RAW_FORMAT[,ATTR_NAME]' option. This allows to add new
[CF] Add '-v ID,RAW_FORMAT[,ATTR_NAME]' option. This allows one to add new
attributes without the need to enhance the '-v' option.
Rework attribute name and raw value formatting.
@ -2013,7 +2013,7 @@ smartmontools 5.39 2009-12-09
[CF] Add USB IDs of Maxtor Basics Desktop and ISD-300A1.
[AS] Use malloc() to ensure that the read buffer lands on a single
page. This avoids some bugs seen on LSI controlers under
page. This avoids some bugs seen on LSI controllers under
FreeBSD.
[CF] Add missing help text for '-d usb*' options.
@ -2218,7 +2218,7 @@ smartmontools 5.39 2009-12-09
[CF] Simplify '-v' vendor attribute option parsing.
Add '-v 197,increasing' and '-v 198,increasing' options
to specifiy that an uncorrectable count is never reset.
to specify that an uncorrectable count is never reset.
This modifies the printed attribute names and smartd's
default setting of '-C' and '-U' directives.
Both '-v' options can also be preset in the drive database.
@ -2335,7 +2335,7 @@ smartmontools 5.39 2009-12-09
- Added Hitachi Travelstar E5K160 family
- Allow uppercase variants of Hitachi 5K160 drives
[CF] Fix smartctl crash on '-l directory,[gs]'. Allow to override
[CF] Fix smartctl crash on '-l directory,[gs]'. Allows one to override
missing GPL feature bit or missing log dir entry with
'-T permissive' option.
@ -2422,7 +2422,7 @@ smartmontools 5.39 2009-12-09
selective self-tests. Useful to perform full tests of large disks
not running 24x7.
[CF] Allow to read local drive database entries from optional file
[CF] Allows one to read local drive database entries from optional file
'${sysconfdir}/smart_drivedb.h'.
Add configure options '--enable-drivedb' and '--with-drivedbdir=DIR'.
If specified, drive database is read from '${drivedbdir}/drivedb.h'.
@ -2621,7 +2621,7 @@ smartmontools 5.39 2009-12-09
[JH] now C++ Support for QNX Target
already tested for QNX 6.3.2 on x86 and armle target
[CF] Allow to set BUILD_INFO from make command line.
[CF] Allows one to set BUILD_INFO from make command line.
[CF] Windows: Add MSVC8 support, remove MSVC6 project files.
@ -2802,11 +2802,11 @@ SMARTMONTOOLS STABLE RELEASE 5.38 2008/03/10
NOTE2: NOT TESTED ON LINUX. Do not use this on a production box!
I will remove this NOTE2 as soon as some positive test
reports are recieved.
reports are received.
NOTE3: NOT TESTED ON FREEBSD. Do not use this on a production box!
I will remove this NOTE3 as soon as some positive test
reports are recieved.
reports are received.
[CF] Windows installer: Added explorer drive menu, CMD window,
UBCD4Win plugin, smartd service update and other minor
@ -2835,7 +2835,7 @@ SMARTMONTOOLS STABLE RELEASE 5.38 2008/03/10
out.
[CF] Windows: Added IOCTL_SCSI_MINIPORT_*SMART* for commands not handled
properly by SMART_IOCTL in disk class driver. This allows to use
properly by SMART_IOCTL in disk class driver. This allows one to use
READ_LOG, WRITE_LOG and ABORT_SELFTEST even if the driver does not
support ATA_PASS_THROUGH.
@ -3411,7 +3411,7 @@ smartmontools 5.33 Experimental Release
Windows distribution (dist-win32) and MSVC6 config.h (config-vc6).
[EM] Minor change to FreeBSD inclusion of 'twe' include files. Add
code to check if they exising in /usr/include/sys to use those
code to check if they existing in /usr/include/sys to use those
in preference to ones added here
[EM] Very preliminary support attempt for 3Ware controllers under
@ -3891,7 +3891,7 @@ smartmontools 5.27
or mail warning script, and reports any output to SYSLOG. This
gives a clearer error message if something is wrong.
[BA] smartd: Solaris init script modified to accomodate grep that
[BA] smartd: Solaris init script modified to accommodate grep that
lacks '-q' quiet option. Also check for running process to kill
on stop.
@ -4498,7 +4498,7 @@ smartmontools-5.1-11
[EB] Add another Fujitsu disk to knowndrives.c
[GG] match for scsi/ and ide/ in case of devfs to exclude false postives
[GG] match for scsi/ and ide/ in case of devfs to exclude false positives
[BA] If SCSI device listed in /etc/smartd.conf fails to open or do
SMART stuff correctly, or not enough space
@ -4863,7 +4863,7 @@ smartmontools-5.0.38
Added Italian descriptions to smartmontools.spec file.
Started impementing send-mail-on-error for smartd; not yet enabled.
Started implementing send-mail-on-error for smartd; not yet enabled.
Added -P (Permissive) Directive to smartd.conf file to allow SMART
monitoring of pre-ATA-3 Rev 4 disks that have SMART but do not have
@ -4924,7 +4924,7 @@ smartmontools-5.0.24
Note: it has now been confirmed that the code modifications between
5.0.23 and 5.0.24 have eliminated the GCC 3.2 problems. Note that
there is a GCC bug howerver, see #8404 at
there is a GCC bug however, see #8404 at
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?database=gcc&cmd=query
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8404
@ -5023,10 +5023,10 @@ smartmontools-5.0-17
library, as it should be.
modified length of device name string in smartd internal structure
to accomodate max length device name strings
to accommodate max length device name strings
removed un-implemented (-e = Email notification) option from
command line arg list. We'll put it back on when implemeneted.
command line arg list. We'll put it back on when implemented.
smartd now logs serious (fatal) conditions in its operation at
loglevel LOG_CRIT rather than LOG_INFO before exiting with error.
@ -5071,7 +5071,7 @@ smartmontools-5.0-11
appears incapable of a SMART command that the user has asked for,
complain by printing an error message, but go ahead and try
anyway. Since unimplemented SMART commands should just return an
error but not cause disk problems, this should't cause any
error but not cause disk problems, this shouldn't cause any
difficulty.
Added two new flags: q and Q. q is quiet mode - only print: For
@ -5080,7 +5080,7 @@ smartmontools-5.0-11
SMART "disk failing" status or device attributes (pre-failure or
usage) which failed either now or in the past; For the -v option
device attributes (pre-failure or usage) which failed either now
or in the past. Q is Very Quiet mode: Print no ouput. The only
or in the past. Q is Very Quiet mode: Print no output. The only
way to learn about what was found is to use the exit status of
smartctl.
@ -5116,7 +5116,7 @@ smartmontools-5.0-11
ID. This is fixed.
when starting self-tests in captive mode ioctl returns EIO because
the drive has been busied out. Detect this and don't return an eror
the drive has been busied out. Detect this and don't return an error
in this case. Check this this is correct (or how to fix it?)
fixed possible error in how to determine ATA standard support
@ -5219,14 +5219,14 @@ smartmontools-5.0-8:
added -f and -F options to enable/disable autosave threshold
parameters
changed argv parsing to use getops -- elminate buffer overflow
changed argv parsing to use getops -- eliminate buffer overflow
vulnerability
expanded and corrected documentation
fixed problem with smartd. It did not actually call
ataSmartEnable()! Since the argument was left out, the test
always suceeded because it evaluated to a pointer to the function.
always succeeded because it evaluated to a pointer to the function.
smartd: closed open file descriptors if device does not support
smart. Note: this still needs to be fixed for SCSI devices

@ -1649,7 +1649,7 @@ $Id$
nvmeprint.cpp, nvmeprint.h, smartctl.cpp, smartctl.8.in:
Add NVMe support for 'smartctl -c'. Print various drive and
namespace capabilites. Remove related info from '-i' output.
namespace capabilities. Remove related info from '-i' output.
2016-04-24 Christian Franke <franke@computer.org>
@ -1980,7 +1980,7 @@ $Id$
2016-01-25 Alex Samorukov <samm@os2.kiev.ua>
os_darwin: add launchctl script for the smartd and remove depricated one.
os_darwin: add launchctl script for the smartd and remove deprecated one.
"On current systems there is only one recommend way: launchd"
2016-01-24 Alex Samorukov <samm@os2.kiev.ua>
@ -2713,7 +2713,7 @@ $Id$
2014-10-06 Alex Samorukov <samm@os2.kiev.ua>
drivedb.h: Exteneded regexp for SanDisk X300s (#463)
drivedb.h: Extended regexp for SanDisk X300s (#463)
2014-09-29 Alex Samorukov <samm@os2.kiev.ua>
@ -3466,7 +3466,7 @@ $Id$
scsicmds.h, scsicmds.cpp, scsiprint.h, scsiprint.cpp:
- for SCSI disks, in 'smartctl --info' report physical
block size and lowest LBA alignement (if PB size
block size and lowest LBA alignment (if PB size
different from LB size); logical block provisioning
status (if any); and disk protection (a.k.a. DIF) type
@ -3711,8 +3711,8 @@ $Id$
2012-11-22 Alex Samorukov <samm@os2.kiev.ua>
smartctl: implemeted support for -g/-s rcache and -g/-s wcache for SCSI
devices to control read/write device cache.
smartctl: implemented support for -g/-s rcache and -g/-s wcache for
SCSI devices to control read/write device cache.
2012-11-19 Alex Samorukov <samm@os2.kiev.ua>

@ -31,11 +31,11 @@ Summary: smartmontools release 7.3
- smartd '--capabilities=mail': Adds capabilities required for exim MTA.
- smartd '-q *nodev0*': Three new options to change the exit status to 0 if
there are no devices to monitor.
- smartd '-s' and '-A': Now allow to disable preconfigured files with '-'.
- smartd '-s' and '-A': Allows one to disable preconfigured files with '-'.
- smartd: Fixed handling of multiple email addresses in conjunction with
plugin scripts. Added new environment variable SMARTD_ADDRESS_ORIG.
- smartd: No longer writes 'smartd -D' output to syslog on syntax error.
- smartd.conf '-c i=N': Allows to specify device specific check intervals.
- smartd.conf '-c i=N': Allows one to specify device specific check intervals.
- SCSI: Retry on UNIT ATTENTION when fetching capacity.
- NVMe/USB: Device type '-d sntasmedia' for ASMedia ASM2362 USB to
NVMe bridges.
@ -259,7 +259,7 @@ Summary: smartmontools release 6.5
- Optional NVMe device scanning support on Linux and Windows.
- configure option '--with-nvme-devicescan' to include NVMe in
default device scanning result.
- Device scanning now allows to specify multiple '-d TYPE' options.
- Device scanning now allows one to specify multiple '-d TYPE' options.
- ATA: Added new POWER MODE values introduced in ATA ACS-2.
- ATA: SCT commands are no longer issued if ATA Security is locked.
- SCSI: LB provisioning improvements.
@ -369,7 +369,7 @@ Summary: smartmontools release 6.1
- smartctl '-s/-g wcache' for SCSI devices to control write cache.
- smartctl '-s/-g rcache' for SCSI devices to control read cache.
- smartctl prints more info for SCSI devices: media rotation rate,
form factor, physical block size, lowest LBA alignement,
form factor, physical block size, lowest LBA alignment,
logical block provisioning, disk protection type
and selftest progress status.
- smartctl '--identify' updated for latest ATA ACS-3 spec.
@ -505,7 +505,7 @@ Date 2010-10-16
Summary: smartmontools release 5.40
-----------------------------------------------------------
- Other config entries may precede smartd DEVICESCAN.
- Option '-v' allows to specify byte order of attribute raw value
- Option '-v' allows one to specify byte order of attribute raw value
- configure: New default value for '--with-docdir'.
- configure: '--enable-drivedb' is now the default.
- Improved support for Intel SSDs.
@ -835,8 +835,8 @@ Summary: smartmontools release 5.19
-----------------------------------
This is the first release of smartmontools based on autoconf/automake.
For this reason, it is a very experimental release. Please let us
know in particular about documenation errors/omissions, missing or
unneccesary files, and similar oversights. The major changes are:
know in particular about documentation errors/omissions, missing or
unnecessary files, and similar oversights. The major changes are:
[1] installation scripts based on autoconfig/automake
[2] ./configure [options] lets you set arbitrary paths
[3] supports FHS with ./configure --prefix=/usr/local

@ -743,7 +743,7 @@ static void print_drive_info(const ata_identify_device * drive,
jglb["trim"]["zeroed"] = trim_zeroed;
}
// Print Zoned Device Capabilites if reported
// Print Zoned Device Capabilities if reported
// (added in ACS-4, obsoleted in ACS-5)
unsigned short zoned_caps = word069 & 0x3;
if (zoned_caps) {

@ -1833,7 +1833,7 @@ scsiPrintTapeDeviceStats(scsi_device * device)
jglb[jname][q] = ull;
break;
case 0x81:
q = "Maximum recommeded mechanism temperature exceeded";
q = "Maximum recommended mechanism temperature exceeded";
ull = variableLengthIntegerParam(ucp);
jout(" %s: %" PRIu64 "\n", q, ull);
jglb[jname][q] = ull;
@ -3395,18 +3395,26 @@ scsiPrintMain(scsi_device * device, const scsi_print_options & options)
}
any_output = true;
}
if (options.smart_error_log) {
if (options.smart_error_log || options.scsi_pending_defects) {
if (! checkedSupportedLogPages) {
scsiGetSupportedLogPages(device);
checkedSupportedLogPages = true;
}
scsiPrintErrorCounterLog(device);
if (gPendDefectsLPage)
if (options.smart_error_log) {
scsiPrintErrorCounterLog(device);
any_output = true;
}
if (gPendDefectsLPage) {
scsiPrintPendingDefectsLPage(device);
if (1 == scsiFetchControlGLTSD(device, modese_len, 1))
pout("\n[GLTSD (Global Logging Target Save Disable) set. "
"Enable Save with '-S on']\n");
any_output = true;
any_output = true;
}
if (options.smart_error_log) {
if (1 == scsiFetchControlGLTSD(device, modese_len, 1)) {
pout("\n[GLTSD (Global Logging Target Save Disable) set. "
"Enable Save with '-S on']\n");
any_output = true;
}
}
}
if (options.smart_selftest_log) {
if (! checkedSupportedLogPages) {
@ -3440,7 +3448,7 @@ scsiPrintMain(scsi_device * device, const scsi_print_options & options)
failuretest(OPTIONAL_CMD, returnval|=res);
any_output = true;
}
if (options.smart_background_log && is_zbc) {
if (options.zoned_device_stats && is_zbc) {
if (! checkedSupportedLogPages) {
scsiGetSupportedLogPages(device);
checkedSupportedLogPages = true;
@ -3450,7 +3458,7 @@ scsiPrintMain(scsi_device * device, const scsi_print_options & options)
res = scsiPrintZBDeviceStats(device);
else {
pout("Device does not support Zoned block device "
"characteristics logging\n");
"statistics logging\n");
failuretest(OPTIONAL_CMD, returnval|=FAILSMART);
}
if (0 != res)

@ -37,6 +37,7 @@ struct scsi_print_options
bool smart_extend_selftest = false, smart_extend_cap_selftest = false;
bool smart_selftest_abort = false;
bool smart_selftest_force = false; // Ignore already running test
bool scsi_pending_defects = false;
bool smart_env_rep = false;
@ -44,6 +45,8 @@ struct scsi_print_options
bool tape_device_stats = false;
bool tape_alert = false;
bool zoned_device_stats = false;
bool get_wce = false, get_rcd = false;
short int set_wce = 0, set_rcd = 0; // disable(-1), enable(1) cache

@ -275,9 +275,14 @@ For ATA devices this is equivalent to
\-l xselftest,selftest \-l selective \-l directory \-l scttemp \-l scterc
\-l devstat \-l defects \-l sataphy\*(Aq.
.br
and for SCSI, this is equivalent to
and for SCSI disks, this is equivalent to
.br
\*(Aq\-H \-i \-g all \-A \-l error \-l selftest \-l background \-l sasphy
\-l defects \-l env_rep\*(Aq.
.br
and for SCSI zoned disks, add \-l zdevstat
.br
\*(Aq\-H \-i \-g all \-A \-l error \-l selftest \-l background \-l sasphy\*(Aq.
and for SCSI tape drivers and changers, add \-l tapedevstat
.br
.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
For NVMe, this is equivalent to
@ -861,7 +866,7 @@ By default, exit status 2 is returned if the device is in one of the
specified low-power modes.
This status is also returned if the device open or identification failed
(see EXIT STATUS below).
The optional STATUS parameter allows to override this default.
The optional STATUS parameter allows one to override this default.
STATUS is an integer in the range from 0 to 255 inclusive.
For example use \*(Aq\-n standby,0\*(Aq to return success if a device is in
SLEEP or STANDBY mode.
@ -1068,8 +1073,7 @@ placed in the STANDBY mode without temporarily placing it in the IDLE mode.
Note that ATA standards do not specify a command to set the standby timer
without affecting the power mode.
.br
[SCSI]
[NEW EXPERIMENTAL SMARTCTL FEATURE]
[SCSI: NEW EXPERIMENTAL SMARTCTL FEATURE]
Only the set option with \*(Aqstandby,off\*(Aq or
\*(Aqstandby,0\*(Aq is accepted and will place the SCSI disk
into "ACTIVE" power condition.
@ -1080,8 +1084,7 @@ This usually spins down the drive.
The setting of the standby timer is not affected unless
\*(Aq\-s standby,[N|off]\*(Aq is also specified.
.br
[SCSI]
[NEW EXPERIMENTAL SMARTCTL FEATURE]
[SCSI: NEW EXPERIMENTAL SMARTCTL FEATURE]
Only the set option is accepted and will place the SCSI
disk into "STANDBY_Z" power condition.
.Sp
@ -1548,13 +1551,26 @@ the list of supported pages is printed. Device Statistics was
introduced in ACS-2 and is only supported by some recent devices.
.Sp
.I defects[,NUM]
\- [ATA only] prints LBA and hours values from the ATA Pending Defects log
\- [ATA] prints LBA and hours values from the ATA Pending Defects log
(General Purpose Log address 0x0c).
Only the 31 entries from first log page are printed by default.
This number can be changed by the optional parameter NUM.
The size of the log and the order of the entries are vendor specific.
The Pending Defects log was introduced in ACS-4 Revision 01 (Mar 2014).
.Sp
.I defects
\- [SCSI: NEW EXPERIMENTAL SMARTCTL FEATURE] prints LBAs that the background
scan was unable to read (i.e. a defect). Entries, if any, show the defective
LBA and the value of the power\-on hours (since manufacture) when the background
scan found the defect. Note these pending defects may appear in advance of any
application trying to read a defective LBA.
.Sp
.I envrep
\- [SCSI only: NEW EXPERIMENTAL SMARTCTL FEATURE]
prints values and descriptions of the SCSI Environmental reporting log
page. This includes one or more temperatures and may include relative
humidities. Lifetime maximums and minimums are also reported.
.Sp
.I sataphy[,reset]
\- [SATA only] prints values and descriptions of the SATA Phy Event
Counters (General Purpose Log address 0x11). If \*(Aq\-l sataphy,reset\*(Aq
@ -1567,14 +1583,19 @@ drives.
Protocol Specific log page (log page 0x18). If \*(Aq\-l sasphy,reset\*(Aq
is specified, all counters are reset after reading the values.
.Sp
.I tapealert
\- [SCSI tape drives and changers] prints values and descriptions of
the (SSC) Tape Alert log page. See \fBTAPE DRIVES\fP below for issue
associated with printing this log page.
.I tapealert
\- [SCSI tape drives and changers: NEW EXPERIMENTAL SMARTCTL FEATURE]
prints values and descriptions of the (SSC) Tape Alert log page. See
\fBTAPE DRIVES\fP below for issue associated with printing this log page.
.Sp
.I tapedevstat
\- [SCSI tape drives and changers] prints values and descriptions of
the (SSC) Device Statistics log page.
\- [SCSI tape drives and changers: NEW EXPERIMENTAL SMARTCTL FEATURE]
prints values and descriptions of the (SSC) Device Statistics log page.
.Sp
.I zdevstat
\- [SCSI zoned disks: NEW EXPERIMENTAL SMARTCTL FEATURE]
prints values and descriptions of the Zoned Block Device Statistics log
page (ZBC\-2).
.Sp
.I gplog,ADDR[,FIRST[\-LAST|+SIZE]]
\- [ATA only] prints a hex dump of any log accessible via General

@ -178,7 +178,7 @@ static void Usage()
" sasphy[,reset], sataphy[,reset], scttemp[sts,hist],\n"
" scttempint,N[,p], scterc[,N,M][,p|reset], devstat[,N], defects[,N],\n"
" ssd, gplog,N[,RANGE], smartlog,N[,RANGE], nvmelog,N,SIZE\n"
" tapedevstat\n\n"
" tapedevstat, zdevstat, envrep\n\n"
" -v N,OPTION , --vendorattribute=N,OPTION (ATA)\n"
" Set display OPTION for vendor Attribute N (see man page)\n\n"
" -F TYPE, --firmwarebug=TYPE (ATA)\n"
@ -246,7 +246,7 @@ static std::string getvalidarglist(int opt)
"scttemp[sts,hist], scttempint,N[,p], "
"scterc[,N,M][,p|reset], devstat[,N], defects[,N], "
"ssd, gplog,N[,RANGE], smartlog,N[,RANGE], "
"nvmelog,N,SIZE, tapedevstat";
"nvmelog,N,SIZE, tapedevstat, zdevstat, envrep";
case 'P':
return "use, ignore, show, showall";
case 't':
@ -546,6 +546,7 @@ static int parse_options(int argc, char** argv, const char * & type,
ataopts.sct_erc_get = 1;
} else if (!strcmp(optarg,"scttemp")) {
ataopts.sct_temp_sts = ataopts.sct_temp_hist = true;
} else if (!strcmp(optarg,"envrep")) {
scsiopts.smart_env_rep = true;
} else if (!strcmp(optarg,"scttempsts")) {
ataopts.sct_temp_sts = true;
@ -555,7 +556,8 @@ static int parse_options(int argc, char** argv, const char * & type,
scsiopts.tape_alert = true;
} else if (!strcmp(optarg,"tapedevstat")) {
scsiopts.tape_device_stats = true;
} else if (!strcmp(optarg,"zdevstat")) {
scsiopts.zoned_device_stats = true;
} else if (!strncmp(optarg, "scttempint,", sizeof("scstempint,")-1)) {
unsigned interval = 0; int n1 = -1, n2 = -1, len = strlen(optarg);
if (!( sscanf(optarg,"scttempint,%u%n,p%n", &interval, &n1, &n2) == 1
@ -585,6 +587,7 @@ static int parse_options(int argc, char** argv, const char * & type,
int n1 = -1, n2 = -1, len = strlen(optarg);
unsigned val = ~0;
sscanf(optarg, "defects%n,%u%n", &n1, &val, &n2);
scsiopts.scsi_pending_defects = true;
if (n1 == len)
ataopts.pending_defects_log = 31; // Entries of first page
else if (n2 == len && val <= 0xffff * 32 - 1)
@ -745,7 +748,9 @@ static int parse_options(int argc, char** argv, const char * & type,
scsiopts.smart_ss_media_log = true;
scsiopts.sasphy = true;
scsiopts.smart_env_rep = true;
scsiopts.scsi_pending_defects = true;
scsiopts.tape_device_stats = true;
scsiopts.zoned_device_stats = true;
if (!output_format_set)
ataopts.output_format |= ata_print_options::FMT_BRIEF;
break;

@ -251,7 +251,7 @@ It works with the \fBpostfix\fP MTA.
If \*(Aq\-\-capabilities=mail\*(Aq is specified, the following
capabilities are added to the bounding set:
CAP_SETGID, CAP_SETUID, CAP_CHOWN, CAP_FOWNER, CAP_DAC_OVERRIDE.
This allows to send mail with the \fBexim\fP MTA.
This allows one to send mail with the \fBexim\fP MTA.
.\" %ENDIF ENABLE_CAPABILITIES
.TP
.B \-d, \-\-debug

@ -585,7 +585,7 @@ See \*(Aqjmb39x...\*(Aq above for valid arguments.
.Sp
.I ignore
\- the device specified by this configuration entry should be ignored.
This allows to ignore specific devices which are detected by a following
This allows one to ignore specific devices which are detected by a following
DEVICESCAN configuration line.
It may also be used to temporary disable longer multi-line configuration entries.
This Directive may be used in conjunction with the other \*(Aq\-d\*(Aq
@ -1660,7 +1660,7 @@ Note that \-a is the default for ATA devices. If none of these other
Directives is given, then \-a is assumed.
.TP
.B \-c OPTION=VALUE
Allows to override \fBsmartd\fP command line options for specific devices.
Allows one to override \fBsmartd\fP command line options for specific devices.
Only the following OPTION is currently supported:
.TP
.B \-c i=N, \-c interval=N

Loading…
Cancel
Save