diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 2346 |
1 files changed, 2346 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..f33806f --- /dev/null +++ b/ChangeLog @@ -0,0 +1,2346 @@ +$Id: ChangeLog 5530 2023-08-01 11:00:21Z chrfranke $ + +2023-08-01 Christian Franke <franke@computer.org> + + smartmontools 7.4 + +2023-07-31 Christian Franke <franke@computer.org> + + drivedb.h: + - Apacer AS340/350 SSDs: Rename, add AS350 (#1444). + - Phison Driven SSDs: Corsair Force LE (#1348), Patriot Ignite, + PNY CS* 500GB. + - Phison Driven OEM SSDs: Hoodisk (GH issues/195), Kingmax (#1699). + - Silicon Motion based SSDs: Mushkin *-LT variant. + - SK hynix SATA SSDs: Add attribute 249 (GH pull/107), remove + duplicate regex. + +2023-07-30 Christian Franke <franke@computer.org> + + drivedb.h: + - ATP SATA III aMLC M.2 2242/80 SSDs: Rename, add 2280 (#1717). + - Silicon Motion based SSDs: ADATA SU630 (#1713), LITEON LCH (#1727), + NFORCE SSZS13 (#1707), ONDA S-12 (#1698), Patriot P210. + - Silicon Motion based OEM SSDs: Intenso (#1700, #1706, #1732), + Netac Z Slim (#1656), SPCC M.2 SSD (#1662). + - USB: Netac Z Slim (0x0dd8:0x0562) (#1656). + - USB: ASMedia ASM2364 (0x174c:0x2364). + +2023-07-29 Christian Franke <franke@computer.org> + + drivedb.h: + - USB: Samsung Portable SSD T7 Shield (0x04e8:0x61fb) (#1730, #1733) + - USB: ASMedia ASM1352-PM (0x174d:0x1352) (GH/pull 181) + - USB: JMicron JMS578 (0xab12:0x34cd) (#1737) + +2023-07-25 Christian Franke <franke@computer.org> + + nvmeprint.cpp: Add JSON support for '-l error' and '-l selftest'. + +2023-07-24 Christian Franke <franke@computer.org> + + man pages: Set svn:eol-style=LF to be compatible with Cygwin sed. + + man pages: Use CW font only if troff is used. + This silences a related warning from groff. + + smartd.cpp: Don't write Copyright line to syslog. + This prevents that logfile analyzers need an extra suppression rule + (Red Hat Bugzilla 673758 and 1162741). + utility.cpp, utility.h: Enhance 'format_version_info()' accordingly. + smartctl.cpp: Adjust function call. + + nvmeprint.cpp: Add NVMe 2.0 capability flags. + + ataidentify.cpp, ataprint.cpp: ACS-4/5/6 enhancements. + + smartd.cpp: Don't write attrlog if ATA attributes were not read. + Improvement of original fix r5116. + + os_win32/update-smart-drivedb.ps1.in: Fix typo, update help text. + + smartd.conf: Align help text with 'smartd -D' output. + + smartd.conf, smartd.conf.5.in: Remove outdated examples. + + smartd.conf: Remove SVN Id string + (Debian 54_remove-Id-from-smartd.conf.diff). + + smartd.conf, smartd.conf.5.in: Add examples for '-d cciss,N' on Linux + (based on Debian 61_cciss-doc.patch). + + smartctl.8.in: Minor rework of '-a' and '-x' sections. + Merge duplicate info about TapeAlert. + Note that admin rights are not needed for Windows NVMe driver. + Note that the NVMe error log is not persistent. + + smartctl.8.in, smartd.conf.5.in: Update sections '-d usbasm1352r' + and '-d usbjmicron'. + + smartd.conf.5.in: Remove example for deprecated '-d intelliprop,N'. + + smartctl.8.in, smartd.conf.5.in: Fix typos. + + man pages: Silence harmless warnings from 'mandoc -T lint'. + Fix bogus bold font setting (Debian Bug 1041295). + + man pages: Add release numbers to EXPERIMENTAL notes. + Keep notes of previous release 7.3. + +2023-07-16 Christian Franke <franke@computer.org> + + os_win32/installer.nsi: Rework InstType names, default to x86_64. + 64-bit executables are now archived in 'bin' directory, 32-bit + executables in 'bin32'. Update links to NSIS examples. + + configure.ac: Don't fail if libcap-ng or libsystemd libs are missing. + No appropriate library may be provided if 'LDFLAGS=-static' is used. + + Makefile.am: Add *.cmd and *.ps1 to Windows checksum*.txt files. + + configure.ac: Fix 'makensis' search for 64-bit Cygwin and MSYS2. + Makefile.am: Remove conditional 'OS_WIN32_NSIS'. + +2023-07-10 Christian Franke <franke@computer.org> + + utility.cpp: Add workaround for limited 'TZ' support of MSVCRT + version of 'tzset()'. + + utility.cpp, os_win32/syslog_win32.cpp: Use '_localtime64_s()' on + Windows to avoid conflict with C11 variant of 'localtime_s()' + (cppcheck 2.11: uninitvar false positive). + + os_win32/syslog_win32.cpp: Replace tabs. + Use declaration statements. Update comments. + + dev_interface.cpp: Don't pass local buffer address to caller + (cppcheck 2.11: autoVariables). + + scsiprint.cpp: Remove unused code, remove unused variable + (cppcheck 2.11: knownConditionTrueFalse, unusedVariable). + + smartd.cpp: Print SCSI Inquiry error code. + Silences 'Dead nested assignment' report from clang analyzer. + +2023-07-08 Christian Franke <franke@computer.org> + + CI: Move docker base image from ubuntu:18.04 to debian:12. + Update Dockerfile and .circleci/config.yml accordingly. + +2023-07-02 Christian Franke <franke@computer.org> + + cppcheck.sh: Mark cppcheck 2.11 as tested. + Adjust suppress options and defines. + +2023-06-27 Oleksij Samorukov <samm@os2.kiev.ua> + + CI: build darwin packages for arm64/x86_64, drop i386 support + +2023-06-26 Christian Franke <franke@computer.org> + + ataprint.cpp, farmprint.cpp, scsiprint.cpp: Unify FARM related + messages. + +2023-06-25 Christian Franke <franke@computer.org> + + smartctl.cpp: Don't include '-l farm' in '-x'. + Suggest it if supported. + + ataprint.cpp: Suggest '-x' option if only '-a' is used. + ataprint.h, smartctl.cpp: Add 'ata_print_options.a_option' flag. + + scsiata.cpp: Suppress NO DATA commands for '-d usbasm1352r,N' device + type. + Test results from GH issues/167 suggest that these commands are not + supported or require different parameters. + +2023-06-13 Christian Franke <franke@computer.org> + + utility.h: Fix check for __USE_MINGW_ANSI_STDIO. + Recent versions of MinGW-w64 define __USE_MINGW_ANSI_STDIO=0 if + disabled. + + configure.ac: Don't define __USE_MINGW_ANSI_STDIO if UCRT is used. + + configure.ac: Disable ASLR workarounds for newer versions of + MinGW-w64. + + configure.ac: Skip _FORTIFY_SOURCE support check if 'nm' is missing. + + configure.ac: MinGW: Fail if 'windres' is missing, warn if 'windmc' + is missing. + + Makefile.am: Allow MinGW builds also if the 'windmc' tool is missing. + + smartd.cpp: Always notify READY=1 to systemd before 'exit(0)'. + The prevents that systemd reports the service as failed if no device + is present and '-q *nodev0*' is used (Debian Bug 1029210). + Log the exit status also if exiting during first pass. + +2023-05-30 Christian Franke <franke@computer.org> + + nvmecmds.cpp, nvmprint.cpp: Also suppress NVMe Namespace IEEE EUI-64 + info if '-q noserial' is specified. + smartctl.8.in: Update '-q noserial' documentation. + + smartd.cpp: Don't report new non-device related errors as critical + (#1222). + smartd.conf.5.in: Document new functionality. + +2023-05-29 Christian Franke <franke@computer.org> + + Add error messages for NVMe status values. + dev_interface.cpp: Add message to 'set_nvme_err()'. + nvmecmds.cpp, nvmecmds.h: Add functions 'nvme_status_*()'. + nvmeprint.cpp: Add message to '-l error' output (related: #1300). + +2023-03-21 Douglas Gilbert <dgilbert@interlog.com> + + tweak to suppress a warning from gcc/g++ 9.3 + +2023-03-15 Douglas Gilbert <dgilbert@interlog.com> + + expand functionality of json::str2key() . It's job is to convert + a C string to a JSON name in "snake" format. That format is lower + case alphanumeric with all other characters replaced by + an '_' (underscore). This change further removes all leading and + trailing underscores plus repeated underscores within the name are + compressed to a single underscore. In the degenerate case, for + example a string like "!@#$" (i.e. no alphanumeric characters), a + single underscore is output (but is most likely an error). Typical + example: "$Output power (mW)" is converted to "output_power_mw". + +2023-03-14 Christian Franke <franke@computer.org> + + farmprint.cpp, os_freebsd.cpp: Use 'snprintf()' instead of + 'sprintf()'. + + farmprint.cpp: Avoid unneeded copy of json::ref. + +2023-03-13 Christian Franke <franke@computer.org> + + cppcheck.sh: Mark cppcheck 2.10 as tested. + + farmprint.cpp: Fix loop conditions which may result in infinite + loops (GH code-scanning/312 - 315: Comparison of narrow type with + wide type in loop condition). + + Fix MSVC builds. + os_win32/vc*/smartctl.vcxproj*: Add new FARM files. + scsicmds.cpp: Remove unneeded <unistd.h>. + + farmprint.cpp: Increase buffer size of 'worldWideName' + (GH code-scanning/316 and 317: Potentially overrunning write). + Use 'snprintf()' instead of 'sprintf()'. + +2023-03-13 Michael Cordle <michael.a.cordle@seagate.com> + + Large update adding pulling and parsing of Seagate's vendor-specific + Field Access Reliability Metrics (FARM) log to supported ATA and SCSI + drives (GH pull/180). + Running smartctl with '-l farm' will print the top predictive metrics + from FARM for drive health monitoring. Can be printed with plain-text + or JSON ('-j'). FARM can also be printed with '-a' and '-x', but no + error messages will be printed, unlike '-l farm'. + + farmcmds.h: Add structures to store FARM data. + farmcmds.cpp: Add functions to pull FARM data from drive. + farmprint.h: Add function declarations for printing FARM data. + farmprint.cpp: Add function definitions for printing FARM data. + ataprint.h: Add checking FARM command-line option. + ataprint.cpp: Add checking if drive is Seagate and supports FARM. + scsiprint.h: Add checking FARM command-line option. + scsiprint.cpp: Add checking if drive is Seagate and supports FARM. + smartctl.cpp: Add command-line option parsing for FARM. + smartctl.8.in: Add '-l farm' description to manual. + Makefile.am: Add new FARM files. + AUTHORS: Add myself and Natan Lidukhover to list of contributors. + +2023-02-17 Steven Song <steven.song@3snic.com> + + os_linux.cpp: Fix CK_COND issue for SATA disk and use C++11 or + later structure initialization (#1694). + +2023-02-14 WHR <whr@rivoreo.one> + + atacmds.cpp: fix a logical error in function ataReadExtSelfTestLog + where it failed to byte-swap timestamp values on big-endian + platforms except in the first log entry (#1696). + +2023-02-11 Douglas Gilbert <dgilbert@interlog.com> + + more RSOC work (see 2023-01-11 patch). Simplify + scsiPrintMain(). Use Read capacity (16) if RSOC + says it is supported; previously often tried + Read capacity (10) first. A small cleanup after + report from clang++ --analyze + +2023-02-10 Douglas Gilbert <dgilbert@interlog.com> + + correct SPC-6 proposed version number [-->0xd] + +2023-02-10 Douglas Gilbert <dgilbert@interlog.com> + + cleanup for previous commit [add smartctl support + for SCSI General statistics and performance log page]. + +2023-02-10 Douglas Gilbert <dgilbert@interlog.com> + + add smartctl support for SCSI General statistics and + performance log page. Add a little more RSOC work (see + 2023-01-11 patch) for detecting if SCSI log subpages + are supported. Change NULL to nullptr in scsi*.cpp + source files. + +2023-02-09 Douglas Gilbert <dgilbert@interlog.com> + + address issue #168 from smt/smt at github. Choose option 1. + from Christian's response to that issue. + +2023-02-05 Christian Franke <franke@computer.org> + + configure.ac: Define _FORTIFY_SOURCE=3 if supported. + + dev_intelliprop.cpp: Disable '-d intelliprop,N' and print + deprecation message. + Add '-d intelliprop,N,force' to use this device type anyhow. + dev_interface.cpp: Update help text. + smartctl.8.in, smartd.conf.5.in: Update related documentation. + +2023-02-03 Christian Franke <franke@computer.org> + + nvmecmds.cpp: Fix segfault after read of NVMe error log on + big endian hosts (GH issues/172, regression from r5121). + + Thanks to Niklas Schnelle for the bug report. + +2023-01-28 Christian Franke <franke@computer.org> + + configure.ac: Change default for '--with-nvme-devicescan' to + 'yes' on Darwin and FreeBSD. Keep 'no' on NetBSD. + Update related warnings. + + configure.ac: Remove unneeded 'if'. Update some message texts. + Remove '--without-update-smart-drivedb' error message. + + configure.ac: Move C++ option check to make sure that C++11 is + enabled before __USE_MINGW_ANSI_STDIO check. + + configure.ac: Enhance __USE_MINGW_ANSI_STDIO support check. + Don't define __USE_MINGW_ANSI_STDIO if already predefined. + + configure.ac: Rework C++ option check, also warn if C++17 is + unsupported. + +2023-01-26 Christian Franke <franke@computer.org> + + examplescripts/Example7: Fix check of parameter count + (GH issues/169). + +2023-01-24 Christian Franke <franke@computer.org> + + drivedb.h: + - Phison Driven SSDs: SVM2S46128GNPI51UF (#1393), + Goodram IRDM PRO (#1556). + - Phison Driven OEM SSDs: SPCC Solid State Disk/SBFMT1.3. + - SSSTC ERX GD/CD Series SSDs: Rename, Add ER3-9, AF* (#1599, #1672). + - USB: HP Personal Media Drive (0x03f0:0x070c) (#1680). + - USB: Packard Bell Carbon (0x0766:0x0017) (#1325) + - USB: Freecom FHD-2 Pro (0x07ab:0xfc85). + - USB: JMicron newer firmware (0x152d:0x2509/0x0107) (GH issues/159). + - USB: PNY (0x154b:0x8001). + +2023-01-23 Christian Franke <franke@computer.org> + + utility.cpp: Add MinGW-w64 version to '-V' output. + Simplify detection of C++ version string, add C++20. + + scsiata.cpp: Add '-d usbasm1352r,N' device type for ASM 1352R USB + bridges (GH issues/167). + dev_interface.cpp: Update help text. + smartctl.8.in, smartd.conf.5.in: Document new option. + + scsiata.cpp: Use 'str_starts_with()' and 'set_err_np()' where + possible. + +2023-01-11 Douglas Gilbert <dgilbert@interlog.com> + + experiment with using the SCSI REPORT SUPPORTED OPERATION + CODES (RSOC) command on disks (not tape units) that report + SPC-4 or later compliance in their standard INQUIRY response. + The main usage currently is to use RSOC to find out if + either of the READ DEFECT commands are supported. The code + to check RSOC is only wired for smartctl (i.e. not smartd). + If this causes problems, please report them to me. + +2023-01-10 Douglas Gilbert <dgilbert@interlog.com> + + address smartctl SCSI json issue (exception) reported by + Taylor Vent to the smartmontools mailing list on 2023-01-09. + Plus some minor cleanups. + +2023-01-10 Douglas Gilbert <dgilbert@interlog.com> + + further cleanup associated with SCSI debug move. + +2023-01-07 Douglas Gilbert <dgilbert@interlog.com> + + fix regression around dStrHex compatibility with pout() call + introduced in previous commit. Credit to Christian Franke + for the C++11 (and later) solution using lambas. + +2023-01-02 Douglas Gilbert <dgilbert@interlog.com> + + start moving SCSI debug into scsi_pass_through_yield_sense() + in scsicmds.cpp . Previously was replicated across OS transports. + Add dStrHexFp() that writes to a FILE pointer; idea is to send + debug info to a file (rather than stdout/stderr and using + redirection). The 'is_ascii' argument of dStrHexFp() now takes + a negative value which strips off the leading address on hex + lines. That is easier to parse IMO. + +2023-01-01 Christian Franke <franke@computer.org> + + Happy New Year! Update copyright year in version info. + +2022-12-31 Christian Franke <franke@computer.org> + + smartd.cpp: Add '-M always' directive (#1018, GH issues/153). + If specified, warning reminder emails are sent upon each check. + smartd_warning.sh.in, os_win32/smartd_warning.cmd: Handle + SMARTD_NEXTDAYS=0. + smartd.conf.5.in: Document the new directive. + + smartd.cpp: Rework handling of warning reminder emails. + Add scoped enum. Limit '-M diminishing' delay to 32 days. + smartd.conf.5.in: Document the new limit. + +2022-12-17 Christian Franke <franke@computer.org> + + json.cpp: Don't print JSON strings in UTF-8 if invalid sequences are + present. Print informal hex string "\\xXX" for unexpected chars. + +2022-12-16 Christian Franke <franke@computer.org> + + os_linux.cpp: Disable '-d marvell' and print deprecation message. + Add '-d marvell,force' to use this device type anyhow. + smartctl.8.in, smartd.conf.5.in: Update '-d marvell' documentation. + + os_linux.cpp: Use 'set_err_np()' where possible. + + dev_interface.cpp, dev_interface.h: Add 'set_err_np()'. + +2022-12-05 Christian Franke <franke@computer.org> + + smartctl.8.in: Fix '-d sssraid' documentation syntax. + smartd.conf.5.in: Add '-d sssraid' documentation. + + os_linux.cpp: Build fix for r5420. + +2022-12-05 Steven Song <steven.song@3snic.com> + + Add SSSRAID (3SNIC RAID Controller) support on Linux (#1653). + +2022-11-22 Christian Franke <franke@computer.org> + + os_win32.cpp: Decode Windows 10 and 11 22H2 build numbers. + +2022-11-09 Christian Franke <franke@computer.org> + + drivedb.h: + - Phison Driven SSDs: Kingston SSDNow S200 (#1491), + Patriot Burst *GB (#1664). + - Silicon Motion based SSDs: Kingston KC600 mSATA (#1442). + - Silicon Motion based OEM SSDs: KingSpec KSM. + - USB: VIA VL717 (0x2109:0x0717) (GP/pull 151). + +2022-11-01 Christian Franke <franke@computer.org> + + drivedb.h: + - Intel 730 and DC S35x0/3610/3700 Series SSDs: *C variant (#1655), + *E (Dell Europe) variant (#1647). + - Toshiba MG10ACA... Enterprise Capacity HDD. + +2022-10-17 Douglas Gilbert <dgilbert@interlog.com> + + https://github.com/smartmontools/smartmontools/pull/140 + which is related to issue 139 applied by hand with some cosmetic + changes. Credit to github user 'ThunderEX'. Cleans up possible + corruption issue with the the SCSI Error Counter and Non medium + Error log pages. + +2022-10-09 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: + - Extend Apacer SSDs regexp based on ticket #1657 + - Swap Bad_Blk_Ct_Erl/Lat values in drivedb for "Phison Driven SSDs" (#1642) + - Add Micron 5400 SSDs (#1630) + - Add WDC HC570/HC670 (#1648) + +2022-09-18 Christian Franke <franke@computer.org> + + os_win32.cpp: Add IOCTL_STORAGE_PROTOCOL_COMMAND for NVMe self-tests. + + Add NVMe self-test support to smartctl (#894). + Supported options: '-l selftest', '-t short', '-t long' and '-X'. + +2022-08-15 Christian Franke <franke@computer.org> + + ataprint.cpp: Print error count even if error log index is invalid. + +2022-08-07 Christian Franke <franke@computer.org> + + drivedb.h: + - Silicon Motion based SSDs: J&A LEVEN JS600 more sizes (#1603), + Mushkin MKNSSDTR*-3DL (#1596), TEAMGROUP CX2, Transcend 452K + (#1391), Transcent 830S, Transcend MTS400I (#1588), + UMAX 2242 (#1564). + - Silicon Motion based OEM SSDs: GUDGA GIM, KingFast + (#1532, GH pull/109), ORTIAL, RX7 (#1494), T-FORCE (#1536), + Verbatim Vi550 S3 (#1629). + +2022-08-06 Christian Franke <franke@computer.org> + + examplescripts/Example8: Use 'command -v' builtin instead of 'which'. + + Detect accidental use of smartd_warning script in '-M exec'. + smartd.cpp: Set SMARTD_SUBJECT to empty. + smartd_warning.sh.in, os_win32/smartd_warning.cmd: Abort if + SMARTD_SUBJECT is already nonempty. + + smartd.cpp, popen_as_ugid.cpp: Don't use 'getdtablesize()'. + This function is declared 'legacy' since SUS 1997 and no longer part + of POSIX since 2004. Use 'sysconf(_SC_OPEN_MAX)' instead. + This fixes build on android (GH issues/142). + +2022-08-06 themylogin <themylogin@gmail.com> + + smartd.cpp: Also prevent systemd unit startup timeout in + `CheckDevicesOnce` (GH pull/141). + +2022-08-06 Christian Franke <franke@computer.org> + + drivedb.h: + - Samsung based SSDs: SM843TN *960HCGP (#1624), PM881 + (GH/pull 119), more PM893 variants (#1616), PM897 (#1559). + - USB: Genesys Logic: Merge entries, add 0x05e3:0x2013. + - USB: ADATA SD600 (0x125f:0xa68a). + +2022-07-16 Douglas Gilbert <dgilbert@interlog.com> + + some spelling fixes with the help of the codespell utility + +2022-06-24 Douglas Gilbert <dgilbert@interlog.com> + + drivedb.h: + - WDC WUH722020BLE6L4 + +2022-06-07 themylogin <themylogin@gmail.com> + + smartd.cpp: Prevent systemd unit startup timeout when registering + many devices (GH pull/138). + +2022-05-30 Douglas Gilbert <dgilbert@interlog.com> + + [SCSI]: rework scsiGetIEString() so it should now output + all asc=0xb||0x5d strings defined in spc6r06.pdf . These + are the strings associated with "Informational Exceptions". + This should address ticket #1614 . + +2022-05-28 Douglas Gilbert <dgilbert@interlog.com> + + [SCSI]: more work for calling REPORT SUPPORTED OPERATION + CODES [RSOC] command. + +2022-05-27 Douglas Gilbert <dgilbert@interlog.com> + + [SCSI]: prepare for calling REPORT SUPPORTED OPERATION + CODES [RSOC] command (and several others that use an + additional "service action" code to identify them). For + SCSI devices >= SPC-4 plan to call the RSOC command and + cache its result. Use that cache to determine if + commands like GET PHYSICAL ELEMENT STATUS are supported. + +2022-05-26 Christian Franke <franke@computer.org> + + INSTALL: Update ./configure description and Windows info. + + Drop legacy ATA support for Solaris SPARC. + configure.ac: Fail if '--with-solaris-sparc-ata' is specified. + Makefile.am: Remove os_solaris_ata.s and os_solaris.h. + os_solaris.cpp: Remove WITH_SOLARIS_SPARC_ATA sections. + os_solaris_ata.s, os_solaris.h: Remove files. + INSTALL: Update documentation. + +2022-05-22 Christian Franke <franke@computer.org> + + drivedb.h: + - Phison Driven SSDs: Kingston RBU-SNSx180S3 (#1335, #1389) + - Phison Driven OEM SSDs: SPCC Solid State Disk/SBFD00.3 + - USB: Samsung Portable SSD T7 (0x04e8:0x4001) (GH pull/102) + - USB: Intrinsix (0x0578:0x0578) + - USB: Logitec LGB-4BNHUC (0x0789:0x0296) (GH pull/123) + - USB: Apricorn EZ-UP3 (0x0984:0x0320) (#1565) + - USB: ADATA ED600 (0x125f:0xa76a) (#1613) + - USB: ICY BOX IB-256WP (0x1e1d:0x20a0) + - USB: VIA VL700 (0x2109:0x0700) + + ataprint.cpp: Print Master Password ID if set to non-default value. + +2022-05-22 Eaton Zveare <eaton@eaton-works.com> + + ataprint.cpp: Add master_password_id to ata_security json output + (GH pull/134). + +2022-05-08 Gabriele Pohl <contact@dipohl.de> + + drivedb.h: + - Silicon Motion based SSDs: TS32GMSM360 (#1579) + - Seagate Enterprise Capacity 3.5 HDD: ST4000NM0245-1Z2107 + (#1592) Patch by Conrad Kostecki + +2022-05-08 Gabriele Pohl <contact@dipohl.de> + + drivedb.h: + - Crucial/Micron Client SSDs: CT4000MX500SSD1 (#1610) + - Western Digital Gold: WDC WD161KRYZ-01AGBB0 (#1608) New family + variant 'CMR' dropped, entry moved to 'Western Digital Gold' and + patterns from file product-brief-wd-gold-hdd.pdf also added there. + +2022-05-02 Gabriele Pohl <contact@dipohl.de> + + drivedb.h: + - Western Digital Ultrastar (He10/12): WDC WD120EDAZ-11F3RA0 (#1409) + - Western Digital Ultrastar (He10/12): WDC WD80EDAZ-11TA3A0 (#1455) + - Western Digital Gold (CMR): WDC WD161KRYZ-01AGBB0 (#1570) + +2022-05-01 Gabriele Pohl <contact@dipohl.de> + + drivedb.h: + - Silicon Motion based SSDs: TS128GMSA370I (#1554) + - Western Digital Red: WDC WD160EMFZ-11AFXA0(#1469) + - Western Digital Red: WDC WD140EFFX-68VBXN0 (#1477) + +2022-05-01 Christian Franke <franke@computer.org> + + cppcheck.sh: Suppress getpw*Called, getgr*Called, remove ftimeCalled. + Add *_RELEASE_* defines to silence ConfigurationNotChecked. + + configure.ac: Add URL to AC_INIT, remove PACKAGE_HOMEPAGE. + Require autoconf >= 2.64. + Replace PACKAGE_HOMEPAGE with PACKAGE_URL in all files. + +2022-04-30 Christian Franke <franke@computer.org> + + INSTALL: Update info about MSVC builds. + + os_win32/vc14, os_win32/vc15: Drop project files for MSVC14/15. + + Makefile.am: Update config-vc and *clean-vc targets for MSVC16/17. + + os_win32/vc17: Copy from vc16 and change for MSVC17 (VS2022). + + os_win32/vc16/*: Add configurations Debug-static and Release-static. + + Makefile.am: Windows: Ensure that advapi32 is linked before kernel32. + This keeps backward compatibility with old versions of Windows if + recent versions of MinGW-w64 are used. + + Makefile.am: config-vc: Remove HAVE___INT128 from generated config.h. + + Makefile.am: Support 'svnversion' with CR/LF instead of LF output. + + dev_jmb39x_raid.cpp: Enhance LBA range from 33-62 to 1-255 (#1594). + smartctl.8.in: Update related documentation. + +2022-04-27 Gabriele Pohl <contact@dipohl.de> + + drivedb.h: + - Western Digital Ultrastar He10/12: WDC WD140EDGZ-11B2DA2, + WDC WD140EDGZ-11B1PA0 (#1585) + - Western Digital Purple (Pro): WDC WD121PURP-85B5SY0 (#1587) + +2022-04-26 Gabriele Pohl <contact@dipohl.de> + + drivedb.h: + - Samsung based SSDs: SAMSUNG MZ7L33T8HBLT-00A07 (#1563) + - Samsung based SSDs: SAMSUNG MZ7L3240HCHQ-00A07 (#1555) + - WD Blue / Red / Green SSDs: WDC WDS400T1R0A-68A4W0 (#1601) + +2022-04-25 Gabriele Pohl <contact@dipohl.de> + + drivedb.h: + - Western Digital Black: WDC WD4005FZBX-00K5WB0 (#1582) + - Western Digital Red: WDC WD40EFZX-68AWUN0 (#1583) + - Western Digital Red: WDC WD20EFZX-68AWUN0 (#1589) + +2022-04-24 Christian Franke <franke@computer.org> + + drivedb.h: Innodisk 1IE3/3IE3/3ME3/3IE4/3ME4 SSDs: Ensure that + opening and closing brackets are in the same line (#1495). + + update-smart-drivedb.in: Unify syntax of command substitutions. + + update-smart-drivedb.in: Don't use 'let' which is bash specific. + + update-smart-drivedb.in: Don't use semicolon in sed scripts. + This also fixes a syntax error if sed requires ';' before '}'. + +2022-04-23 Gabriele Pohl <contact@dipohl.de> + + drivedb.h: + - Western Digital Gold: WDC WD1005VBYZ-02RRWB2, WDC WD2005VBYZ-02RRWB2 (#938) + - Western Digital Gold: WDC WD140EDFZ-11A0VA0 (#1394) + +2022-04-22 Gabriele Pohl <contact@dipohl.de> + + drivedb.h: + - Marvell based SanDisk SSDs: SanDisk SDSSDH3 1T00 (#1590) + - Merge two entries into new group 'Seagate IronWolf (Pro) 125 SSDs' + +2022-04-22 Christian Franke <franke@computer.org> + + smartctl.cpp: Add 'smartctl.pre_release' boolean to JSON output. + + drivedb.h: + - Phison Driven SSDs: PNY ELITE (#1573) + - USB: PNY (0x154b:0xf009) (#1573) + +2022-04-22 Felix Buehl <felix.buehl@febit.systems> + + drivedb.h: + - Seagate IronWolf 125 SSDs (#1584) (GH pull/131) + +2022-04-17 Gabriele Pohl <contact@dipohl.de> + + drivedb.h: + - USB: Buffalo MiniStation Cobalt drive (0x0411:0x0157) (#1597) + - Phison Driven SSDs: KINGSTON SM2280S3G2120G (#989) + +2022-03-28 Douglas Gilbert <dgilbert@interlog.com> + + os_linux.cpp [Linux only]: remove support from generic part + for the SCSI_IOCTL_SEND_COMMAND ioctl. Default to the SG_IO_V3 + interface which is now (lk 5.17, 2022) much more widely + supported. The SCSI_IOCTL_SEND_COMMAND ioctl is still in + the Linux kernel but has been deprecated for a long time. + Some old vendor specific code still uses that ioctl, two + instances: m_escalade_type==AMCC_3WARE_678K and -d marvell + +2022-03-04 Christian Franke <franke@computer.org> + + configure.ac: Add "pre-" also on man pages. + + smartd.8.in: Attribute logs use local time since smartmontools 7.1. + + smartctl.8.in, smartd.conf.5.in, update-smart-drivedb.8.in: + Remove EXPERIMENTAL notes for features added before 7.2. + +2022-03-02 Christian Franke <franke@computer.org> + + do_release: Add '--nocheck' option. + Changes build command from 'make distcheck' to 'make dist'. + + do_release: Add '--checkout' option. + Checks out a new working copy suitable for releases. + +2022-03-01 Christian Franke <franke@computer.org> + + do_release: Comment out release timestamp in configure.ac + immediately after release. + Rework increase of release number. Remove usage of perl. + Ensure that only the number in the AC_INIT line is changed. + + configure.ac: Comment out release timestamp. + Set related environment vars only if timestamp is set. + utility.cpp: Add "pre-" or "pre-release" if release + timestamp is not set. Don't print empty timestamp. + +2022-02-28 Douglas Gilbert <dgilbert@interlog.com> + + utility.cpp: the previous patch bumped the version number + to 7.4 which probably won't be released for another + 10 to 12 months. Alter the product strings to add either + "pre-release" or just "pre-" in front of release to help + stop users thinking they are using (released) version 7.4 + until it actually is released. + N.B. When the release actually is performed, this patch + should be reversed (and then put back in after the release, + for the next cycle). + +2022-02-28 Christian Franke <franke@computer.org> + + smartmontools 7.3 + +2022-02-27 Douglas Gilbert <dgilbert@interlog.com> + + scsicmds.cpp scsiprint.cpp and others: route all SCSI pass + through calls in scsicmds.cpp via the renamed function: + scsi_pass_through_yield_sense() which will absorb up to + three pending Unit Attentions [see ticket 179]. Use + aggregate initialization (e.g. 'uint8_t b[32] = {};') to + bypass the need for many memset() calls. + +2022-02-26 Douglas Gilbert <dgilbert@interlog.com> + + ataprint.cpp: add suggestion when 'Read Device Identity + failed: xxx' error generated to look at + --device-type=TYPE variants. May help with USB-C connected + NVMe enclosures (e.g. with M-2 modules inside) + +2022-02-26 Christian Franke <franke@computer.org> + + configure.ac: Print 'deprecated' warning for '--with-signal-func'. + +2022-02-25 Douglas Gilbert <dgilbert@interlog.com> + + NEWS: update for changes in previous commit + +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 + drivedb.h updates. + + Create new branch RELEASE_7_3_DRIVEDB. + +2022-02-22 Christian Franke <franke@computer.org> + + os_win32/update-smart-drivedb.ps1.in: Set console encoding. + Otherwise redirection to gpg occasionally starts with a BOM. + + os_win32/update-smart-drivedb.ps1.in: Unify path syntax. + + do_release: Update code signing key id. + + smartd.cpp: Ensure that '--warn-as-user=restricted' failure is + visible in syslog. + + smartd.cpp: Add '-q *nodev0*' option variants. + These change the exit status to 0 if there are no devices + to monitor. + smartd.8.in: Document new functionality. + +2022-02-20 Douglas Gilbert <dgilbert@interlog.com> + + smartctl.cpp, scsiprint.cpp: implement the change to + TapeAlert handling documented in the previous commit. + Add --log=tapealert option to explicitly fetch the + Tape Alert log page. Tweak some tape-specific formatting. + +2022-02-19 Douglas Gilbert <dgilbert@interlog.com> + + smartctl.8.in: proposed change to TapeAlert handling. No code + has changed, just the smartctl manpage. Please review. If + rejected just reverse this commit. + +2022-02-19 Christian Franke <franke@computer.org> + + drivedb.h: + - Phison Driven (OEM) SSDs: Remove duplicate options. + - SK hynix SATA SSDs: S31 (#1517), SC210 *3AMNB*, SC300 *32MND*, + SC313 HFS*, SC401, SH920. + - Western Digital Ultrastar DC HC530: WUH721414ALE604 (#1458). + - Western Digital Ultrastar DC HC550: More variants (#1547). + - Western Digital Ultrastar DC HC560 (#1548). + - Western Digital Ultrastar DC HC650 (#1549). + - Western Digital Red Pro: WD102KFBX (#1543). + - Western Digital Gold: WD141KRYZ (#1433, #1470). + +2022-02-18 Christian Franke <franke@computer.org> + + 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). + + configure.ac, Makefile.am: Add '--with-drivedbinstdir' option. + update-smart-drivedb.in: Add '--install' option. + update-smart-drivedb.8.in: Document new functionality. + smartctl.8.in, smartd.8.in: Adjust path names. + +2022-02-16 Douglas Gilbert <dgilbert@interlog.com> + + smartctl.cpp: add new --log=tapedevstat to print out SCSI + Tape (SSC) Device Statistics log page. '-a' does not include + this log page, but '-x' does. May add new --log= option + soon (probably 'tapealert' which must be invoked explicitly); + manpage needs updating + +2022-02-09 Alex Samorukov <samm@os2.kiev.ua> + + Remove cppcheck 2.7 warning as we are using it now on our CI builds + +2022-02-02 Christian Franke <franke@computer.org> + + update-smart-drivedb.in: Fix regexp quoting. + + os_linux.cpp: Enhance device scan range to '/dev/sdzz'. + smartd.8.in: Update related documentation. + +2022-02-01 Christian Franke <franke@computer.org> + + autogen.sh: automake 1.16.3-5 work. + + os_win32/update-smart-drivedb.nsi: Remove, no longer used. + Makefile.am: Remove related targets. + + os_win32/installer.nsi: Install update-smart-drivedb.ps1. + Delete update-smart-drivedb.exe. Remove outdated delete commands. + + os_win32/update-smart-drivedb.ps1.in: New drivedb.h update script. + It verifies the downloaded drive database with GnuPG (#752). + Makefile.am: Add new file. + +2022-01-29 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: fix issue with Zoned block device + statistics lpage specific to the WDC DC HC650 + SAS ZBC disk. Visible with smartctl -x + +2022-01-28 Douglas Gilbert <dgilbert@interlog.com> + + scsicmds.cpp,scsiprint.cpp: the "Long (extended) + Self-test duration" at the end of smartctl -a output + comes from a 16 bit field holding seconds. If the + value is 0xffff the spec now says to consult the + Extended Inquiry VPD page which has a similar field + but the unit is minutes. Tweak the output if the + duration exceeds 14400 seconds: calculate hours + in brackets [normally minutes]. Reason: my 20 TB + disk reports 38.7 hours to do a long self-test! + +2022-01-16 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: my tape drive gives a nuisance TapeAlert + warning after each power cycle. With '-xj' output this + leads a JSON array with a lot of 'null' entries. Change + the JSON indexing so it is compact and add a + 'descriptor_idx' attribute if the position is important + to the end user. In the case of TapeAlert the relative + position is the degree of seriousness. Change TapeAlert + 'code' name to 'parameter_code'. + +2022-01-16 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: small cleanup on (tape) device + statistics lpage (plain and json) + +2022-01-09 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp, add smartctl -x output (plain+json) for + the (tape) device statistics lpage and the Zoned block + device statistics lpage. Listed under -l background + option (may need new option(s)). + +2022-01-14 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: Add xerrorlba flag to the WD Caviar Black (#1558) family + smartd.service: add comment about virtualisation + +2022-01-09 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp, scsicmds.h/.cpp: do some preliminary + work to fetch the Zoned block device characteristics + VPD page if it is present + +2022-01-08 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: adjust json::str2key() calls as requested + +2022-01-08 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: add json for the Start stop cycle counter + log page. Rejig some of the other SCSI json. + +2022-01-07 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: remove jsonify_name() and use + json::str2key() where required. No user space + visible changes. + +2022-01-07 Alex Samorukov <samm@os2.kiev.ua> + drivedb.h: + - Add L3 EVO SSD (#1354) + - Add INTEL SSDSCKKF512G8 SATA 512GB (#1244) + - Extend regexp for the Sandisk SD9SB8W series (#1112) + +2022-01-06 Christian Franke <franke@computer.org> + + 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'. + +2022-01-06 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: + - SanDisk SSD PLUS 2000GB/UP4504RL (#1503) + - Western Digital PiDrive Foundation Edition (#1007) + - Fixed Supermicro SATA DOM (SuperDOM) entry (#1380) + - Extended regexp to support WDC WD40NDZM-59A8KS1 (#1474) + - Seagate FreePlay HDD (#1405) + +2022-01-05 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: prefix most SCSI specific JSON + top level names with 'scsi_'. Add SCSI self + test JSON plus a few corrections. + +2022-01-05 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: add Lexar 128GB SSD (#1529) + +2022-01-05 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: first cut at adding json to the + self-test log page. + scsicmds.h/.cpp: add scsi_get_sense_key_str() + helper to fetch SCSI sense key as a C string + +2022-01-04 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: printf() spotted in + scsiPrintPendingDefectsLPage() by Yannick Hemery. + Changed to jout(). + +2022-01-03 Douglas Gilbert <dgilbert@interlog.com> + + utility.h: overload jsonify_name() to take a C + string or a std::string. Use in scsiprint.cpp + to add more json support. + +2022-01-03 Christian Franke <franke@computer.org> + + json.h: Allows one to use std::string for object keys. + +2022-01-02 Douglas Gilbert <dgilbert@interlog.com> + + utility.h: add free functions jsonify_name() and + jsonify_name_s() to lessen the repetition of names + that are very similar. May not save code but reduces + the chance of naming errors. Use jsonify_name() in + scsiprint.cpp as use of concept. + +2022-01-01 Christian Franke <franke@computer.org> + + Happy New Year! Update copyright year in version info. + +2022-01-01 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: add more json support: SAS transport + settings (partial) and some tape drive. Please review. + +2021-12-29 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: add more json support: logical_unit_id, + protection_type and lb_provisioning + +2021-12-29 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: applied patch proposed by Yannick Hemery at: + https://github.com/yhemery/smartmontools/commit/ + cf8462bbf395386c239ea587a26777f2de44f8d6 [note: that url has + been line wrapped]. It is to cope with a Samsung SAS SSD that + considers the "Supported log pages" log page [0x0,0x0] and + the "Supported log pages and subpages" log page [0x0,0xff] + as two sub-inventories that must be merged (i.e. a set + union) rather than [0x0,0xff] being a superset of [0x0,0x0]. + Samsung seems to be alone in that interpretation. + +2021-12-21 Douglas Gilbert <dgilbert@interlog.com> + + 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 + various min/max values. Manpage has not been updated as this + may not be the best way to hook this in. + +2021-12-21 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: fix listing of subpages as proposed by Yannick + Hemery <yannick.hemery@corp.ovh.com> in smt's github pull/122 + +2021-12-18 Christian Franke <franke@computer.org> + + smartd.cpp: Windows: Add new option '--warn-as-user=restricted'. + If specified, the warning script is run with a restricted access + token. + + os_win32/popen_win32.cpp, os_win32/popen.h: Add new functions + 'popen_as_restr_user()' and 'popen_as_restr_check()' and a TEST + program. + + smartd.8.in: Document new functionality. + +2021-12-16 Christian Franke <franke@computer.org> + + smartd.cpp: Add new option '--capabilities=mail'. + It initializes the capability bounding set for the exim MTA. + This is based on 'smartmontools-7.2-capnotify.patch' from the + Fedora Package (Red Hat Bugzilla 1954015). + + No longer suppress mail notification if '--capabilities' is used. + Log a related hint instead if the warning script fails. + + smartd.8.in: Document new functionality. + +2021-12-15 Christian Franke <franke@computer.org> + + smartd.cpp: Allow use of '--warn-as-user' with '--capabilities'. + +2021-12-13 Christian Franke <franke@computer.org> + + smartd.cpp: Add ability to run warning script as non-privileged user. + 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 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 + POSIX API. + + smartd.8.in: Document new functionality. + +2021-12-12 Christian Franke <franke@computer.org> + + update-smart-drivedb.in: Add usage error messages, add '-h' option. + +2021-12-11 Christian Franke <franke@computer.org> + + update-smart-drivedb.in: Allow a directory in the argument of '-t'. + + update-smart-drivedb.in: Add missing long options. + + update-smart-drivedb.in: Allow update from local files or other URLs. + Location could be specified with new options '--file' and '--url' + (#1426). Check VERSION information to prevent downgrades. + Allow override with new option '--force'. + update-smart-drivedb.8.in: Document new functionality. + + update-smart-drivedb.in: Rename some variables. + +2021-11-29 Christian Franke <franke@computer.org> + + smartctl.cpp: Fix possible buffer overflow (#1546). + An overflow of 1-2 bytes occurred only if the '-n' option + was specified with an invalid argument. + +2021-11-28 Christian Franke <franke@computer.org> + + smartd.cpp: Fix write of ATA attributes to state files. + Regression from r5256. + +2021-11-27 Christian Franke <franke@computer.org> + + smartd.cpp: Don't write 'smartd -D' output to syslog on syntax error. + + smartd.cpp: Add ability to specify different check intervals (#336). + The new directive '-c i=N, -c interval=N' overrides the command line + option '-i N, --interval=N' for specific devices. + smartd.8.in, smartd.conf.5.in: Document new directive. + + smartd.cpp: Use some C++11 features. + + smartd.cpp: Add missing 'CloseDevice()' after NVMe error. + +2021-11-24 Alex Samorukov <samm@os2.kiev.ua> + + megaraid (Linux, FreeBSD): relax RAID matching for the LSI PERC RAID + controller. Reported by alex@alexburke.ca. + drivedb.h: add "PLEXTOR PX-512M8VC +" (GH #108) + +2021-11-23 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: extend Intel regexp to support S4520 (GH #112) + +2021-11-22 Alex Samorukov <samm@os2.kiev.ua> + + os_freebsd.cpp: initial support of the direct MegaRaid access using + '-d megaraid' option. Code is initially based on Linux version but adopted to + be compatible with FreeBSD IOCTL-s. + +2021-11-13 Christian Franke <franke@computer.org> + + smartctl.8.in, smartd.8.in: Remove EXPERIMENTAL notes for features + added before 7.1. + + 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. + +2021-11-08 Yannick Hemery <yannick.hemery@corp.ovh.com> + + scsicmds.cpp: Retry on UNIT ATTENTION when fetching capacity (#1303). + + If a UNIT ATTENTION is raised when READ CAPACITY (16) is called, + smartctl might wrongly assume that the drive only supports READ + CAPACITY (10), and return an invalid drive size / block size as a + result. + +2021-11-06 Christian Franke <franke@computer.org> + + update-smart-drivedb.in: Add '-q' option to suppress info messages. + (GH issues/110). + update-smart-drivedb.8.in: Document new option. + + update-smart-drivedb.in: Stop the gpg-agent started by gpg. + Retry if removal of temp gpg home directory fails. + This prevents dangling agents and temp directories on NFS (#1542). + +2021-11-01 Christian Franke <franke@computer.org> + + os_linux.cpp: Add missing permission bits to mknod() calls. + This fixes access to '-d aacraid' and '-d megaraid' devices from + smartd if '--capabilities' is used (GH issues/113). + Thanks to Michal Hlavinka for finding the root of the problem. + +2021-10-31 Christian Franke <franke@computer.org> + + os_win32.cpp: Decode Windows 10, 11 and Server 2022 21H2 build + numbers. + +2021-10-23 Christian Franke <franke@computer.org> + + Don't pass possible command escapes to the 'mail' command (#1535). + + The 'mail' command from GNU mailutils < 3.13 processes '~! COMMAND' + even if used non-interactively (https://savannah.gnu.org/bugs/?60937). + + smartd.cpp: Sanitize device identify information which is passed to + SMART_DEVICEINFO environment variable and written to syslog. + + smartd_warning.sh.in: Abort script if a message line begins with a + possible command escape. + + Thanks to 0x3l leox14@protonmail.com for reporting this security issue. + +2021-09-14 Christian Franke <franke@computer.org> + + drivedb.h: + - Silicon Motion based SSDs: Mushkin Source-II (#1509). + - Western Digital Ultrastar DC HC550 (#1460). + - Toshiba MG08ACA... Enterprise Capacity HDD: 14TB. + - Toshiba N300/MN NAS HDD: Rename, add HDWG480, + - Seagate BarraCuda 3.5 (SMR): Attribute 9. + - Seagate IronWolf: Attribute 240. + MN series (#1510, #1511). + - USB: LaCie d2 PROFESSIONAL (0x059f:0x10b8) (#1502). + - USB: JMicron JMS576 (0x152d:0x0576) (#1428). + +2021-09-04 Christian Franke <franke@computer.org> + + os_win32.cpp: Disable broken aacraid support until #1515 is fixed. + Print explanatory error message. Add 'force' flag to try anyway. + +2021-08-27 Christian Franke <franke@computer.org> + + os_win32.cpp: aacraid: Fix crash on transfer size > 880 bytes (#1515). + +2021-08-21 Christian Franke <franke@computer.org> + + os_win32.cpp: Decode Windows 10 21H1 build number. + + configure.ac: Add '-Werror=return-type' if supported. + G++ >= 8.0 assumes that control never reaches the end of a + non-void function (GCC Bugzilla 96181). + +2021-06-26 Christian Franke <franke@computer.org> + + ataidentify.cpp, ataprint.cpp: ACS-5 enhancements. + + ataprint.cpp: Don't set bit 2 of exit status if ATA output registers + are missing but attributes are available (#1441, GH issues/98). + +2021-06-06 Christian Franke <franke@computer.org> + + drivedb.h: + - Crucial/Micron Client SSDs: MTFDDAK256TDL-* (#1490). + - Innodisk 1IE3/3IE3/3ME3/3IE4/3ME4 SSDs: Rename, add 1IE3, 3IE4. + - Samsung based SSDs: 870 EVO, 860 QVO (#1457), + 883 DCT 1.92/3.84TB (#1452), CM871 MZ7LF192HCGS (#1475), + PM841 MZMTD128HAFV, PM851 MZNTE512HMJH (GH issues/87). + - SSSTC ER2 GD/CD Series SSDs: *A variant (#1484). + - Xmore Industrial SATA SSDs (based on patch from #1364). + - Toshiba MG09ACA... Enterprise Capacity HDD. + +2021-06-04 Christian Franke <franke@computer.org> + + Rework 'get_timer_usec()', use a C++11 clock if possible. + dev_interface.cpp, dev_interface.h, os_win32.cpp: Move function ... + utility.cpp, utility.h: ... to here. + configure.ac: Remove related checks. + + ataprint.cpp, nvmeprint.cpp: Add JSON values 'smart_support.*' to + keep consistency with scsiprint.cpp. + +2021-05-02 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: continue JSON work + +2021-04-14 Phillip Schichtel <phillip@schich.tel> + + os_linux.cpp: Only require '-d cciss,N' if hpsa devices are in + RAID mode. + +2021-04-09 Alex Samorukov <samm@os2.kiev.ua> + + os_openbsd.cpp: fix SAT autodetection for the sd* devices (#1467) + +2021-03-24 Martin Ziemer <horrad@horrad.de> + + os_openbsd.cpp: Apply conversion to seconds for timeouts in + scsi_pass_through (#1466). + + os_openbsd.cpp: Use correct devicename for autodetection (#1465). + +2021-03-08 Christian Franke <franke@computer.org> + + drivedb.h: + - Toshiba MG04ACA... Enterprise HDD: Rename, merge entries, + add *NY variant (GH issues/90). + - Toshiba MG05ACA... Enterprise Capacity HDD (#1327). + - Toshiba MG08ACA... Enterprise Capacity HDD. + - Toshiba N300 NAS HDD (#1143, #1236, #1251, #1323). + - Toshiba P300 (CMR): Rename. + - Toshiba P300 (SMR) (#1430). + - Toshiba X300: HDWF180 (#1277), 10-16TB. + +2021-03-02 Christian Franke <franke@computer.org> + + smartd_warning.sh.in: Fix handling of multiple email addresses + in conjunction with plugin scripts (#1454). + Pass modified SMARTD_ADDRESS also to all plugin scripts. + Provide original value as SMARTD_ADDRESS_ORIG. + Exit immediately if a script is missing. + smartd.conf.5.in: Document error handling and SMARTD_ADDRESS_ORIG. + +2021-02-14 Alex Samorukov <samm@os2.kiev.ua> + + os_darwin.cpp: implement APM set feature, based on hdparm macOS sources + +2021-02-09 Christian Franke <franke@computer.org> + + configure.ac: Include required library functions in check for + '-fstack-protector' (#1439). + + Print drive database version in smartctl and smartd. + knowndrives.cpp, knowndrives.h: Parse VERSION string. + ataprint.cpp: Print version. Remove '-P showall' help string. + smartd.cpp: Print version. + +2021-02-07 Christian Franke <franke@computer.org> + + Makefile.am: 'check' target now also checks the built-in database. + + smartctl.cpp: Fix 'optopt' range check + (cppcheck 2.3: invalidFunctionArg). + + scsiprint.cpp: Silence cppcheck 2.3 'unreadVariable' warning. + + scsiata.cpp: Remove unused function 'has_usbcypress_pass_through()'. + + Improve reproducibility if SOURCE_DATE_EPOCH if set (GH pull/89). + configure.ac: Define SOURCE_DATE_EPOCH in CPPFLAGS. + utility.cpp: Print SOURCE_DATE_EPOCH value if specified. + Don't include configure arguments then. + cppcheck.sh: Silence related 'ConfigurationNotChecked' message. + + Always add timestamp to JSON output (#1436). + Move non-JSON timestamp output to common function. + +2021-02-01 Christian Franke <franke@computer.org> + + Silence more cppcheck 2.3 warnings. + + Add C++11 'override' specifier where applicable (cppcheck: missingOverride). + + os_freebsd.cpp, os_linux.cpp: Replace deprecated bcopy() and bzero() + (cppcheck: bcopyCalled, bzeroCalled). + + cppcheck.sh: Add '-c' option. + Remove suppress: bcopyCalled, bzeroCalled, missingOverride. + Mark cppcheck 1.86, 2.2 and 2.3 as tested. + + json.h: suppress cppcheck: noExplicitConstructor. + + ataprint.cpp, ataprint.h, smartctl.cpp: Optionally exit immediately + if '-n POWERMODE' option is not supported (#1381). + smartctl.8.in: Document new STATUS2 Parameter for '-n POWERMODE'. + +2021-01-27 Christian Franke <franke@computer.org> + + json.cpp, json.h: Add support for nested braced-init-lists. + + json.cpp, json.h: Use some C++11 features. Align output functions. + +2021-01-24 Christian Franke <franke@computer.org> + + ataprint.h, nvmeprint.h, scsiprint.h: Use C++11 in-class member + initializers. + + Drop C++98 restriction, allow C++11. + configure.ac: Enable C++11. Fail if no option found. + Disable C++14 if possible. Warn if no C++14 option found. + + configure.ac: Remove defunct '--with-working-snprintf'. + + scsiprint.cpp: Reduce scope of 'powerlimit' + (cppcheck 1.85: variableScope). + +2021-01-24 Simon Fairweather <simon.n.fairweather@gmail.com> + + scsiprint.cpp: Move VPD page process to after new powermode processing + added in r5131 to resolve #1413 of Seagate drives spinning up when + -n standby is selected. Simplify code for VPD pages. + +2021-01-23 Christian Franke <franke@computer.org> + + Makefile.am: Enhance config-vc and *clean-vc targets for MSVC15/16. + + os_win32/vc16: Copy from vc15 and change for MSVC16 (VS2019). + + os_win32/vc15: Copy from vc14 and change for MSVC15 (VS2017). + + os_win32/vc14/smart*.vcxproj*: Add missing files. + Suppress warnings for regex/regex.c. + +2021-01-20 Christian Franke <franke@computer.org> + + ataprint.cpp, ataprint.h, smartctl.cpp: Rework sct_erc variables. + Fix handling of '-l scterc*,p' if both get and set are used. + + smartctl.cpp: Change '-l scterc,r' to '-l scterc,reset'. + Make ',p' case sensitive. Simplify parsing of 'scterc...'. + smartctl.8.in: Change documentation accordingly. + +2021-01-17 Christian Franke <franke@computer.org> + + drivedb.h: + - Bump branch VERSION to 7.3. + - USB: Realtek RTL9211 (0x0bda:0x9211, 0x2eb9:0x9211). + - USB: ASMedia ASM2362 (0x174c:0x2362). + + scsinvme.cpp: Add '-d sntasmedia' device type for ASMedia ASM2362 + USB to NVMe bridges (#1221). + dev_interface.cpp: Update help text. + smartctl.8.in, smartd.conf.5.in: Document new option. + + Thanks to Demian from Sabrent. + +2021-01-15 Christian Franke <franke@computer.org> + + smartctl.8.in: Add EXPERIMENTAL note for new '-l scterc' variants. + +2021-01-15 Jeremy Bauer <jeremy.bauer@wdc.com> + + Add support for SCT Error Recovery Timer features added in ACS-4 + (#1427). + '-l scterc[,R,W],p' option gets/sets the persistent power-on values. + '-l scterc,r' option restores to the manufacturer's default values. + +2021-01-15 Zhenwei Pi <pizhenwei@bytedance.com> + + nvmeprint.cpp: Add bit 5 of SMART/Health 'Critical Warning' byte + (NVMe 1.4). + +2021-01-10 Christian Franke <franke@computer.org> + + drivedb.h: Add VERSION information to trunk and all branches (#1424). + +2021-01-06 Christian Franke <franke@computer.org> + + drivedb.h: + - Seagate BarraCuda 3.5: Split into ...(CMR) and ...(SMR). + - Seagate Exos 7E8 (#1415). + - Western Digital Blue (SMR): 4TB. + - USB: ADATA HV610 (0x125f:0xa21a) (#1417). + +2021-01-01 Christian Franke <franke@computer.org> + + Happy New Year! Update copyright year in version info. + +2020-12-30 Christian Franke <franke@computer.org> + + smartmontools 7.2 + +2020-12-30 Christian Franke <franke@computer.org> + + configure.ac, update-smart-drivedb.in: Use RELEASE_7_2_DRIVEDB for + drivedb.h updates. + + Create new branch RELEASE_7_2_DRIVEDB. + +2020-12-29 Christian Franke <franke@computer.org> + + drivedb.h: + - Micron 5100 Pro / 52x0 / 5300 SSDs: 5300HC. + - Samsung based SSDs: PM871 MZY* (#1384), 870 QVO (#1388). + - Silicon Motion based SSDs: ADATA IMSS332 (#1399), + ADATA SU650NS38 (#1386), JAJS600M1TB (#1414), NFN025SA31T. + - Silicon Motion based OEM SSDs: Dogfish, + Intenso portable (GH issues/81, GH pull/82), + Intenso Sata III (#1412), KingDian S280 (#1402). + - SK hynix SATA SSDs: SC300 (#1407). + - Hitachi Travelstar 5K500.B: *SA02 (#1408). + - Fix '-v' comments. Remove trailing whitespace. + + scsinvme.cpp: Realtek: Limit NVMe log transfer size to 512 bytes. + +2020-12-21 Christian Franke <franke@computer.org> + + smartctl.8.in: Add EXPERIMENTAL notes for SCSI variants of + '-n POWERMODE' and '-s standby,...'. Fix syntax. + + update-smart-drivedb.in: Add 'Accept-Encoding' HTTP header when + curl is used. This avoids caching problems with svn URL. + + update-smart-drivedb.in: Print output of 'gpg --import' if '-v' is + specified. + + update-smart-drivedb.in: Extend expiration year of current database + signing key from 2020 to 2025 (#1278). + +2020-12-20 Christian Franke <franke@computer.org> + + configure.ac: Use AC_CONFIG_HEADERS instead of obsolete + AC_CONFIG_HEADER. This silences a warning from new autoconf 2.70. + Print 'deprecated' warning for '--with-solaris-sparc-ata'. + + drivedb.h: + - Intel X25-E SSDs: IBM OEM (#1401). + - Seagate BarraCuda 3.5: 12TB + - Seagate Exos X16: 10TB (#1406, GH issues/63), 12TB. + - Seagate Archive HDD: Rename to ...(SMR) (#1392). + - Seagate BarraCuda, Enterprise Capacity, Exos, IronWolf: + Add attributes 18, 200. + - Seagate IronWolf Pro 125 SSDs (#1396). + - Unify indentation. + +2020-12-15 Douglas Gilbert <dgilbert@interlog.com> + + smartctl: expand -s option with standby,now and standby,off (or + standby,0) to include SCSI. Modified code from Simon Fairweather + found in github pull #72. As per my 20201205 patch, this + area (i.e. SCSI power conditions including START and STOP) needs + to be revisited; leave that until after the 7.2 release. + +2020-12-14 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: add Sony HD-E1B (#1410) + +2020-12-12 Alex Samorukov <samm@os2.kiev.ua> + + Add automake 1.16.2 to the list of tested versions + os_freebsd.cpp: number of minor patches from Christian Franke + +2020-12-05 Douglas Gilbert <dgilbert@interlog.com> + + smartctl: expand -n option to include SCSI. Code from Simon + Fairweather. Still thinking about how to handle SCSI "stopped" + state which requires the user to send a SCSI command to restart. + +2020-12-04 Christian Franke <franke@computer.org> + + nvmeprint.cpp: Print Log Page Attributes. Print NVMe 1.4 features. + + nvmecmds.cpp, nvmecmds.h, nvmeprint.cpp: Fix check for LPO support. + +2020-12-03 Christian Franke <franke@computer.org> + + nvmeprint.cpp: Print NVMe version. + + nvmecmds.cpp, nvmecmds.h, nvmeprint.cpp: Limit NVMe log transfer size + to one page. This should fix device or kernel crashes on '-l error' + if log has more than 64 entries (#1404, Debian Bug 947803). + + nvmeprint.cpp: Read only requested number of entries from NVMe + Error Information Log. + +2020-11-23 Christian Franke <franke@computer.org> + + 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> + + smartd.cpp: Add staggered self-tests (#310). + smartd.conf.5.in: Document new functionality. + +2020-11-17 Dmitriy Potapov <atomsk+oss@google.com> + + smartd.cpp: Don't write attrlog when device is skipped due to idle or + standby mode, or if attributes were not read for any other reason + (GH pull/75). + +2020-11-09 Christian Franke <franke@computer.org> + + smartd.cpp: Resolve symlinks before device names are checked for + duplicates (#1390). + dev_interface.cpp, dev_interface.h: Add 'get_unique_dev_name()' + and 'is_raid_dev_type()' to support platform specific modifications. + smartd.conf.5.in: Document new functionality. + +2020-11-07 Christian Franke <franke@computer.org> + + json.cpp, json.h: Add YAML support. + smartctl.cpp: Add '--json=y' option. + smartctl.8.in: Document new option. + + smartctl.8.in, smartd.conf.5.in: Remove EXPERIMENTAL notes for + features added before 7.0. + update-smart-drivedb.8.in: Add missing EXPERIMENTAL note. + +2020-11-01 Christian Franke <franke@computer.org> + + drivedb.h: + - Phison Driven SSDs: KINGSTON OM4P0S3* (#1374), OMSP0S3* (#1375). + - InnoDisk iCF 9000 / 1SE2 Cards: Rename entry. Add 1SE2 H (#1351). + - Marvell based SanDisk SSDs: 2TB SDSSDH3 (GH issues/67, GH pull/69), + WD Blue SSD WDS100T2B0A (#1378). + - SanDisk based SSDs: SDSA6GM*. + - Toshiba 2.5" HDD MK..76GSX/GS001A (GH pull/58). + - Toshiba L200 (CMR), Toshiba L200 (SMR) (#1228, patch from #1377). + - Western Digital Blue: Apple OEM (#1385). + - Western Digital Scorpio Blue Serial ATA: 320 GB (patch from #888). + + os_win32.cpp: Decode Windows 10 20H2 and Server 2004, 20H2 + build numbers. + +2020-10-29 Alex Samorukov <samm@os2.kiev.ua> + + os_freebsd.cpp: skip SCSI subenclosure devices on scan (#1299) + +2020-10-24 Christian Franke <franke@computer.org> + + drivedb.h: + - HGST Travelstar Z5K1000: *B*610 variant. + - Hitachi Travelstar 7K320: HITACHI*SA60 variant (#983). + - Hitachi/HGST Deskstar 5K4000: Rename entry. Add HGST (#1060). + - HGST Deskstar NAS: 8TB. + - Hitachi/HGST Ultrastar 5K3000 (#1055). + - Hitachi Ultrastar 7K3000: Variant without vendor name (#1361). + - Hitachi/HGST Ultrastar 7K4000: Variant without vendor name (#1361). + - HGST Ultrastar HC310/320 (#1157, #1365). + +2020-10-19 Christian Franke <franke@computer.org> + + drivedb.h: + - ATP SATA III aMLC M.2 2242 SSD (based on patch from #1366). + - Silicon Motion based OEM SSDs: TCSUNBOW X3 (#1349), + KingDian S370 (#1350), LDLC (#1353), Lenovo. + - SSSTC ER2 GD/CD Series SSDs (based on patch from #1376). + +2020-10-15 Christian Franke <franke@computer.org> + + drivedb.h: + - Apacer SSDs (based on patch from #1202). + - Crucial/Micron MX500 SSDs (FW <= M3CR032): Remove entry (#1227). + - Crucial/Micron Client SSDs: Rename entry. Fix name of attribute 127. + This prevents false 'Currently unreadable (pending) sectors' warnings + from smartd (#1227, #1294, #1311, #1336). + - Intel 730 and DC S35x0/3610/3700 Series SSDs: *H* variant (#1363). + - Samsung based SSDs: 883 DCT (#1373). + + os_win32.cpp: Fix removal of trailing blanks. + Silence misleading -Wstring-compare warning from g++ 10.2.0 + (GCC Bugzilla 97336). + +2020-10-09 Christian Franke <franke@computer.org> + + scsiprint.cpp: Don't print 'Accumulated power on time' if no + option is specified (GH issues/65, regression from r5075). + Fix setting of 'any_output' (regression from r4188). + + Based on patch from GH pull/66. + +2020-10-06 Christian Franke <franke@computer.org> + + Remove all occurrences of the throw() specifier. + This specifier is deprecated since C++11. + +2020-09-27 Christian Franke <franke@computer.org> + + update-smart-drivedb.in: Add '--branch' option. + Select signing key accordingly. + update-smart-drivedb.8.in: Document new option. + +2020-09-20 Christian Franke <franke@computer.org> + + drivedb.h: + - Crucial/Micron BX/MX1/2/3/500, M5/600, 11/1300 SSDs: BX500 2TB, + 1100 with version suffix (#1178), 1300 without prefix (#1369). + - Micron 5100 Pro / 52x0 / 5300 SSDs: Add attribute 246. + - Phison Driven SSDs: Kingston A400 M.2 (#1362), + Kingston OCP0S3* (#1370), Kingston OM8P0* (#1371). + - Kingston SSDNow UV400/500: UV500 M.2 (#1347). + - SAMSUNG SpinPoint N3U-3 (USB): Rename. + - USB: Samsung S1 Mini (0x04e8:0x2f06) (Debian Bug 964032). + +2020-09-19 Christian Franke <franke@computer.org> + + ataprint.cpp: Report unavailable TRIM command only for SSDs. + +2020-08-23 Christian Franke <franke@computer.org> + + drivedb.h: DEFAULT entry: Limit attribute 231 (Temperature_Celsius) + to HDDs. Various SSDs use this attribute for a different purpose. + + drivedb.h: + - Micron 5100 Pro / 52x0 / 5300 SSDs: Rename, add 5210 (#1356), + 5300 *TDT variant (#1355) + - Phison Driven SSDs: SSD Smartbuy 64GB and other sizes (#1359) + - Indilinx Barefoot_2/Everest/Martini based SSDs: OCZ-OCTANE (#1360) + - Marvell based SanDisk SSDs: Ultra 3D 4TB (#1358) + - Silicon Motion based SSDs: ACPI SED2QII-LP, Transcend 230 + - Western Digital Gold: WD102KRYZ (#1357) + +2020-08-22 Christian Franke <franke@computer.org> + + smartd.service.in: Don't start smartd in virtualized environments + (GH issues/62). + +2020-08-22 Marko Hauptvogel <marko.hauptvogel@googlemail.com> + + smartd.service.in: Remove obsolete 'StandardOutput=syslog'. + +2020-07-11 Christian Franke <franke@computer.org> + + scsiprint.cpp: Add JSON values 'power_on_time.{hours,minutes}' to + 'smartctl -a' output. Add missing pout() -> jout() replacements. + +2020-07-10 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: Add "Accumulated power on time" entry to + 'smartctl -a' output. Previously this was only output + when the '-x' option was given, together with other + fields in the Background scan results log page. Now + with the '-a' option "Accumulated power on time" is + printed just before the "Manufactured in week ..." line. + +2020-07-06 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: Attempted fix to tickets 1272, 1331 and 1346 + The difficulty is handling SCSI log _sub_-pages that hold + info about SSDs and newer hard drives, against older + devices (20 year old disks?) that do many and varied + things when asked to list supported sub-pages. Add a + heuristic and change some naming. + +2020-06-24 Alex Samorukov <samm@os2.kiev.ua> + + os_darwin.cpp: Fix NVMe log support, handle error codes, + remove SMARTReadData call + os_darwin.h: Cleanup, remove all private functions + +2020-06-23 Harry Mallon <hjmallon@gmail.com> + + os_darwin.cpp, os_darwin.h: Add support for NVMe logs. + smartctl.8.in: Update related documentation. + +2020-06-20 Christian Franke <franke@computer.org> + + drivedb.h: + - Crucial/Micron BX/MX1/2/3/500, M5/600, 11/1300 SSDs: Rename, + add 1300 + - Plextor M3/M5/M6/M7 Series SSDs: Rename, *M6G variant, *M7CV (#991) + - Silicon Motion based SSDs: ADATA SU650 (#1243), ADATA SU655 + - Seagate IronWolf Pro: 16TB (#1341) + - USB: Toshiba (0x0930:0xa002) + - USB: ADATA HD330 (0x125f:0xa83a) + - USB: AkiTio NT2 (0x2ce5:0x0014) + + os_solaris.cpp: Suggest '-d sat' if '-d ata' is specified. + +2020-06-18 Christian Franke <franke@computer.org> + + scsiprint.cpp: Fix JSON value 'scsi_grown_defect_list'. + + Thanks to Ryan Allgaier for the bug report. + +2020-06-05 Alex Samorukov <samm@os2.kiev.ua> + + os_netbsd.cpp: fix timeout handling + os_openbsd.cpp (based on Marek Benc GH request): + - Migrate to the new API (#102) + - Fix for the ATA registries on the BE arc (GH PR #56) + - Fix timeout handling (GH PR #56) + +2020-06-01 Christian Franke <franke@computer.org> + + drivedb.h: + - Crucial/Micron MX500 SSDs: Detect firmware <= M3CR032 (#1336) + - Micron 5100 Pro / 5200 / 5300 SSDs: Rename, add 5300 (#1326) + - Phison Driven SSDs: Corsair Force LE200 + - JMicron/Maxiotek based SSDs: Rename, add KingSpec NT + - Plextor M3/M5/M6 Series SSDs: *M6V variant + - Seagate IronWolf: *VN001 variant (GH pull/55) + - WD Blue / Red / Green SSDs: Rename, add WD Red SA500 (#1321) + - Western Digital Blue Mobile: re-add WD10JPZX (removed in r5054) + - USB: OWC Mercury Elite Pro Quad (0x1e91:0xa4a7) (patch from #1337) + + os_win32.cpp: Decode Windows 10 2004 build number. + +2020-05-25 Christian Franke <franke@computer.org> + + ataprint.cpp: Print TRIM Command support info. + Print Zoned Device Capabilities if reported. + May also be useful to detect SMR HDDs (#1313). + +2020-05-24 Christian Franke <franke@computer.org> + + drivedb.h: + - Phison Driven SSDs: GIGABYTE GP-GSTFS31, + KINGSTON DC450R/DC500M/DC500R 7.68TB (#1329), PNY CS900 (#1281) + - Intel 320 Series SSDs: HP OEM (#1332) + - JMicron based SSDs: ADATA SP600NS34 (GH pull/53), + ADATA OEM IM2S3138E* (#1298) + - Plextor M3/M5/M6 Series SSDs: allow extra space (#1293) + - Samsung based SSDs: 860 EVO 4TB, 850/860 PRO 2/4TB (#1316) + - Marvell based SanDisk SSDs: SDSSDA-* + - Silicon Motion based SSDs: Corsair Force LX (#1320) + - WD Blue and Green SSDs: WDBNCE* (#1129) + + drivedb.h: Add separate entries for WDC SMR drives (#1313). + - Western Digital Blue (SMR) + - Western Digital Black (SMR) + - Western Digital Red: Move WD60EFAX to ... + - Western Digital Red (SMR): ... here, add 2TB, 3TB, 4TB + - Western Digital Blue Mobile: Move WD[12]0SPZX to ... + - Western Digital Blue Mobile (SMR): ... here + +2020-04-23 Christian Franke <franke@computer.org> + + drivedb.h: USB: Realtek RTL9210 (0x0bda:0x9210) + + scsinvme.cpp: Add '-d sntrealtek' device type for Realtek RTL9210 + USB to NVMe bridges (#1315). + dev_interface.cpp: Update help text. + smartctl.8.in, smartd.conf.5.in: Document new option. + + Thanks to Plugable Support for providing a NVMe enclosure. + +2020-04-05 Christian Franke <franke@computer.org> + + drivedb.h: + - Crucial/Micron MX500 SSDs: Detect also older firmware (#1311) + - Silicon Motion based SSDs: Add attributes 159 and 231 (#1304) + - Seagate BarraCuda 3.5: Rename, merge entries, + add ST2000DM008 (#1179, #1252, #1286), ST10000DM0004 + - Seagate Exos X14: ST12000NM0538 (#1256) + - Seagate Exos X16 (#1291, #1301) + - Seagate Skyhawk (#1039) + +2020-04-04 Christian Franke <franke@computer.org> + + dev_jmb39x_raid.cpp: Add '-d jms56x,...' device type for protocol + variant used by JMS562 USB to SATA RAID bridges (#1314). + dev_interface.cpp: Parse '-d jms56x*[+TYPE]' option, update help text. + smartctl.8.in, smartd.conf.5.in: Document new option. + +2020-03-29 Christian Franke <franke@computer.org> + + drivedb.h: + - Western Digital Ultrastar He10/12: Rename, add He12 + (#1308, GH issues/51) + - Western Digital Ultrastar DC HC530 (#1257) + - Western Digital Green: WD5000AZRX (#1072) + - Western Digital Red: WD120EMFZ (GH issues/49) + - Western Digital Purple: WD*PURZ, WD80PUZX (#1057) + - Western Digital Gold: WD6003FRYZ + - Western Digital Blue Mobile: Rename, re-add WD10JPVX + (removed in r4991) + - Western Digital Elements / My Passport (USB, AF): + WD10SMZW (#1088), WD50NDZW + +2020-03-28 Christian Franke <franke@computer.org> + + drivedb.h: + - Crucial/Micron BX/MX1/2/3/500, M5/600, 1100 SSDs: CT1000BX500SSD1, + MTFDDAK* (#1276) + - Kingston SSDNow UV400/500: Rename, add UV500 (#1126) + - Silicon Motion based SSDs: KingDian S100/200, Kingdian S280 1TB, + Kingston KC600 (#1304), Transcend MTS420S (#1280), + Transcend 360S (#1282) + - Seagate IronWolf Pro: ST4000NE001 + - Western Digital RE3 Serial ATA: WD*BYS-* variant + - Western Digital Gold: WD4003FRYZ (#1289), WD8004FRYZ (#1287) + - USB: 0x0860:0x0001 (#1295) + - USB: JMicron (0x152d:0x1337) (#1296) + - USB: Corsair SSD & HDD Cloning Kit (0x0984:0x0301) (#1307) + +2020-03-25 Christian Franke <franke@computer.org> + + smartd.cpp: Set 'SMARTD_DEVICETYPE=auto' if DEVICESCAN is used + without '-d TYPE' directive (GH issues/52). + +2020-03-05 Christian Franke <franke@computer.org> + + Silence some cppcheck 1.85 warnings. + nvmeprint.cpp, smartd.cpp: knownConditionTrueFalse. + scsicmds.cpp, scsiprint.cpp: variableScope. + scsicmds.h: Remove unused function supported_vpd_pages::num_pages(). + + cppcheck.sh: Remove no longer used HAVE_*NTDDDISK_H defines. + +2020-03-01 Christian Franke <franke@computer.org> + + dev_intelliprop.cpp, dev_interface.cpp, dev_interface.h: Move option + parsing to get_intelliprop_device(). Move this function to class + smart_interface. + dev_intelliprop.h: Remove file. + Makefile.am, os_win32/vc14/smart*.vcxproj*: Remove old file. + + configure.ac: Fail if '--without-working-snprintf' is specified. + utility.cpp, utility.h: Remove support for pre-C99 snprintf(). + + os_win32.cpp: Remove backward compatibility fixes for include files + of very old versions of Cygwin, MinGW and MSVC. + configure.ac, Makefile.am: Remove check for DDK include files. + +2020-02-25 Christian Franke <franke@computer.org> + + Silence some warnings from g++ 9.2: + atacmds.cpp: -Waddress-of-packed-member. + os_win32.cpp: -Wcast-function-type. + smartd.cpp: -Wformat-truncation. + +2020-02-25 Fabrice Fontaine <fontaine.fabrice@gmail.com> + + configure.ac: fix stack-protector detection. + Use AC_LINK_IFELSE instead of AC_COMPILE_IFELSE to check for + stack-protector availability as some compilers could missed the + needed library (-lssp or -lssp_nonshared) at linking step. + +2020-01-11 Christian Franke <franke@computer.org> + + dev_jmb39x_raid.cpp: Add '-d jmb39x-q,...' device type for JMB39x + protocol variant used by QNAP-TR004 NAS (#1283). + dev_interface.cpp: Update help text. + smartctl.8.in, smartd.conf.5.in: Document '-q' suffix. + +2020-01-02 Christian Franke <franke@computer.org> + + configure.ac: Use 'uname -n' if 'hostname' is not available + (GH PR 44). Remove check for SVN < 1.7. + +2020-01-01 Christian Franke <franke@computer.org> + + Happy New Year! Update copyright year in version info. + +2019-12-30 Christian Franke <franke@computer.org> + + smartmontools 7.1 + +2019-12-29 Christian Franke <franke@computer.org> + + smartctl.8.in: Add info about AMD Windows RAID driver. + Fix some font changes. + + os_win32/installer.nsi: Delete old ChangeLog-5.0-6.0 on update + installs. Remove outdated delete commands. + + scsicmds.cpp: Remove never needed include of atacmds.h. + + ataprint.cpp, smartd.cpp: Silence 'multiplication overflow' warning + from lgtm. + + ataprint.cpp: Fix size of Device Statistics value. + + os_win32.cpp: CSMI: Detect missing ATA output registers. + +2019-12-28 Christian Franke <franke@computer.org> + + drivedb.h: + - Crucial/Micron MX500 SSDs: New entry to handle bogus + attribute 197 (#1227) + - Phison Driven SSDs: Kingston DC450R (#1249), + Patriot Flare, Blast, Blaze (#830), Burst (#1182) + - Silicon Motion based SSDs: Patriot P200, TC-Sunbow X3 (#1261), + Team Group L5Lite 3D T253TD variant + - Seagate IronWolf: ST6000VN0033 (#1273) + - Western Digital Red: WD60EFAX (#1274) + - USB: Samsung (0x04e8:0x8003) + - USB: JMicron JMS561 (0x152d:0xa561) + + do_release: Update code signing key id. + +2019-12-13 Christian Franke <franke@computer.org> + + smartd.conf.5.in: Fix very old comment about man2html bug. + + smartctl.8.in, smartd.conf.5.in, update-smart-drivedb.8.in: + Remove EXPERIMENTAL notes for features added before 6.6. + Fix typos. + + update-smart-drivedb.in: If signature verification fails, always + print GPG error message regardless of '-v' option. + + os_win32.cpp: Decode Windows 10 1909 and Server 1909 build number. + Fix IRST version in comment. + +2019-12-10 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: Fix SanDisk SSD Plus matching pattern (GH PR 43) + +2019-12-06 Christian Franke <franke@computer.org> + + drivedb.h: + - Hitachi Ultrastar A7K1000: HITACHI* variant (#1255) + - Seagate IronWolf: *0008 variant (#1262) + - WD Blue and Green SSDs: *2G* variant, allow extra space + - USB: Unknown (0x0850:0x0031) + - USB: ADATA (0x125f:0xa37a) (#1264) + +2019-12-06 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: + - Extend Micron 5100 attributes (#1270) + +2019-12-05 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: + - Add Toshiba MQ04UBD200 (#1106) + - Add LITEON LCH SSD (#1124) + +2019-12-04 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: + - hynix SC311 SSD (#1267) + - Seagate Mobile HDD (#1118) + - Kingston SSDNow UV400 (#848, GH: 7) + - Add another PM841 definition (GH: 30) + - Add Seagate Barracuda Pro Compute family + - Extend WD Blue regexp + - Extend Seagate Mobile HDD regexp + - Add Seagate Exos X14 + +2019-11-24 Christian Franke <franke@computer.org> + + Add '-d jmb39x,N[,sLBA][,force][+TYPE]' device type for SATA drives + behind a JMicron JMB39x RAID port multiplier (#705). + dev_jmb39x_raid.cpp: New file, based on JMraidcon by Werner Johansson. + dev_interface.cpp: Parse '-d jmb39x*[+TYPE]' option. + dev_interface.h: Add get_jmb39x_device(). + smartctl.8.in, smartd.conf.5.in: Document new option. + Makefile.am, os_win32/vc14/smart*.vcxproj*: Add new file. + + Thanks to Karl McMurdo for providing access to a machine for testing. + +2019-11-22 Christian Franke <franke@computer.org> + + atacmds.cpp: Fix bogus errno message in debug output. + Print original IDENTIFY DEVICE error if IDENTIFY PACKET DEVICE + also fails. + + cciss.cpp: Fix segfault on transfer size > 512 bytes. + Replace printf() and fprintf() with pout(). + +2019-10-19 Christian Franke <franke@computer.org> + + scsiprint.cpp: Silence 'value never read' warning from clang + analyzer. + + Avoid usage of asctime(), ctime(), gmtime(), and localtime(). + Use thread-safe *_r() or *_s() variants instead. + utility.cpp, utility.h: Add wrapper function for localtime_*(). + smartd.cpp: Attribute logs now use local time instead of UTC. + +2019-10-16 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: improve Innodisk 3TG6 record (patch by GH user Shaing) + +2019-10-15 Christian Franke <franke@computer.org> + + os_win32.cpp: CSMI: Add workaround for AMD RAID drivers which return + incomplete and incorrect drive information in CSMI_SAS_PHY_INFO + (GH issues/39). + + Thanks to GH user 'Shine-' for original patch and testing. + +2019-10-05 Christian Franke <franke@computer.org> + + ataprint.cpp: Set JSON value 'power_on_time.hours' if raw value + also contains milliseconds (#1165). + +2019-10-04 Christian Franke <franke@computer.org> + + configure.ac: Don't check for _FORTIFY_SOURCE if it is a + compiler preset. + +2019-10-03 Christian Franke <franke@computer.org> + + configure.ac: Define _FORTIFY_SOURCE=2 if supported. + +2019-10-01 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: + - in scsiGetSupportedLogPages() the code assumes if the + device supports the "Supported Log pages and subpages" + log page then that will supersede the "Supported Log + pages" log page. However in tickets #1225 and #1239 + different Samsung SAS SSDs seem to have a dummy + response to the '... and subpages' variant log page + and a correct response to the shorter (and older) + variant. Change code so the '... and subpages' + variant is ignored if its response is shorter than + the other variant's response. This code change needs to + be tested on real Samsung SAS SSDs, preferably by the + reporters of tickets #1225 and #1239 . + +2019-09-30 Douglas Gilbert <dgilbert@interlog.com> + + scsiprint.cpp: + - in scsiPrintGrownDefectListLen() change to silently bypass + if defect list type is 6 since it means "vendor specific". + On recent SAS SSDs it seems to mean: we (the manufacturer) + are not going to give you any more information about this + SSD's internal format. + +2019-09-28 Christian Franke <franke@computer.org> + + drivedb.h: + - Phison Driven SSDs: Goodram CX400, Goodram Iridium Pro, + Goodram IRIDM (#1136, #1212), MyDigital BP4, PS3110-S10C (#1075), + SSM28256GPTCB3B + - Phison Driven OEM SSDs: Intenso SATA III, Silicon Power A55 + - Silicon Motion based SSDs: Rename, sort, add Cervoz M305 (#1097), + Drevo X1 (#949), Drevo X1 Pro (#936), J&A LEVEN JS500 (#998), + KingDian S280, OWC Envoy Pro (#1168), Ramsta S800 (#1158), + TC-Sunbow M3, Zheino M3 + - Silicon Motion based OEM SSDs: New entry with FW detection: + Intenso SSD, Intenso SATA III High (#1005), KingFast F6M (#968), + Silicon Power M.2 2280 M55 (#978), SuperMicro DM032-SMCMVN1 (#1172), + - USB: OWC Envoy Pro (0x1e91:0xa2a5) (#1168) + +2019-09-27 Christian Franke <franke@computer.org> + + drivedb.h: + - Phison Driven OEM SSDs: Hoodisk (#1231) + - Innodisk 3IE2/3ME2/3MG2/3SE2/3TG6 SSDs: Rename, + add 3TG6 (GH pull/40) + - Marvell based SanDisk SSDs: X600, Ultra 3D 1024G, + Plus (#1120, #1160) + - USB: LaCie P9230 (0x059f:0x1053) (#1235) + - USB: Toshiba Stor.E D10 (0x0939:0x0b13) + - USB: Atech (0x1234:0x5678) (#1234) + + os_win32.cpp: Enhance CSMI_SAS_PHY_INFO debug output. + Print all nonempty entries. + +2019-08-20 Christian Franke <franke@computer.org> + + drivedb.h: + - SiliconMotion based SSDs: ADATA SU800 (#954, #1214), SU900 (#996), + Transcend 430S (#1229) + - USB: JMicron JMS576 (0x152d:0x1576) + - USB: PNY (0x154b:0x5678) + +2019-08-13 Christian Franke <franke@computer.org> + + drivedb.h: Phison Driven SSDs: Fix typo, add DC500 attributes (#1176) + +2019-08-12 Christian Franke <franke@computer.org> + + ataprint.cpp: Add ACS-5 major version and latest ACS-4 minor version. + + drivedb.h: + - Apacer AS340 (based on patch from #1209) + - Phison Driven SSDs: Kingston DC500R/M (#1176) + - USB: Unknown (0x0850:0x0003) + +2019-08-08 Christian Franke <franke@computer.org> + + os_linux.cpp: Add more debug output to 'get_usb_id()'. + + json.cpp, json.h: Make 'json::ref::~ref()' non-inline to decrease + code size. Remove some extra ';'. + + os_win32/wtssendmsg.c: Fix parsing of numeric options. + Fix reading message from stdin pipe or console. + +2019-08-07 Christian Franke <franke@computer.org> + + os_win32/wtssendmsg.c: Don't convert '\r\n' in message read from + stdin as it is also written to event log. Add '-t' and '-w' option. + + smartd.cpp: Increase size of email message buffer to avoid truncation + if device name is very long (#1217). + +2019-08-04 Christian Franke <franke@computer.org> + + examplescripts/Example8: Try mail and mailx first, then fall back to + sendmail. + examplescripts/README: Update documentation. + + json.cpp, json.h: Suppress extra spaces in '--json=cg' output. + + linux_nvme_ioctl.h: Replace with current version from Linux kernel + sources (include/uapi/linux/nvme_ioctl.h fadccd8 2019-02-20). + This version adds Linux-syscall-note to its GPL-2.0 (only) license. + This should fix the GPL-2.0-or-later licensing problem (#1226). + +2019-07-01 Christian Franke <franke@computer.org> + + Replace all ASSERT_*() macros with STATIC_ASSERT(). + static_assert.h: New file with STATIC_ASSERT() macro using C++11 + static_assert() if available. + Makefile.am, os_win32/vc14/smart*.vcxproj*: Add new file. + + os_win32/vc14/smart*.vcxproj*: Add missing scsinvme.cpp. + +2019-06-28 Christian Franke <franke@computer.org> + + smartd.cpp: Reset scheduled_test_next_check time if system clock + has been adjusted to the past. + Use LOG_INFO instead of LOG_CRIT for related message. + + examplescripts/Example6: Update from Fedora package 7.0-5.fc31. + + examplescripts/Example[78]: New scripts using /usr/sbin/sendmail + to send email (Ubuntu Bug 1833331). + Makefile.am, examplescripts/README: Add new scripts. + +2019-06-19 Christian Franke <franke@computer.org> + + os_win32.cpp: Decode Windows 10 1903 and Server 1903 build number. + Allow drive letters as device names for Windows 10 NVMe driver. + Check for unsupported nonzero NVMe CDW11..15. + + smartctl.8.in: Fix typo introduced 15 years ago in r1789. + + drivedb.h: + - Unify some 'Host_Reads/Writes_*' attribute names + - JMicron based SSDs: Transcend SSD340K, SSD740 + - Samsung based SSDs: PM863a Dell OEM (#1200) + - Toshiba MG06ACA... Enterprise Capacity HDD (#1023, #1099) + - Toshiba MG07ACA... Enterprise Capacity HDD (#1023, #1175) + - WD Blue and Green SSDs: Variants without trailing -* (#1198) + - USB: JMicron JMS583 [NVMe] (0x152d:0x0583): Remove '#please_try' + - USB: Transcend (0x8564:0x7000) (GH issues/32) + +2019-06-17 Christian Franke <franke@computer.org> + + os_win32.cpp: Clear ProtocolDataRequestSubValue for NVMe Get Log Page + commands because newer drivers pass this value as CDW12 (LPOL) to the + drive. This fixes log page access for NVMe 1.2.1+ drives (#1201). + + Thanks to Vikram Manja for bug report and testing. + +2019-06-12 Christian Franke <franke@computer.org> + + os_netbsd.cpp: Fix device scan crash on empty name list. + Fix a memory leak introduced 15 years ago in r1434. + + Thanks to Alexander Nasonov for bug report and testing. + +2019-05-21 Christian Franke <franke@computer.org> + + smartd.conf.5.in: Update list of directives which affect '-m'. + This also fixes a typo introduced 15 years ago in r1658 + (GH issues/24). + + drivedb.h: + - Intel 53x and Pro 1500/2500 Series SSDs: Rename, add Pro 1500 *A4H + variant (#1194) + - Western Digital Red: WD100EFAX (#986, #1029) + - Western Digital Red Pro: *003* and *FFBX variants (#1085, #1192), + WD101KFBX (#1030, #1189) + +2019-05-21 Erwan Velu <e.velu@criteo.com> + + drivedb.h: Intel DC S3110 Series SSDs (GH pull/35) + +2019-04-30 Christian Franke <franke@computer.org> + + os_linux.cpp: Fix '/dev/megaraid_sas_ioctl_node' open check + (cppcheck 1.85: resourceLeak). + Reduce variable scope (cppcheck 1.85: variableScope). + Remove unused variable (cppcheck 1.85: unreadVariable). + + cppcheck.sh: New script to run cppcheck with predefined settings. + Makefile.am: Add new script to tarball. Add 'cppcheck' target. + +2019-04-22 Christian Franke <franke@computer.org> + + drivedb.h: + - Apacer SDM... Series SSD Module: Rename, split into separate entries + for SDM4 and SMD5*, add SMD5A-M variant (based on patch from #1183) + - Intel 545s Series SSDs: *2KW* variant (#1185) + - SK hynix SATA SSDs: *G39MND* variant, *G39TND* variant (#1146), + *G3[2E]FEH* variant (based on patch from #1181) + - USB: JMicron JMS578 (0x0080:0x0578) + - USB: Unknown (0x0080:0xa0001) (#852) + +2019-03-31 Christian Franke <franke@computer.org> + + drivedb.h: + - Swissbit X-600m Series Industrial mSATA SSD (patch from #1177) + - Samsung based SSDs: SM863a *JP variant (#1105), SM863a Dell OEM (#1151) + - Marvell based SanDisk SSDs: Ultra 3D (#1091, #1166, #1173) + - WDC HGST Ultrastar He10: WD100EMAZ (#1152) + - WD Blue and Green SSDs: Blue 3D NAND (#1162, #1169) + - USB: VIA VL716 (0x2109:0x0716) + +2019-03-18 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: + - add Intel 545s Series SSDs (PR #26) + +2019-03-13 Alex Samorukov <samm@os2.kiev.ua> + + drivedb.h: + - add Seagate Nytro SATA SSD and Seagate IronWolf 110 SATA SSD (PR #25) + +2019-03-10 Christian Franke <franke@computer.org> + + configure.ac: Pass '-pie' option directly to MinGW linker. + This adds relocation info which is needed for ASLR (#1170). + Document ASLR related issues of MinGW-w64 toolchain. + + Makefile.am: Remove 'Type=notify' from smartd.service if + libsystemd-dev is not available. + +2019-01-11 Christian Franke <franke@computer.org> + + update-smart-drivedb.8.in: Add missing definition of '.Sp' macro. + + json.cpp, json.h: Add extra setter for char pointers. + Prevent nullptr exceptions if JSON mode is not enabled. + + ataprint.cpp: Fix bogus exception on unknown form factor value + (#1154, regression from r4640). + +2019-01-01 Alex Samorukov <samm@os2.kiev.ua> + + FreeBSD: use "fetch" as default download tool + os_freebsd.cpp: fix build on FreeBSD 12, fix nvme on Big Endian hosts + (patch from the bugtracker) + +2019-01-01 Christian Franke <franke@computer.org> + + Happy New Year! Update copyright year in version info. + +2018-12-30 Christian Franke <franke@computer.org> + + Rename old ChangeLog to ChangeLog-6.0-7.0. + Remove ChangeLog-5.0-6.0 from DOCDIR but keep in tarball. + Start new ChangeLog. + +2018-12-30 Christian Franke <franke@computer.org> + + smartmontools 7.0 |