smartmontools NEWS
------------------
$Id: NEWS 5530 2023-08-01 11:00:21Z chrfranke $

The most up-to-date version of this file is:
https://www.smartmontools.org/browser/trunk/smartmontools/NEWS

Date 2023-08-01
Summary: smartmontools release 7.4
-----------------------------------------------------------
- The docker image used for CI and release builds is now based on
  Debian 12 instead of Ubuntu 18.04.
- macOS: CI and release builds are now generated for the x86_64 and arm64
  targets. 32 bit platforms will require to be compiled from the source.
- smartctl '-t short', '-t long' and '-X': NVMe support.
- smartctl '-l selftest': NVMe support.
- smartctl '-l farm': Prints Seagate's vendor-specific Field Access
  Reliability Metrics (FARM) log for ATA and SCSI drives.
- smartctl '-l error': Now also prints an error message for each entry
  of NVMe error information log.
- smartctl '-l genstats': Prints SCSI General statistics and performance
  log page.
- smartctl '-i' and '--identify': ACS-4/5/6 enhancements.
- smartctl '-c': Added NVMe 2.0 capability flags.
- smartctl '-g security': Added 'ata_security.master_password_id'
  to JSON output.  Plaintext output shows Master Password ID if set
  to a non-default value.
- smartctl '-q noserial': Now also suppresses the output of NVMe Namespace
  IEEE EUI-64.
- smartctl '-j': '-l error -l selftest' JSON output for NVMe devices.
- smartctl '-j': Avoid invalid UTF-8 sequences in JSON/YAML strings.
- smartctl '-j': Fixed a bogus exception during SCSI JSON output.
- smartctl '-j': Renamed JSON element 'scsi_temperature' back to
  'temperature' (regression).
- smartctl '-a': Now suggests '-x' for ATA devices because '-a' only
  provides legacy SMART information.
- smartd: No longer issues LOG_CRIT warnings if new entries of NVMe error
  information log do not indicate device problems.
- smartd: Now detects accidental use of smartd_warning script as
  '-M exec' parameter.
- smartd: No longer writes the 'Copyright...' line to syslog.
- smartd.conf '-M always': Sends reminder emails without any delay.
- smartd.conf '-M diminishing': Limited email delay to 32 days.
- ATA: Fixed decoding of extended self-test log on big endian hosts.
- ATA: Enhanced LBA range for device types '-d jmb39x-q,...' and
  '-d jms56x,...' from 33-62 to 1-255.
- ATA: Device type '-d intelliprop,N' now fails with a deprecation message.
  Added '-d intelliprop,N,force' flag to use it anyway.
- ATA/USB: Device type '-d usbasm1352r,N' for ASMedia ASM1352R USB to SATA
  RAID bridges
- SCSI: Fixed possible corruption issue with the Error Counter and
  Non medium Error log pages.
- SCSI: Added more "Informational Exceptions" strings.
- SCSI: Added initial support for REPORT SUPPORTED OPERATION command.
- SCSI: Initial rework of SCSI debug output.
- NVMe: Added error messages for NVMe status values.
- NVMe: Fixed crash after read of error information log on big endian hosts.
- HDD, SSD and USB additions to drive database.
- update-smart-drivedb: Fixed syntax for 'sed' versions which require
  ';' before '}' or do not support ';' at all.
- update-smart-drivedb: Replaced a usually not executed bashism.
- configure: Default for '--with-nvme-devicescan' is now 'yes' also on
  Darwin and FreeBSD.  It is still 'no' on NetBSD only.
- configure: Defines '_FORTIFY_SOURCE=3' if supported and not predefined.
- configure: No longer fails if libsystemd-dev is installed and
  'LDFLAGS=-static' is used.
- Compile fix for systems without legacy 'getdtablesize()'.
- Pre-releases from SVN snapshots now show "pre-VERSION" in version
  information and 'smartctl.pre_release=true' in JSON output.
- Linux: Device type '-d sssraid' for 3SNIC RAID controllers.
- Linux: Device type '-d marvell' now fails with a deprecation message.
  Added '-d marvell,force' flag to use it anyway.
- Linux: The generic SCSI code now defaults to SG_IO_V3 and does no
  longer fall back to the deprecated SCSI_IOCTL_SEND_COMMAND
  (but this ioctl is still used for '-d 3ware' and '-d marvell,force').
- Linux smartd: Now prevents systemd unit startup timeout when many
  devices are registered and then initially checked.
- Linux smartd: Systemd no longer reports a service failure if no device
  is present and a '-q *nodev0*' option is used.
- Solaris SPARC: Dropped legacy ATA support.  Dropped configure option
  '--with-solaris-sparc-ata'.
- Windows: IOCTL_STORAGE_PROTOCOL_COMMAND variant for NVMe self-tests.
- Windows: Installer now defaults to 64-bit executables.
- Windows: No longer prints bogus 'Local Time' if enhanced TZ syntax is used.
- Windows: Workaround to keep backward compatibility with old versions
  of Windows if some versions of MinGW-w64 are used.

Date 2022-02-28
Summary: smartmontools release 7.3
-----------------------------------------------------------
- smartctl '-j': Many additions to the JSON output for SCSI/SAS devices.
- smartctl '-j': JSON output always includes timestamp, regardless of '-i'.
- smartctl '-i' and '--identify': ATA ACS-5 enhancements.
- smartctl '-l defects': additionally works for SCSI Pending Defects log
  subpage.
- smartctl '-l envrep': Prints SCSI Environmental Reporting log subpage.
- smartctl '-l scterc[,R,W],p': Gets/sets the persistent power-on values.
- smartctl '-l scterc,reset': Restores to manufacturer's default values.
- smartctl '-l tapedevstat': Prints SCSI Tape Device Statistics log page.
- smartctl '-l tapealert': Prints SCSI Tape Alert log page.
- smartctl '-l zdevstat': Prints SCSI Zoned Block Device Statistics log
  subpage.
- smartctl '-H': No longer checks and clears the SCSI Tape Alert log page
  unless the option is given twice.
- smartctl '-H': No longer sets bit 2 of exit status if ATA attributes are
  available.
- smartctl '-H': Checks new NVME 1.4 status bit.
- smartctl '-n POWERMODE': ATA: Optionally exits immediately if unsupported.
- smartctl: Support for Zoned block device characteristics and statistics.
- smartctl: Various fixes related to SCSI supported log pages and subpages.
- smartd: Fixed code execution vulnerability in conjunction with
  GNU mailutils < 3.13.
- smartd '-u USER[:GROUP]': Runs the warning script as a non-privileged user.
- smartd '--capabilities': No longer suppresses mail notification.
- 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': 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 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.
- VERSION information in drive database files of all branches.
- smartctl and smartd print drive database VERSION information.
- HDD, SSD and USB additions to drive database.
- update-smart-drivedb: Now checks VERSION information to prevent downgrades.
- update-smart-drivedb '--force': Overrides the VERSION check.
- update-smart-drivedb '--file' and '--url': Updates from local files or
  other URLs.
- update-smart-drivedb '-q': Suppresses info messages.
- update-smart-drivedb: Added long option variants for all short options.
- update-smart-drivedb: Prevents dangling gpg-agents and temp directories.
- update-smart-drivedb '--install': Installs runtime drivedb.h from location
  specified by ...
- configure '--with-drivedbinstdir: drivedb.h package install location.
- configure: SOURCE_DATE_EPOCH prevents inclusion of configure arguments
  in executables.
- configure: Check for '-fstack-protector' now includes the required libs.
- Dropped restriction to C++98, a C++11 compiler is now required.
- Linux: Device scan range enhanced to '/dev/sdzz'.
- Linux: Fixed access to '-d aacraid' and '-d megaraid' devices from smartd
  if '--capabilities' is used.
- Linux: '-d cciss,N' is no longer required for non-RAID hpsa devices.
- Darwin: smartctl '-s apm,N' is now supported.
- OpenBSD: Fixed too short command timeouts.
- OpenBSD: Fixed device name used for autodetection.
- OpenBSD: Fixed SAT autodetection of sd* devices.
- FreeBSD: Added direct access ('-d megaraid,N') and scanning for LSI RAID on
  'mfi' and 'mrsas' controllers.
- Windows: smartd '-u restricted': Runs the warning script with a restricted
  access token.
- Windows: New script 'update-smartd-drivedb.ps1' provides gpg verification
  and replaces 'update-smartd-drivedb.exe'.
- Windows: Disabled '-d aacraid' support due to unresolved bugs.
  Added '-d accraid,...,force' flag to try anyway.

Date 2020-12-30
Summary: smartmontools release 7.2
-----------------------------------------------------------
- smartctl: New option '--json=y[c]' selects YAML output.
- smartctl '-i': Prints ATA TRIM and Zoned Device capabilities.
- smartctl '-j': Fixed 'scsi_grown_defect_list' value.
- smartctl '-a': Prints SCSI 'Accumulated power on time'.
- smartctl '-n POWERMODE': SCSI support.
- smartctl '-s standby,now' and '-s standby,off': SCSI support.
- smartctl '-c': NVMe 1.4 additions.
- smartd: Support for staggered self-tests.
- smartd: No longer writes attribute log if no attributes were read
  due to standby mode or other error.
- smartd: Now resolves symlinks before device names are checked for
  duplicates.
- smartd: Fixed SMARTD_DEVICETYPE environment variable if DEVICESCAN is
  used without '-d TYPE'.
- ATA: Device type '-d jmb39x-q,N' for JMB39x protocol variant used by
  some QNAP NAS devices.
- ATA: Device type '-d jms56x,N' for JMS562 USB to SATA RAID bridges.
- SCSI: Improved heuristics for log subpages of new and very old disks.
- NVMe: Log transfer size limited to avoid device or kernel crashes.
- NVMe/USB: Device type '-d sntrealtek' for Realtek RTL9210 USB to
  NVMe bridges.
- update-smart-drivedb: New option '--branch X.Y'.
- HDD, SSD and USB additions to drive database.
- Dropped support for pre-C99 snprintf().
- configure: Dropped option '--without-working-snprintf'.
- configure: Fixed '-fstack-protector*' detection.
- Linux: Various fixes of smartd.service file.
- Darwin: NVMe log support.
- FreeBSD: Device scan does no longer include T_ENCLOSURE devices.
- NetBSD: Fixed timeout handling.
- NetBSD big endian: Fixed ATA register handling.
- OpenBSD: Fixed timeout handling.
- Windows: Dropped backward compatibility fixes for very old compilers.

Date 2019-12-30
Summary: smartmontools release 7.1
-----------------------------------------------------------
- smartctl: Fixed bogus exception on unknown form factor value (regression).
- smartctl '--json=cg': Suppresses extra spaces also in 'g' format.
- smartctl '-i': ATA ACS-4 and ACS-5 enhancements.
- smartd: No longer truncates very long device names in warning emails.
- smartd: No longer skips scheduled tests if system clock has been adjusted
  to the past.
- smartd '-A': Attribute logs now use local time instead of UTC.
- ATA: Device type '-d jmb39x,N' for drives behind JMicron JMB39x RAID port
  multipliers.
- SCSI: Workaround for incomplete Log subpages response from some SAS SSDs.
- HDD, SSD and USB additions to drive database.
- Autodetection of '-d sntjmicron' type for JMicron USB to NVMe bridges.
- configure: Defines '_FORTIFY_SOURCE=2' if supported and not defined.
- Linux/FreeBSD: Fixed segfault on CCISS transfer sizes > 512 bytes.
- Linux: Fixed smartd.service 'Type' if libsystemd-dev is not available.
- Linux: Fixed '/dev/megaraid_sas_ioctl_node' fd leak.
- Linux: Fixed GPL licensing problem of 'linux_nvme_ioctl.h'.
- FreeBSD update-smart-drivedb: Now uses 'fetch' as default download tool.
- FreeBSD big endian: Fixed NVMe access.
- FreeBSD: Compile fix for FreeBSD 12.
- NetBSD: Fixed device scan crash on empty name list.
- NetBSD: Fixed memory leak in device scan.
- Windows: Fixed log page access via Windows 10 NVMe driver for NVMe 1.2.1+.
- Windows: Allow drive letters as device names for Windows 10 NVMe driver.
- Windows: Workround to allow CSMI access to devices behind AMD RAID drivers.
- Windows: Fixed MinGW options to add relocation info if ASLR is enabled.
- Windows wtssendmsg: No longer writes '\n' line endings to event log.
- Windows wtssendmsg: New options '-t' and '-w'.

Date 2018-12-30
Summary: smartmontools release 7.0
-----------------------------------------------------------
- smartctl: New options '-j' and '--json[=giosu]' to enable experimental
  JSON output mode.  Also supports an alternative flat format suitable
  for grep ('--json=g').
- smartctl '-l devstat': Fix for logs with 256 sectors.
- smartctl '-l error': Prints SCSI Pending Defects log page if supported.
- smartctl '-H': Prints SCSI Format Status log page if supported.
- smartctl '-x': Now includes '-l defects'.
- NVMe/USB: Device type '-d sntjmicron' for NVMe drives behind JMicron USB
  to NVMe bridges.
- NVMe: SMART/Health Information and Error Information are always read with
  broadcast NSID.
- SCSI: Various improvements for the decoding of log pages.
- SCSI: Improved handling of READ CAPACITY command.
- SCSI: Support for SAS host managed drives.
- New option '-d scsi+TYPE' to disable SAT auto detection for 'aacraid'
  and 'cciss'.
- update-smart-drivedb: New option '-u github'.
- update-smart-drivedb: New signing key.
- configure: New options '--with-cxx11-regex' and '--with-libsystemd'.
- configure: Default for '--with-nvme-devicescan' is now 'yes' on Linux
  and Windows.
- configure: Default for '--with-scriptpath' now includes '/usr/local/bin'.
- configure: Options '-with-initscriptdir=[auto|yes]' are no longer
  supported.
- Reworked handling of unaligned LE and BE integers.
- Dropped various backward compatibility fixes for very old compilers.
- Replaced GPL header with 'SPDX-License-Identifier' in all source files.
- HDD, SSD and USB additions to drive database.
- Always use '-d sat' for USB vendor IDs with known SAT support.
- Linux: Device scan with '-d by-id' scans '/dev/disk/by-id/*' symlinks.
- Linux: Dropped device scan support for devfs.
- Linux: Fixed device scan with multiple '-d TYPE' options.
- Linux: Fixed device scan crash on missing '/proc/devices'.
- Linux: USB ID detection also for '/dev/sgN'.
- Linux: Compile fix for systems with musl libc.
- Linux smartd: Could now run as systemd service with 'Type=notify' set.
- FreeBSD: NVMe device scanning.
- FreeBSD: Various compile fixes.
- NetBSD: Fixed regression in name based device type detection.
- NetBSD big endian: Fixed regression in ATA code.
- NetBSD big endian: Fixed byte ordering of ATA IDENTIFY data from USB/SAT
  drives.
- Windows: Improved search for actual CSMI port number.
- Windows: Installer includes VERSIONINFO resource.

Date 2017-11-05
Summary: smartmontools release 6.6
-----------------------------------------------------------
- smartctl '-i' and '--identify': ATA ACS-4 and SATA 3.3 enhancements.
- smartctl: Control ATA write cache through SCT Feature Control
  with '-s wcache-sct,ata|on|off[,p]' and '-g wcache-sct'.
- smartctl: Print ATA Pending Defects log with '-l defects'.
- smartctl '-s wcreorder,on|off': New persistent flag ',p'.
- smartctl '-s standby': Prevent temporary drive spinup.
- smartctl '-n POWERMODE': New parameter to set exit status.
- smartctl '-g security': ATA Security Level check fixed.
- smartctl '-l scttemp*': Print minimum supported ERC Time Limit.
- smartctl '-q noserial': Now also suppresses "SAS address" output.
- smartctl '-i': Print IEEE EUI-64 of NVMe namespace.
- smartctl '-c': Print NVMe 1.3 feature flags.
- smartctl '-A': Print NVMe 1.3 thermal temperature transition
  statistic.
- smartctl '-g/s dsn': Get/set ATA DSN.
- smartd: Uses also device identify information to detect for duplicate
  devices.
- smartd '-e dsn' directive: Set ATA DSN.
- smartd: Improved SCSI/SAS temperature logging.
- smartd: Silence emails and log messages on open errors of
  '-d removable' devices.
- smartd: Exit on device open error unless '-q never' or '-d removable'
  is specified (regression).
- update-smart-drivedb: Now authenticates downloaded file with GnuPG.
- update-smart-drivedb: New options '--trunk', '--no-verify' and
  '--export-key'.
- Device type '-d intelliprop,N' for IntelliProp controllers.
- SCSI: Default timeout increased to 1 minute.
- configure: New options '--with-gnupg', '--with-scriptpath' and
  '--with-update-smart-drivedb=X.Y'
- configure: Checks for C++11 support option and requires
  '--with[out]-cxx11-option' if option unknown or no C++11 support.
- HDD, SSD and USB additions to drive database.
- New smartmontools-* mailing list addresses.
- Man page formatting reworked.
- Linux: Uses SG_IO V4 API if supported.
- Linux: Devices behind hpsa driver are no longer detected as regular
  SCSI devices.
- Darwin: Initial NVMe support based on undocumented API.
- FreeBSD: Fix panic on INVARIANTS enabled kernel.
- FreeBSD: Improve ATA SMART STATUS check for legacy controllers.
- FreeBSD: Compile fix for FreeBSD-11 and newer.
- NetBSD: NVMe support.
- NetBSD: Full 28-bit ATA support.
- NetBSD: Compile fix.
- NetBSD: Use a raw disk device file.
- OpenBSD: Compile fix.
- OS/2: Support for the OS2AHCI driver, updating source code,
  adding autoscan support, adding self-test support.
- Windows: Support for Windows 10 NVMe driver (stornvme.sys).
- Windows: Fix CSMI access for IRST driver 15.2.
- Windows smartd: Ability to run PowerShell scripts with '-M exec'.
- Windows smartd: New PowerShell script to send smartd warning emails
  without external tools.
- Windows package: Now provides PDF man pages.

Date 2016-05-07
Summary: smartmontools release 6.5
-----------------------------------------------------------
- Experimental support for NVMe devices on FreeBSD, Linux and Windows.
- smartctl '-i', '-c', '-H' and '-l error': NVMe support.
- smartctl '-l nvmelog': New option for NVMe.
- smartd.conf '-H', '-l error' and '-W': NVMe support.
- 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 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.
- SCSI: Fixed GLTSD bit set/cleared info messages.
- SCSI: Solid State media log page is no longer checked for tapes.
- SCSI: Improved handling when no tape cartridge in drive.
- SCSI: Workaround for buggy Seagate firmware.
- SAT: Improved heuristics to detect bogus sense data from SAT layer.
- smartd: Fixed crash on missing argument to '-s' directive.
- update-smart-drivedb: Now uses HTTPS for download by default.
- update-smart-drivedb: New options to select URL and download tool.
- update-smart-drivedb: New download tool 'svn'.
- configure option '--without-update-smart-drivedb' to disable
  update-smart-drivedb script.
- configure options '--disable-drivedb', '--enable-savestates',
  '--enable-attributelog' and '--with-docdir' are no longer supported.
- autoconf < 2.60 and automake < 1.10 are no longer supported.
- Drive database file now also includes the DEFAULT setting
  for each attribute.
- HDD, SSD and USB additions to drive database.
- Darwin: New support files for package installer.
  New makefile target 'install-darwin' builds DMG image.
- Solaris: Auto detection of SATA devices behind SAT layer.
- Solaris SPARC: Legacy ATA support disabled by default.
  New configure option '--with-solaris-sparc-ata' enables it.
  File os_solaris_ata.s is no longer included in source tarball.
- Windows: Auto detection of USB devices specified by drive letter.
- Windows: Device scanning does no longer ignore unknown USB devices.
- Windows: Prevent drive spin up by '-n standby' check.
- Windows: New application manifests indicating Win 10 support.
- Windows smartd: '-m [sys]msgbox' is no longer supported.
- Windows installer: Defaults to 64-bit version on 64-bit Windows.
- Various code changes suggested by Clang Static Analyser and Cppcheck.

Date 2015-06-04
Summary: smartmontools release 6.4
-----------------------------------------------------------
- Device type '-d usbprolific' for Prolific PL2571/277x USB bridges.
- SAT: Support for ATA registers returned in fixed format sense data.
- smartctl '-i' and '--identify': ATA ACS-4 and SATA 3.2 enhancements.
- smartctl '-l xerror': Support for logs with more than 255 pages.
- smartctl '-l devstat': Prints ACS-3 DSN flags.
- smartctl '-l devstat': Read via SMART command if GP log is not
  available.
- smartctl '-l scttempsts': Prints SCT SMART STATUS (ACS-4) and
  vendor specific SCT bytes.
- configure option '--with-systemdenvfile=auto' as new default.
- configure options '--disable-drivedb', '--enable-savestates'
  and '--enable-attributelog' are deprecated.
- Corresponding '--with-*' options are enhanced accordingly.
- Configure option '--with-docdir' is deprecated.
- autoconf < 2.60 and automake < 1.10 are deprecated.
  (all of the above still work but a warning is printed if used)
- HDD, SSD and USB additions to drive database.
- Linux: AACRAID fixes, SMART STATUS should work now.
- Linux: '/dev/megaraid_sas_ioctl_node' fd leak fix.
- Darwin: '-S' command implemented, '-l devstat' should work now.
- Cygwin: Compile fix.
- Windows: Device type '-d aacraid' for AACRAID controllers.
- Windows: SAT autodetection based on IOCTL_STORAGE_QUERY_PROPERTY.
- Windows installer: Fix possible loss of user PATH environment variable.

Date 2014-07-26
Summary: smartmontools release 6.3
-----------------------------------------------------------
- smartctl: Fixed bogus error messages from '-g/-s wcreorder'.
- smartctl prints ATA form factor.
- SCSI: Improved support of modern disks (SAS SSDs).
- SCSI: Fixed sense data noise from old disks.
- update-smart-drivedb man page.
- configure option '--with-smartdscriptdir'.
- configure option '--with-smartdplugindir'.
- configure option '--with-systemdenvfile'.
- configure option '--with-working-snprintf'.
- Removed build time stamps to support reproducible builds.
- Compile fixes for C++11.
- HDD, SSD and USB additions to drive database.
- Linux: Support for controllers behind AACRAID driver.
- Linux: Fixed DEVICESCAN max path count.
- FreeBSD: Fixed possible crash caused by wrong SCSI error handling.
- FreeBSD: Compile fix for kFreeBSD.
- Windows: Reworked CSMI port scanning.
- QNX: Compile fix.

Date 2013-07-26
Summary: smartmontools release 6.2
-----------------------------------------------------------
- smartctl: Added ATA write cache reordering control using
  '-g wcreorder' and '-s wcreorder,[on|off]' options.
- update-smart-drivedb: Updated for new SVN repository.
- HDD, SSD and USB additions to drive database.
- Areca RAID support: Fixed possible segfault on empty port.
- HPT RAID support: Maximum disk number increased to 128.
- Linux: RHEL 9 compile fixes.
- FreeBSD: Device scanning now skips port multipliers.
- Cygwin: 64-bit compile fixes.
- Windows: Fixed bogus temp file name in smartd_warning.cmd
  (already included in smartmontools-6.1-2.win32-setup.exe).
- Windows: smartd service is no longer installed as interactive.

Date 2013-03-16
Summary: smartmontools release 6.1
-----------------------------------------------------------
- smartctl '-l directory': improved output format.
- smartctl: Fix parsing of '-l select,cont+SIZE' option.
- smartctl prints ATA Additional Product Id (OEM Id).
- 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 alignment,
  logical block provisioning, disk protection type
  and selftest progress status.
- smartctl '--identify' updated for latest ATA ACS-3 spec.
- smartd runs /etc/smartd_warning.sh to generate warning emails
  (Windows: smartd_warning.cmd).
- smartd '-w PATH' option to specify this executable.
- smartd '-d ignore' directive.
- smartd DEVICESCAN ignores devices already specified.
- smartd: added support for state persistence ('-s') and attribute logging
  ('-A') for SCSI devices.
- smartd '-W' directive uses ATA attribute 190 if 194 is missing.
- Support of larger SCSI defect lists via READ DEFECT(12).
- Device type '-d usbjmicron,p' for Prolific USB bridges.
- Many HDD, SSD and USB additions to drive database.
- Linux: Support for SAS disks behind Areca controllers.
- Linux: Improved support for SATA disks on LSI/Megaraid controllers
- Linux: disks on MegaRaid controllers are automatically scanned
- FreeBSD: Support for SAS disks behind Areca controllers.
- FreeBSD: Enhanced ATA command support for 3ware.
- FreeBSD: Support for 3ware 9750 (/dev/twsX).
- FreeBSD: Fixed support for 48-bit ATA commands on legacy controllers
  with ATACAM driver.
- FreeBSD: Improved support for SAS/SCSI disks on LSI/Megaraid controllers.
- Windows: smartd.conf '-M exec' supports path names with spaces.
- Windows: Tool wtssendmsg.exe to handle smartd.conf '-m console'.
- Windows: DEVICESCAN now supports up to 128 drives.
- Windows: smartctl.exe and smartd.exe include VERSIONINFO resource.
- Windows: smartd.exe includes MESSAGETABLE resource.
- Windows: syslogevt.exe is no longer provided.

Date 2012-10-10
Summary: smartmontools release 6.0
-----------------------------------------------------------
- option/directive '-F nologdir' and '-F xerrorlba'.
- smartctl '--identify' option.
- smartctl prints nominal media rotation rate (ATA).
- smartctl prints SATA version and speed.
- smartctl '-l sataphy' works for CD/DVD drives also.
- smartctl '-x' includes ATA Device Statistics.
- smartd warning emails include device identify info.
- smartd '-d' output is flushed to support redirection.
- HDD, SSD and USB additions to drive database.
- Windows smartd: smartd.conf directives '-m console',
  '-m active', '-m connected'.
- Windows: Support for SAS disks behind Areca controllers.
- Windows: Win9x/ME and NT4 are no longer supported.

Date 2012-06-30
Summary: smartmontools release 5.43
-----------------------------------------------------------
- smartctl options '-g, --get' and '-s, --set' to get/set
  various ATA settings: AAM, APM, Read look-ahead, Write
  cache, Security (freeze), Standby mode/timer.
- smartd directive '-e' to set (most of) the above settings
  on startup.
- smartctl options '-f hex' and '-f hex,[id|val]'.
- smartctl does not start ATA self-test if another test is
  already running.  Override with new option '-t force'.
- smartctl supports extended self-test polling times
  greater than 255 minutes.
- Controller-independent SAT detection: '-d sat,auto[+TYPE]'.
- smartd.conf DEFAULT directive.
- Many HDD, SSD and USB additions to drive database.
- Linux and FreeBSD: Support for SATA disks behind Areca SAS
  RAID controllers and HP Smart Array controllers.
- Windows: Support for SATA disks behind Areca controllers.
- Windows smartd: directives '-l offlinests,ns' and
  '-l selfteststs,ns'.
- Windows installer: Combined 32-/64-bit support.
- FreeBSD: fixed crash on SCSI devices with FreeBSD9-RC1

Date 2011-10-20
Summary: smartmontools release 5.42
-----------------------------------------------------------
- smartctl option '-l devstat' (Device Statistics).
- smartctl option '-l ssd' (SSD endurance indicator).
- smartd logs identify information of each SCSI/SAS device.
- smartd resends warning emails if problem reappears.
- smartd directives '-l offlinests' and '-l selfteststs'.
- Many HDD, SSD and USB additions to drive database.
- Platform-specific man pages.
- smartd.8 man page no longer includes smartd.conf.5.
- FreeBSD: Compilation fixes.
- FreeBSD: Support for Areca controllers.
- FreeBSD: Fix '-l scterc' support.
- FreeBSD: Support for 48-bit ATA commands.
- Linux: Support for Areca controllers enhanced.
- Windows installer: UAC support.
- Windows: update-smart-drivedb /S(ilent) option.
- Windows: improved USB ID detection.

Date 2011-06-09
Summary: smartmontools release 5.41
-----------------------------------------------------------
- Failed self-tests outdated by a newer successful extended
  self-test are no longer reported as errors.
- Support for ATA Long Logical/Physical Sectors (LLS/LPS).
- 'smartctl --scan-open' can create a draft smartd.conf.
- smartctl prints World Wide Name (WWN) of ATA device.
- smartctl option '-f brief' to select new attribute output
  format which includes more flags and fits in 80 columns.
- smartd logs identify information and WWN of each ATA device.
- smartd logs warning from drive database if present.
- smartd logs changes of offline data collection status.
- smartd directive '-l scterc,READTIME,WRITETIME'.
- smartd preserves last scheduled selective self-tests span.
- 'smartd.service' file for systemd.
- configure option '--with-systemdsystemunitdir'
- configure option '--with-exampledir'.
- configure searches for init.d or rc.d directory.
- 'make install' does no longer overwrite an existing
  smartd.conf file.
- 'update-smart-drivedb' does no longer require GNU sed.
- Many HDD, SSD and USB additions to drive database.
- Linux USB autodetection: Enable '-d sat,16' for newer kernels.
- Linux megaraid: Fix segfault on non-data SCSI commands.
- Linux megaraid: Fix pass-through of non-data ATA commands.
- FreeBSD: Use 'fetch' in 'update-smart-drivedb'.
- OpenBSD: Use 'ftp' in 'update-smart-drivedb'.
- OpenBSD: Workaround for shell bug.
- OpenBSD: Fix DEVICESCAN for OpenBSD >= 4.8.
- Windows: Experimental support for Intel ICHxR RAID.
- Windows: DEVICESCAN includes USB devices.
- Windows: Faster USB ID detection.
- Windows: update-smart-drivedb tool.
- Windows installer: Option '/SO component,...'.
- Windows: Fix smartd warning email truncation on Win7.
- Windows installer: Fix shortcut removal on Vista/Win7.
- Windows: Add missing quotes in smartctl-run.bat and
  smartd-run.bat

Date 2010-10-16
Summary: smartmontools release 5.40
-----------------------------------------------------------
- Other config entries may precede smartd DEVICESCAN.
- 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.
- Improved support for SandForce based SSDs.
- Drive database is in a separate source file 'drivedb.h'
  which can be downloaded from SVN.
- USB ID info is now included in 'drivedb.h'.
- Many additions to drive database.
- New script 'update-smart-drivedb'.
- smartd libcap-ng support, option '-C, --capabilities'.
- smartd directive '-l xerror' to check Extended Comprehensive
  SMART Error Log.
- smartctl option '-l scterc[,...]' to get/set the
  SCT Error Recovery Control time limit.
- smartctl option '-t vendor,N'.
- smartctl options '--scan, --scan-open'.
- Linux: Add '/dev/sd[a-c][a-z]' to smartd DEVICESCAN.
- Linux: Support SATA drives on LSI 3ware 9750 controllers.
- Windows: Read 'drivedb.h' and 'smartd.conf' from exe directory.
- Windows: Support for 64-bit executables.
- Windows: Support for cross compilation on Linux.
- Fix regression in smartctl option '-t select,M-N'.
- Fix SCT temperature table commands on big endian CPUs.
- Fix regression in smartd SMARTD_DEVICE and SMARTD_DEVICETYPE
  environment variables.

Date 2010-01-28
Summary: smartmontools release 5.39.1
-----------------------------------------------------------
- Fix crash on kFreeBSD.
- Fix regression in smartctl option '-q, --quietmode'.
- Fix regression in smartd directive '-l selftest'.
- Linux: Allow smartd 'DEVICESCAN -d sat'.
- Linux: Fix spin-up of SATA drive if '-n standby' is used.
- Windows: Fix parsing of 3ware 'tw_cli' output.

Date 2009-12-09
Summary: smartmontools release 5.39 (UNSTABLE/EXPERIMENTAL)
-----------------------------------------------------------
- Sourcecode repository moved from CVS to SVN
- Support for USB devices with Cypress, JMicron and Sunplus USB bridges
- USB device type autodetection for some devices on Linux, Windows and FreeBSD
  (http://www.smartmontools.org/wiki/Supported_USB-Devices)
- Support for Areca controllers on Linux
- Support for MegaRAID controllers on Linux
- Support for HighPoint RocketRAID controllers on FreeBSD
- Support RAID controllers using /dev/pass devices on FreeBSD
- Support CHECK_POWER_MODE and WRITE_LOG on FreeBSD
- Support for up to 128 devices on 3ware controllers
- smartctl option '-l xerror' to print ATA SMART Extended Comprehensive
  Error Log
- smartctl option '-l xselftest' to print ATA SMART Extended Self-test Log
- smartctl option '-l sataphy' to print SATA Phy Event Counters
- smartctl option '-l sasphy' to print SAS device phy information
- smartctl options '-l gplog,...' and '-l smartlog,...' to print any log page
- smartctl option '-x' to print all extended info if available
- smartctl prints SCSI load/unload cycle counts
- Improve display of huge raw values of some SMART attributes
- Option '-d sat+TYPE' to use SAT with controllers which require '-d TYPE'
- Option '-v ID,RAW_FORMAT,ATTR_NAME' to add new vendor specific attributes
- Support for SSD drives using 64-bit raw attributes
- Many additions to drive database
- New simplified syntax for drive database
- Option '-B FILE' to read drive database from a file
- Configure option to add drive database file to distribution
- smartd can now handle attributes 197 and 198 with increasing raw values
- smartd logs changes of self-test execution status
- smartd directive '-n powermode,N' to limit the number of skipped checks
- smartd flag '!' for '-r' and '-R' directives to log changes as critical
- smartd supports scheduled Selective Self-Tests
- Self-tests scheduled during system downtime or disk standby are run after
  next startup
- smartd option '-s PREFIX' to store smartd internal state until next startup
- smartd option '-A PREFIX' to log attributes at each check cycle
- Configure options to enable the above by default
- Change to an object oriented interface to access ATA and SCSI devices
- Linux, Win32 and FreeBSD modules migrated to new interface
- Rework of smartd data structures
- Checkin date and SVN revision and optional BUILD_INFO printed in version info
- Better support for GSmartControl on Windows
- SELinux fixes to 3ware device node creation
- Fix CCISS file descriptor leak on FreeBSD
- Compile fixes for Solaris and FreeBSD
- Use getaddrinfo() instead of gethostbyname() to support IPv6
- C++ Support for QNX Target, already tested for QNX 6.3.2 on x86 and
  armle target
- Additional support for Samsung MLC flash drives
- New device type detection algorithm on FreeBSD, not based on filename
- Support for the adaX (ATA on CAM bus) devices on FreeBSD 8.0 and higher

Date 2008-03-10
Summary: smartmontools release 5.38 (STABLE)
--------------------------------------------
This is a stable release of smartmontools.  In addition to changes
below, it includes:
 - Libata/Marvell driver devices no longer need explicit '-d' switch
 - DEVICESCAN automatically detects libata/marvell driver SATA devices 
 - Fixed auto-offline/autosave support in FreeBSD
 - SAT device type + SCSI generic devices work properly with smartd under Linux
 - Many additions to drive database
 - More portable autogen/autoconf/automake script set
 - Additional Windows IOCTL route to access SMART data
 - Some ATA-8 updates
 - Smoother CCISS compilation support in Linux
 - Dragonfly support
 - Fixed some ATA identity byte swap problems on big endian CPUs
 - Added support for the QNX operating system
 - No-fork option added to smartd
 - Improved device scanning and drive type recognition in Windows
 - 3ware support for controllers with more disks (32 max)
 - Improved Windows installer
 - Improved SMART Attribute list and descriptions
 - Fix to smartctl return codes
 - Fix to scheduled tests on Highpoint RAID controllers
 - New samsung firmware bug workaround option
 - Auto-offline and Auto-save fixed in Linux + libata
 - Solaris: better SCSI support and support for Sun compilers AND gcc
 - Fixed and improvements to CCISS support
 - More options for SCSI temperature monitoring and history
 - Additional command line options for selective self-tests
 - Compilation fixes for various platforms.

See CHANGELOG for more details, or smartmontools SVN for still further
details.

Date 2006-12-20
Summary: smartmontools release 5.37 (UNSTABLE/EXPERIMENTAL)
-----------------------------------------------------------
This is an unstable/experimental release of smartmontools.
It includes:

- Many additions to the table of known drives
- SAT (SCSI/ATA Translation) support
- SCSI background scan results log
- smartd -W directive for temperature tracking and warning
- smartctl -n option to check power state
- improved smartd power state logging
- CCISS support under Linux
- HighPoint RocketRAID support under Linux
- 3ware RAID support under Windows
- SPT interface for SCSI devices under Windows
- ATA selective self test under Windows XP/2003
- NSIS installer support for Windows version
- Started move from C to C++
- Various other improvements


Date 2006-04-12
Summary: smartmontools release 5.36 (STABLE)
-----------------------------------------------------------
This is a stable smartmontools release.  The 5.34 version
described just below was never officially released because
Bruce Allen decided to wait until Linux support for
accessing SATA devices through libata was in the official
kernel.org sources.  Changes include:

- Win 2000/XP:ability to cancel drive self-tests
- Additions to the table of known drives
- FreeBSD support for 3ware char device interface and
  multiple 3ware cards
- Various cygwin improvements for running as service
- Works 'out of the box' with Linux SATA libata
- smartd option added to list test schedules
- smartctl option added to list part of drive database
- various improvements for SCSI disks and logs


Date 2005-04-19
Summary: smartmontools release 5.34 (STABLE)
-----------------------------------------------------------
This is a stable smartmontools release.  It includes:
- OS/2 and eComStation support
All Platforms:
 - Printing of drive family info
 - SCSI disks: output size of grown defect list
 - Added info about drive family to 'smartctl -i' output.
 - Added option ',q' for smartd '-n' directive to suppress
   'skipping checks' message which may spin up laptop disk.
 - Added message if smartd '-n' check power mode spins up disk.
Cygwin and Windows:
 - Added info about Windows version and service pack to banner line.
 - Added support for smartd '-n' directive for Win2000/XP.
 - Added support for READ_LOG for WinNT4 also.
 - Fixed bug that prevents display of empty logs on Win2000/XP
 - Fixed use of cached smart enabled state in 'smartctl -i' output. 
Windows:
 - Fixed bug that prevents running smartd as service on WinNT4.


Date 2004-9-5
Summary: smartmontools release 5.33 (UNSTABLE/EXPERIMENTAL)
-----------------------------------------------------------
This is an unstable/experimental release of smartmontools.  It includes
 - support for Darwin/Mac OSX
 - support for OpenBSD
 - support for 3ware ATA RAID controllers under FreeBSD
 - support for 3ware 9500 series SATA RAID controllers under
   Linux.  Use /dev/twa[0-15] devices to access these.
 - support for 3ware character device interfaces /dev/twe[0-15]
   under Linux.  This allows (for example) Selective Self-tests.
 - support for Marvell chip-set based SATA controllers under Linux.
 - smartd mail now works also under Windows (using "Blat" mailer).
 - smartd can now be run as a Windows service.
Please report sucess/failure with these items to the
smartmontools-support mailing list.


Date 2004-7-5
Summary: smartmontools release 5.32 (STABLE)
-----------------------------------------------------------
This is an stable release of smartmontools.
Note added 2004/7/7: users building a Solaris/Intel version of the code should 
modify the 'configure' file, changing "pc-*-solaris*" on line 106
to read "*-pc-solaris*".  Reference:
http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/configure.in?r1=1.83&r2=1.84


Date: 2004-5-4
Summary: smartmontools release 5.31 (UNSTABLE/EXPERIMENTAL)
-----------------------------------------------------------
This is an unstable/experimental release of smartmontools.  It includes
several new features:
- Windows smartd daemon
- smartd now monitors current and pending sector counts
- Support for ATA-7 selective self-test features (Linux/NetBSD only)
  Please report sucess/failure with this option to the smartmontools-support
  mailing list.

Date: 2004-3-6
Summary: smartmontools release 5.30 (STABLE)
--------------------------------------------
This is a stable release of smartmontools: the first stable release
since 5.26.
- KNOWN BUG (identified/fixed by CF): smartd will segv and crash if
  the configuration file /etc/smartd.conf contains NO valid entries.
  This bug was introduced in version 1.259 of smartd.c by BA and
  is present in smartmontools releases 5.27-5.30 inclusive. This can
  be fixed by editing line 3165 of smartd.c, and changing:
  "else if (cfgentries[0]) {"
  to read:
  "else if (cfgentries && cfgentries[0]) {"


Date: 2004-2-24
Summary: smartmontools release 5.29 (Experimental, not STABLE)
--------------------------------------------------------------
This is another experimental release, to replace the 5.27 release that
had a damaged configure script.  The next stable release will be 5.30
- This release has SCSI support for NetBSD


Date: 2004-2-12 
Summary: smartmontools release 5.27 (Experimental, not STABLE)
--------------------------------------------------------------
- WARNING: this release has a broken --prefix=/a/path option to the
  configure script.  The consequence is that smartd will not look for the
  configuration file (smartd.conf) at the desired location.
- NetBSD support added
- A new Directive (-s) for smartd.conf now enables flexible automatic
  scheduled self-testing for both ATA and SCSI devices.
- Solaris now has ATA device support (SPARC only)
- A new Directive (-n) for smartd.conf to avoid spinning up disks
- Errors when smartd sends mail are now logged to SYSLOG
- Solaris smartd mail now works correctly (uses mailx not mail)


Date: 2003-11-29
Summary: smartmontools release 5.26
-----------------------------------
This is a stable smartmontools release.  The only known problem is
that under Solaris, the email features of smartd do not work 'out of
the box'.  Three workarounds are:
  [1] use '-M exec mailx' in /etc/smartd.conf
  [2] in the start script for smartd, put /usr/ucb into PATH before
      /bin
  [3] upgrade to release 5.27 or later, or the latest CVS snapshot


Date: 2003-11-19
Summary: smartmontools release 5.25
-----------------------------------
This release should not hang when accessing USB devices. It provides
smartd SCSI self-test log monitoring for self-test errors, and a
larger table of known ATA drives.  DEVICESCAN should work correctly
even on file systems containing XFS or JFS partitions, and on machines
that use devfs, even without traditional links.

From this time on, even numbered releases will be 'stable' ones and
odd numbered releases (like 5.25) will be unstable/testing/development
releases.


Date: 2003-10-30
Summary: smartmontools release 5.23
-----------------------------------
This release has one known problem: DEVICESCAN device scanning does
not work correctly if the disk with the /dev directory also has XFS
or JFS file systems on it.


Date: 2003-10-28
Summary: smartmontools release 5.22
-----------------------------------
Replaces flawed 5.21 release: the -T verypermissive option had to be
entered as -T verpermissive. First experimental solaris support (SCSI
only).  This release had a serious flaw: smartd left open file descriptors
for devices that it couldn't monitor.


Date: 2003-10-14
Summary: smartmontools release 5.21
-----------------------------------
Preliminary support for FreeBSD added to smartmontools.  For FreeBSD,
ATA support requires a 5.1-CURRENT kernel while SCSI support should
work across multiple versions (any that support CAM).


Date: 2003-10-04
Summary: smartmontools release 5.20
-----------------------------------
Replaces flawed 5.19 release (which had a zero-length man page
smartd.conf.5).


Date: 2003-10-03
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 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
 [4] correct paths are inserted into all man pages, binaries, etc.
 [5] tarballs and RPMs are now GPG-signed


Date: 2003-10-02 11:35
Summary: smartd SEGV
--------------------
Some versions of smartd, including smartmontools release 5.1-18, will
SEGV if the combination of Directives in /etc/smartd.conf contains
-l error
AND/OR
-l selftest
without any Attribute monitoring Directives.  This is fixed in 5.19
and above.

A good workaround is to add:
-o on
OR
-o off
to enable or disable automatic offline data collection.


Date: 2002-11-17 07:41
Summary: testunitready bug in smartd
------------------------------------
A bug in smartd prevented functioning on scsi devices.
The bug in question only affects smartd users with scsi devices.
To see if your version of smartd has the testunitready() bug, do
smartd -V
If the version of the module smartd.c in a line like:
Module: smartd.c revision: 1.66 date: 2002/11/17
has a revision greater than or equal to 1.30, and less than or
equal to 1.64, then your version of the code has this problem.

This problem affected releases starting with RELEASE_5_0_16 up to and
including RELEASE_5_0_43.
