1 CHANGELOG for smartmontools
3 $Id: CHANGELOG 3296 2011-03-16 22:17:51Z chrfranke $
5 The most recent version of this file is:
6 http://smartmontools.svn.sourceforge.net/viewvc/smartmontools/trunk/smartmontools/CHANGELOG?view=markup
8 Maintainers / Developers Key (alphabetic order):
22 [JPH] Jordan Powell Hargrave
28 [EM] Eduard Martinescu
29 [FM] Frédéric L. W. Meunier
42 <DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE>
44 [CF] Windows: Add update-smart-drivedb.nsi NSIS script to build
45 drivedb.h update tool.
47 [CF] Windows: Move search for NSIS compiler from Makefile.am to
50 [CF] update-smart-drivedb.in: Move DRIVEDB_BRANCH name creation
51 from script to configure.in.
53 [CF] os_linux.cpp: Replace printf() by pout(). Disable unused
56 [CF] Windows: Include CSMI (for Intel RAID) in default DEVICESCAN.
58 [CF] configure.in: Remove info messages about old defaults.
60 [CF] drivedb.h: Set unneeded USB bcdDevice patterns to empty.
62 [CF] Rework USB ID drivedb search. Stop search at first matching
63 entry with empty bcd_device pattern.
65 [CF] Move handling of '-F swapid' from formatting to identity read
66 function. Remove unneeded 'fix_swapped_id' parameters.
68 [CF] smartd: Log warning from drive database if present.
69 smartctl: Do not search drive database twice.
71 [MS] drivedb.h USB updates:
72 - Samsung S2 Portable variant (0x04e8:0x1f08)
73 - Lacie rikiki (0x059f:0x102a)
74 - Toshiba Stor.E Steel series (0x0930:0x0b11)
75 - Super Top generic enclosure (0x14cd:0x6116)
77 [CF] Let constructor of regular_expression throw on error by default.
79 [CF] smartd: Preserve last selective self-test span in '.state' file
80 and use it if the selective self-test log was cleared (ticket #88).
82 [CF] smartctl --scan-open: Make output compatible with smartd.conf
83 (ticket #108). Fix possible crash if autodetect_open() returns
86 [CF] do_release: Re-add signing of tarball.
88 [CF] os_linux.cpp: Change '-d sat' to '-d sat,12' for USB only if
89 kernel is older than 2.6.29. Add kernel release to version info.
91 [CF] smartd: Add '-l scterc,READTIME,WRITETIME' directive (ticket #150).
93 [CF] smartctl: Fix exit status of '-l xerror' and '-l xselftest'
96 [CF] smartd: Use '-M daily' as default if state persistence is enabled.
97 This avoids that emails are suppressed forever (ticket #35).
99 [CF] smartd: Log identify information of each ATA device.
101 [CF] smartd: Disable '-C' and '-U' monitoring if raw values are
102 very large (ticket #148).
104 [CF] smartd: Write reserved attribute byte to '.state' file
107 [MS] drivedb.h USB updates:
108 - Seagate FreeAgent Go Flex Desk USB 3.0
109 - Toshiba Canvio 500GB
111 [MS] drivedb.h USB updates:
112 - Freecom HD 500GB (0x07ab:0xfcda)
113 - Generic JMicron adapter (0x152d:0x2337)
114 - RaidSonic ICY BOX IB-110StU3-B (0x1759:0x500[02])
115 - Connectland BE-USB2-35BP-LCM (0x040d:0x6204)
116 - Freecom Classic HD 120GB (0x07ab:0xfccd)
117 - OCZ THROTTLE OCZESATATHR8G (0x152d:0x0602)
118 - Vantec NST-400MX-SR (0x1a4a:0x1670)
119 - Intenso Memory Station 2.5" (0x13fd:0x1840)
121 [CF] Don't report failed self-tests outdated by a newer successful
122 extended self-test as errors (ticket #147).
123 This affects smartctl exit status and smartd syslog output and
124 warning email. Only implemented for ATA.
126 [CF] os_linux.cpp: Don't use buffer of size PATH_MAX for the result
127 of realpath(). This also fixes compilation on Debian Lenny.
129 [CF] smartd man pages: Add some missing [ATA only].
131 [CF] os_linux.cpp: Dereference symlinks before guess of device type
132 (ticket #146). Minor rework of autodetect_smart_device().
134 [CF] smartctl -l scterc: Don't get ERC if only set is requested.
135 This prevent misleading error messages if ATA output registers
138 [CF] Windows: Prevent warnings from gcc 4.5.1.
140 [CF] os_netbsd.cpp, os_openbsd.cpp: Add missing <errno.h>
142 [CF] os_freebsd.cpp: Add missing <errno.h>
144 [CF] dev_legacy.cpp: Add missing <errno.h>
146 [CF] Linux megaraid: Fix pass-through of non-data ATA commands
148 Only reject commands which require ATA output registers.
150 [CF] configure.in: Remove '-fno-strict-aliasing' from CXXFLAGS.
151 This reverts r2992 (see ticket #23).
153 [CF] Linux megaraid: Avoid strict-aliasing warnings.
154 Patch was provided by Stanislav Brabec (2009-06-03).
156 [MS] Make functions without prototypes static.
158 [MS] Remove unnecessary includes, move inclusion of errno.h from scsicmds.h
159 to the appropriate *.cpp files. Add cciss.h to cciss.cpp.
161 [MS] os_linux.cpp: rename variables to please "-Wshadow"
162 utility.cpp: remove unused variable "start"
163 os_win32/syslogevt.c: plug resource leak
165 [CF] Rename variables to prevent warnings if '-Wshadow' is set.
166 Remove unnecessary includes. Fix some comments.
168 [CF] drivedb.h updates:
169 - Intel X18-M/X25-M/X25-V G2 SSDs: Add firmware bug warning
170 - Samsung SpinPoint M6
171 - Samsung SpinPoint M7E (AFT)
173 - Samsung PM810 (470 series) SSDs
175 [CF] Windows: Add experimental CSMI support for disks behind Intel Matrix
176 RAID driver. Accessed through new device names '/dev/csmi[0-9],N'.
177 Experimental DEVICESCAN can be enabled by '-d csmi'.
179 [MS] - ataprint.cpp: adjust print format for insanely large
180 offline data collection times (e.g. WD drives).
181 - getopt: change config.h #include format from angle brackets to quotes
183 [MS] drivedb.h update:
184 - Fujitsu MJA2 BH series
185 - Toshiba MK..59GSXP series (Adv. Format)
186 - Toshiba MK..59GSM series (Adv. Format)
187 - Western Digital Caviar Blue SATA 3.0 variants
188 - Seagate Barracuda XT
190 [CF] smartctl: Print help message if no option is specified (ticket #39).
191 Don't issue any other ATA command if only '-n POWERMODE' is specified.
193 [CF] smartd: Output multiple lines via separate syslog(3) calls
196 [CF] smartctl: Add new ATA minor revisions and log addresses from ACS-2
197 revision 4a. Replace runtime asserts by compile time asserts.
199 [CF] smartd: Remove "default: /var/log/messages" hint from warning mail.
200 This obsoletes Debian patch 60_remove-redhatism.diff.
202 [CF] Windows: Include USB devices in DEVICESCAN (ticket #116).
204 [CF] Windows: Use direct WMI access to detect USB IDs (ticket #115).
205 This replaces 'wmic' runs and speeds up USB detection.
207 [CF] configure.in: Rework platform-specific settings.
209 [CF] configure.in: Remove some no longer used settings:
210 -lselinux (duplicate), NEED_SOLARIS_ATA_CODE, OS_FREEBSD.
212 [CF] Makefile.am: Remove SUBDIRS. Recursive targets are no longer used.
214 [CF] Use log directory to check for old error and self-test log
215 support (ticket #89).
217 [CF] drivedb.h USB update:
218 - WD My Book Essential 3TB USB 3.0
220 [CF] Fix usb header includes for DragonFly BSD (ticket #141).
222 [CF] smartctl: Print physical and logical sector sizes (ticket #62).
224 [CF] drivedb.h updates:
225 - Fujitsu MHT: Add AC variant
227 - Samsung SpinPoint T166: Needs '-v 197,increasing'
228 - Seagate Barracuda 7200.11: Add firmware SD81 as buggy
229 - WD Scorpio Blue EIDE: Add 320GB
231 [CF] drivedb.h USB updates:
232 - Samsung S2 Portable (ticket #136)
233 - Move Verbatim 0x152d:0x2351 to JMicron section
235 [AS] drivedb.h updates:
236 - Verbatim Portable Hard Drive eSATA & USB 2.0 Combo 500GB
238 [CF] Happy New Year! Update copyright year in version info.
240 [CF] drivedb.h updates:
241 - Hitachi Deskstar 7K3000
242 - Hitachi Travelstar 7K320: Add ...362 variant
243 - Seagate Maxtor DiamondMax 21: Add STM3250310AS
244 - Toshiba 2.5" HDD MK..65GSX
245 - WD Caviar Green (Adv. Format): Add 750GB, 2.5TB, 3TB
247 [CF] drivedb.h USB updates:
248 - Micron USB SSD (unsupported, ticket #133)
249 - Samsung G2 Portable (ticket #132)
250 - Samsung Story Station 3.0 (ticket #130)
251 - Seagate FreeAgent GoFlex (ticket #131)
253 [CF] update-smart-drivedb.in: Add workaround for OpenBSD shell bug:
254 'set -e; if eval false; ...' aborts script (ticket #128).
256 [CF] update-smart-drivedb.in: Add platform specific download tools:
257 'fetch' on FreeBSD (ticket #127), 'ftp' on OpenBSD.
259 [CF] drivedb.h USB updates:
260 - JMicron 0x152d:0x2509
261 - WD My Passport 0730
263 [CF] drivedb.h updates:
264 - Samsung SpinPoint F3 EG: Add 2TB
265 - SandForce Driven SSDs: Add ADATA S599, SuperTalent TeraDrive CT
266 - Seagate Constellation (SATA)
267 - Seagate Constellation ES (SATA)
268 - WDC My Passport: Add WD5000BMVW
270 [CF] drivedb.h update:
271 - Samsung SpinPoint F4 EG: Add 1.5TB, update firmware bug warning.
273 [DG] [SCSI] Fix log page sanity check problem if the DS bit set
274 in response. Caused '-l background' to fail.
276 [CF] drivedb.h updates:
277 - Samsung SpinPoint F4 EG: Warning about bad blocks
279 [CF] update-smart-drivedb.in: Replace ERE by BRE. Script does no
280 longer require GNU sed (Ticket #126).
282 [DG] In '-r ioctl' show vendor specific SCSI commands as such rather
285 [CF] Add check for CompactFlash Signature in ATA IDENTIFY data.
286 This avoids that older CF microdrives are detected as ATAPI
287 devices (Ticket #125).
289 [CF] drivedb.h updates:
291 - Crucial RealSSD C300 Series
292 - Kingston SSDNow V Series
293 - Indilinx Barefoot based SSDs: Add OCZ-ONYX
294 - SandForce Driven SSDs: Add OCZ VERTEX2-PRO
295 - Transcend CompactFlash Cards: Add TS4GCF133
297 [CF] Windows installer: Add missing quotes in smartctl-run.bat
298 and smartd-run.bat (Ticket #124).
300 [CF] OpenBSD: Fix DEVICESCAN for OpenBSD >= 4.8 (Ticket #123).
302 [CF] daemon_win32.cpp: Remove duplicate assignment (Ticket #120).
304 [CF] Makefile.am: Do not overwrite existing smartd.conf file
305 (Ticket #122). If smartd.conf exists and differs from the
306 default then smartd.conf.sample is installed instead
307 If smartd.conf.sample exists on uninstall then smartd.conf is
310 [CF] Linux megaraid: Fix segfault on non-data commands (Ticket #78).
311 The /dev/megaraid_sas_ioctl_node driver does not allow
312 sge_count = 1 and sgl[0].iov_len = 0.
314 [CF] Remove EXPERIMENTAL notes for features already present
317 [CF] Rework '-d TYPE' documentation on man pages.
319 [CF] drivedb.h updates:
320 - Seagate Maxtor DiamondMax 21: Add 80GB
321 - Western Digital Caviar Black: Add 1TB/64MB
323 [CF] drivedb.h USB updates:
324 - iRiver iHP-120/140 (Ticket #119)
327 [CF] Makefile.am: Handle examplescripts in main Makefile.
328 Remove 'examplescripts/Makefile.am'.
330 [CF] configure.in: New option '--with-exampledir' allows to change
331 path of 'DOCDIR/examplescripts' directory.
332 (Debian package uses '/usr/share/doc/smartmontools/examples')
334 [CF] Replace global 'con->dont_print/...' variables by 'printing_is_*'.
335 Remove global 'con'trol pointer. Remove file 'extern.h'.
337 [CF] Replace global 'con->reportata/scsiioctl' variables by '*_debugmode'.
339 [CF] Replace global 'con->conservative/permissive' variables by
340 'failuretest_*'. Move failuretest() function to smartctl.cpp.
342 [CF] Remove unused CONTROLLER_* defines.
344 [CF] Remove unused controller support from dev_legacy adapter module.
346 [CF] Make 'debugmode' variable local to smartd.cpp.
348 smartmontools 5.40 2010-10-16
350 [CF] examplescripts/Example3: Use stdin to pass message to 'wall'
351 command (ticket #114).
353 [CF] smartd: Fix setting of SMARTD_DEVICE and SMARTD_DEVICETYPE
354 environment variables (ticket #113).
355 Regression was introduced by rework of smartd data structures.
356 SMARTD_DEVICE is now set to the plain device name.
357 SMARTD_DEVICETYPE is now set to 'auto' if no '-d' directive is
358 specified. Smartctl now accepts '-d auto' for this purpose.
360 [CF] Remove "Lifetime" from Min/Max temperature attribute output
361 (ticket #111). Interval is device specific.
363 [CF] configure.in: Print resource/message compiler info for Windows only.
365 [CF] FreeBSD: Rework get_dev_names_cam() to support more than 26 devices.
367 [CF] drivedb.h updates:
368 - Seagate Barracuda 7200.10: Add 360GB
369 - USB: Iomega MDHD-UE
370 Patch provided by Rob Marissen.
372 [DL] Standby mode not detected properly on FreeBSD (ticket #91).
374 [MS] os_linux.cpp: fix "gcc -flto" build error by including stddef.h
376 [CF] drivedb.h update:
377 - Indilinx Barefoot based SSDs: Add OCZ-VERTEX 1199 and -TURBO
379 [CF] TODO file: Move open entries to tickets #106, #107, #108, #109, #110.
380 Remove outdated entries.
382 [CF] drivedb.h USB update:
383 - SunPlus 0x04fc:0x0c05
385 [CF] drivedb.h update:
386 - SandForce Driven SSDs: Add Corsair Force, fix typo
388 [CF] Print hex values of unknown self-test type or status.
390 [CF] drivedb.h updates:
391 - SandForce Driven SSDs: Fix regex for Unigen UG99SGC
392 - Seagate Momentus XT series
393 - Quantum Bigfoot: Add 12.7GB
395 [CF] drivedb.h updates:
396 - SandForce Driven SSDs: Add 11 attributes of new FW,
398 - WD AV ATA family: Add 250GB, 320GB
401 [CF] Windows: Build syslogevt.exe with MinGW. Now possible because
402 binutils provides windmc.
404 [CF] Makefile.am: Remove install message about smartd startup.
405 It might be misleading because it is not correct for all platforms.
407 [CF] configure.in: Minor fix of '--enable-drivedb' new defaults
410 [CF] Update links, configure and OS info in INSTALL file.
411 Replace tabs by spaces.
413 [CF] configure.in: Fix '--enable-sample' and '--with-selinux'.
414 Fix obsolete use of AC_DEFINE().
416 [CF] drivedb.h updates:
417 - IBM Deskstar 60GXP, 40GV & 75GXP: Update link (ticket #99)
418 - Seagate Barracuda 7200.12: Add ST31000523AS and others
419 - WD Caviar Black: Add 2TB
420 - WD VelociRaptor: Add 6 Gb/s models
422 [CF] Windows installer: Fix smartctl-run.bat for drive menu (ticket #31).
424 [CF] Windows: Create md5/sha1/sha256 checksums of the binaries.
425 Add checksums.txt file to binary distribution.
427 [CF] Windows: Include drivedb.h into binary distribution.
429 [CF] drivedb.h updates:
430 - Intel X18-M/X25-M/X25-V G2: Add X25-V 40GB
431 - Transcend CompactFlash Cards
433 [CF] drivedb.h updates:
434 - Seagate Momentus 7200 FDE.2: Add ST9160414ASG
435 - Seagate Pipeline HD 5900.1 and 5900.2
436 Based on patch provided by Marcin Falkiewicz.
438 [CF] Remove unused variable 'reportbug'.
440 [CF] Make function PrintOut() local to smartd.cpp, remove it from
443 [CF] Windows: Improve compatibility with MinGW variants.
444 Add configure check for DDK include files.
445 Drop support for '-mno-cygwin' from old Cygwin gcc.
447 [AS] smartctl.8.in minor update: adding FreeBSD ahci/scsi device hints
449 [CF] Fix build if SVN Id keywords are not expanded (ticket #94).
451 [CF] Windows: Remove "." from DLL search path to prevent DLL
454 [CF] drivedb.h USB update:
455 - JMicron 0x152d:0x0551 (ticket #95)
456 Add note about port multipliers to smartctl man page.
458 [CF] drivedb.h updates:
459 - SandForce Driven SSDs: Add Unigen drives
460 - Indilinx Barefoot based SSDs: Add ASAX Leopard Hunt II
462 [CF] drivedb.h update:
463 - Intel X18-M/X25-M G2: Add names of timed workload attributes.
464 Document attribute clear command '-t vendor,0x40' on smartctl
467 Thanks to Artem Danielov from Intel for providing the
468 required information and drives for testing.
470 [CF] drivedb.h update:
471 - SandForce Driven SSDs: Add OCZ drives with form factor info.
473 [CF] drivedb.h update:
474 - Intel X25-E, X18-M/X25-M (add X18-M, update attributes)
476 [CF] configure.in: '--enable-drivedb' is now the default.
478 [CF] drivedb.h update:
479 - Indilinx Barefoot based SSDs
480 (combine and update 5 SSD entries using this controller)
482 [CF] drivedb.h update:
483 - SandForce Driven SSDs (Demo Drive, OCZ-Agility2/Vertex2/Vertex-LE)
485 Thanks to Jeremy Werner (jwerner@sandforce.com) from SandForce for
486 providing the required information and a demo drive for testing.
488 [CF] drivedb.h update:
489 - Add 1.5TB drive to SAMSUNG SpinPoint F3 EG series
491 [CF] Add print formats '-v ID,msec24hour32' and '-v ID,raw24/raw32'.
492 Used by SSDs with SandForce controller.
494 [CF] Allow SMART threshold entries at positions different from
495 attribute table. This fixes attribute output for recent
496 SSDs with SandForce controller.
498 [CF] smartctl: Add option '-t vendor,N' to issue ATA
499 command SMART EXECUTE OFF-LINE IMMEDIATE with
500 a vendor specific subcommand.
502 [CF] drivedb.h update:
503 - SAMSUNG SpinPoint V80 series (ticket #85)
505 [CF] Linux: Support SATA drives on LSI 3ware 9750 controllers.
506 Patch provided by Victor Payno (ticket #86).
507 Modified to avoid duplicate code.
509 [CF] drivedb.h update:
510 - SAMSUNG SpinPoint M7 series
512 [CF] drivedb.h USB update:
513 - Buffalo JustStore Portable HD-PVU2
515 [CF] drivedb.h USB updates:
516 - Iomega LDHD-UP (ticket #83)
517 - WD Elements Desktop 2TB
518 - Maxtor OneTouch (0x0d49:0x7300)
520 [MS] drivedb.h updates:
521 - Intel X25-M SSD first Generation
525 [CF] drivedb.h updates:
526 - Transcend Solid State Drives (ticket #80)
528 [CF] drivedb.h USB update:
529 - LaCie Rugged Hard Drive
531 [CF] smartctl: Add options '--scan, --scan-open'.
533 [CF] Windows: Use also VendorId from IOCTL_STORAGE_QUERY_PROPERTY.
535 [CF] smartd: Change defaults of '-C' and '-U' directives to 0 (disabled)
536 if attribute name is changed by '-v 19[78],...' directive.
538 [CF] configure.in: Fix include path for MinGW.
540 [CF] Move 'posix/reg*' to 'regex/reg*'.
541 Add configure check for regex.
543 [MS] cciss.cpp: avoid redefining be32toh
544 megaraid.h: replace use of undefined preprocessor macro BITS_PER_LONG
545 by union construct (thanks to [DL]).
546 Add assert for sizeof(ptr_t) == 8 (thanks to [CF]).
548 [CF] Makefile.am: Add os_qnxnto.* to EXTRA_smart*_SOURCES.
550 [MS] drivedb.h update:
551 - WD My Passport Essential SE 1TB variant (USB interface)
553 [CF] Use getopt_long() from getopt/getopt* if necessary.
554 Add missing cast to os_qnxnto.cpp.
555 This fixes build on QNX (ticket #1).
556 Thanks to Stefan (stevestereo) for testing.
558 [CF] drivedb.h update:
559 - WD Caviar Green (Adv. Format) family
561 [CF] drivedb.h USB update:
562 - Verbatim External Hard Drive 47519
564 [DL] Fix regression in smartctl option '-t select,M-N' which prevents
565 that more than one test span can be specified (ticket #75).
567 [CF] drivedb.h updates:
568 - Add raw64 attributes 1, 210-213 to all SSD drives with
569 64-bit attribute format.
571 [CF] Support smartd '-l xerror' also for disks which use reserved
574 [CF] Fix initialization of values missing in smartd '.state' files.
576 [CF] Add smartd directive '-l xerror' to check error count from
577 the Extended Comprehensive SMART Error Log (ticket #34).
579 [CF] Fix max number of cciss devices, 128 devices are supported
580 again (ticket #49). Regression was introduced during migration
583 [CF] Update man pages (include Debian patch
584 60_remove-redhatism.diff and Debian Bug 570892).
586 [CF] Add SVN revision number to man pages.
588 [CF] Windows: Read default drivedb.h and smartd.conf from exe
589 directory instead of current directory.
591 [CF] drivedb.h update:
592 - SAMSUNG SpinPoint M series
594 [CF] Replace runtime check of byte ordering by compile time check.
596 [CF] drivedb.h USB updates:
597 - ALi M5621 (unsupported)
598 - LaCie with JMicron (ticket #69)
600 - Enable 48-bit commands for Hitachi drive
602 [CF] Read USB ID info from drivedb.h (ticket #44).
604 [CF] Create branch RELEASE_5_39_DRIVEDB with last drivedb.h file
605 compatible with smartmontools 5.39[.1].
607 [MS] drivedb.h updates:
608 - WD Raptor 80GB variant
609 - correct Regex for some WD AV-GP variants
610 - Hitachi Ultrastar A7K2000
611 - Hitachi Travelstar 5K500.B
612 - Hitachi Deskstar 7K1000.C
613 - adjust naming of Hitachi Travelstar and Deskstar drives
615 [CF] Move 'posix/getopt*' to 'getopt/getopt*'. Can be used for
616 platforms with regex() but without getopt_long() (QNX, ticket #1).
618 [CF] smartd '-l selftest' directive: Print info if error count
619 decreased. Avoid misleading warning if error count decreased
620 to zero (ticket #67).
622 [CF] smartctl: Rework ataPrintMain(). Issue ATA SMART commands only if
623 necessary. Improve handling of SMART STATUS command failure when
624 ATA output registers are missing (ticket #27).
628 - Hitachi/SimpleTech 1TB
630 [CF] configure.in: Print configuration summary.
632 [CF] smartctl -l xselftest,selftest: Print old log if extended self-test
633 log index is out of range. Workaround for bad log data from Intel
634 X25-M G2 (ticket #66).
637 - LaCie Desktop Hard Drive
638 - Prolific PL2507 (unsupported)
639 - Seagate FreeAgent Go FW
640 - WD My Book Essential
642 [CF] Linux: Add '/dev/sd[a-c][a-z]' to smartd DEVICESCAN.
644 [CF] smartd: Other config entries may precede DEVICESCAN.
645 Very first step towards a more flexible device scanning.
647 [CF] Windows: Use '.win64' in names of 64-bit binary packages.
648 Use correct 'strip' program when cross-compiling.
650 [CF] Add update script to make targets 'dist' and 'clean',
651 set +x permission, update svn:ignore.
653 [CF] Add 'update-smart-drivedb' script (ticket #59).
654 The script updates the drive database from SVN.
655 It is installed if '--enable-drivedb' is configured.
657 [MS] drivedb.h updates:
658 - Seagate Medalist 1720
659 - SuperTalent UltraDrive GX SSD
662 [CF] Makefile.am: Fix unix2dos and makensis parameters to allow
663 to build the Windows installer on Linux also.
665 [CF] Makefile.am: Use a separate build rule for each man page to
666 avoid compatibility problems with BSD make.
668 [AS] drivedb.h updates:
669 - Fujitsu MHZ2 BK series
671 [MS] drivedb.h updates:
672 - SAMSUNG SpinPoint F3 series
673 - SAMSUNG SpinPoint F3 EG series
674 - SAMSUNG SpinPoint M5 series
675 - Western Digital Caviar Green 6400AADS
676 - more Western Digital VelociRaptor variants
678 [AS] FreeBSD: disable 48-bit commands in the ata_pass_through interface,
679 there is no 48-bit support in the IOCATAREQUEST ioctl.
681 [CF] smartctl: Add option '-l scterc[,READTIME,WRITETIME]' to get/set
682 the SCT Error Recovery Control time limit (ticket #50).
684 Patch was provided by Richard Gregory:
685 http://www.csc.liv.ac.uk/~greg/projects/erc/
686 Modified for new ata_pass_through() interface.
687 Linux HPT fixes ommitted for now.
689 [CF] Fix SCT temperature table commands on big endian CPUs.
691 [MS] drivedb.h updates:
692 - more Seagate Momentus 5400.6 drives
693 - HP 500GB drive MM0500EANCR
695 [CF] Windows: Cleanup I/O-control declarations, rely on include
698 [CF] Windows: Compile fixes for 64-bit exe (EXPERIMENTAL).
699 Update build info in INSTALL file.
701 [CF] drivedb.h update:
702 - Patriot Torqx SSD (patch provided by Gianpaolo Cugola)
704 [CF] Makefile.am: Avoid duplication of man page filter script.
706 [CF] smartd: Add option '-C, --capabilities' if libcap-ng is available
708 Support is added if libcap-ng is found during build. This can
709 be overridden by configure option '--with-libcap-ng=[auto|yes|no]'.
711 Based on Debian patch:
712 http://patch-tracker.debian.org/patch/series/view/smartmontools/5.39-3/62_lowcap.patch
713 Modified to fix regression (ticket #41, Debian bug 564876).
715 [CF] Bugfix release 5.39.1.
717 [CF] Linux: Fix spin-up of SATA drive if '-n standby' is used
718 (ticket #37). For some reason, this happens if the SCSI/SAT
719 device is opened with O_RDWR instead of O_RDONLY.
721 [CF] Windows: Fix parsing of 'tw_cli' output for 3ware 9.5.x release
724 [CF] Add USB IDs of Seagate FreeAgent Go, Seagate Expansion Portable
725 and WD My Passport (IDE).
727 [CF] autogen.sh: Fix version regexp, allow automake 1.11.1.
729 [CF] Linux: Allow smartd 'DEVICESCAN -d sat' (ticket #13).
730 Detects (S)ATA devices behind a standard SAT layer
731 (Vendor ID: "ATA "), but not USB bridges with SAT support.
732 Only added for backward compatibility with 5.38.
733 No longer needed as 'DEVICESCAN' without '-d' includes these devices.
735 [CF] Add USB ID of Seagate FreeAgent Desktop.
737 [CF] smartd: Fix directive '-l selftest' (ticket #36)
738 Regression was introduced with r2773.
740 [CF] smartd: Don't disable attribute tracking if read thresholds fails.
741 Windows: Don't return dummy thresholds if IOCTL_STORAGE_QUERY_PROPERTY
742 or 3ware CLI is used to read SMART data.
744 [CF] Windows: Print warning if admin rights are missing.
746 [CF] Replace some 'EXIT(status)' calls by 'return status'.
747 Remove unnecessary casts from 'nonempty()' calls.
749 [CF] Windows: Set ata_device::ata_identify_is_cached() return value
750 according to I/O-control actually used.
752 [CF] Print ATA output registers if SMART status command returns bogus
755 [CF] Windows: Don't return false ATA version info if IDENTIFY data
756 is build from IOCTL_STORAGE_QUERY_PROPERTY result or from 3ware CLI
758 smartctl: Handle missing info about ATA version in '-i' output.
760 [CF] smartctl: Don't print log directory if '-q errorsonly' is specified.
762 [CF] smartctl: Fix option '-q, --quietmode' (ticket #11).
763 Regression was introduced with r2807.
765 [CF] drivedb.h update:
766 - SAMSUNG SpinPoint F2 EG series
768 [CF] Add USB ID of Samsung Story Station.
770 [MS] drivedb.h update:
771 - Hitachi Travelstar 5K320: some EA models miss last 2 "0"
773 - Seagate Barracuda LP series
775 [CF] drivedb.h update:
778 [CF] drivedb.h updates:
779 - WDC Scorpio Blue Serial ATA (640GB, 750GB, 1TB)
780 - WDC My Passport Essential SE
782 [CF] Add USB ID of Toshiba PX1270E-1G16.
784 [CF] Happy New Year! Update copyright year in version info.
786 [CF] drivedb.h update:
787 - SAMSUNG SpinPoint M40/60/80 series
789 [CF] Add direct access to 48-bit LBA register in 'ata_in/out_regs_48bit'.
791 [DL] drivedb.h updates:
792 - WDC My Passport Essential/USB (capacity 250GB, 400GB & 500GB)
794 [DL] -r ataioctl,2: print text representation of data also (ticket #32)
796 [DL] FreeBSD: freebsd_ata_device::ata_pass_through implemented (part of ticket #18)
798 [CF] drivedb.h updates:
799 - Hitachi Travelstar 7K320 (ticket #28)
800 - Hitachi Travelstar 7K500
802 [DL] -l gpllog,...: print text representation of data also (ticket #30)
804 [DL] FreeBSD: check reallocf() result for failures
806 [AS] FreeBSD: fixing crash on kFreeBSD (#29), patch provided by Petr Salinger
808 [CF] Makefile.am: 'make check' now tests the syntax of drivedb.h.
810 [CF] Cygwin: Open drive database files in text mode.
812 [CF] Cygwin: Check for 'syslogd' and 'syslog-ng' in initd script.
814 [CF] Windows: Disable Win9x/ME specific code if no longer supported
817 [CF] Add '-v ID,FORMAT:BYTEORDER[,NAME]' to specify byte order
818 of attribute raw value.
820 [CF] configure.in: Change --with-docdir default from
821 'PREFIX/share/doc/smartmontools-VERSION' to
822 'DATADIR/doc/smartmontools' to make it consistent with
823 --docdir option added in autoconf 2.6x (ticket #24).
824 Autoconf 2.5x is still supported.
826 [CF] Move drive database entries from 'knowndrives.cpp' to new file
827 'drivedb.h'. This allows to update the drive database from SVN
828 if installation was configured with '--enable-drivedb'.
829 Remove the Makefile target to create 'drivedb.h'.
831 [CF] do_release: Add support to release from a dir below 'branches'.
832 Accept partial checkouts.
834 smartmontools 5.39.1 2010-01-28
836 [CF] Linux: Fix spin-up of SATA drive if '-n standby' is used
837 (ticket #37). For some reason, this happens if the SCSI/SAT
838 device is opened with O_RDWR instead of O_RDONLY.
840 [CF] Windows: Fix parsing of 'tw_cli' output for 3ware 9.5.x release
843 [CF] Linux: Allow smartd 'DEVICESCAN -d sat' (ticket #13).
844 Detects (S)ATA devices behind a standard SAT layer
845 (Vendor ID: "ATA "), but not USB bridges with SAT support.
846 Only added for backward compatibility with 5.38.
847 No longer needed as 'DEVICESCAN' without '-d' includes these devices.
849 [CF] smartd: Fix directive '-l selftest' (ticket #36)
850 Regression was introduced with r2773.
852 [CF] smartctl: Don't print log directory if '-q errorsonly' is specified.
854 [CF] smartctl: Fix option '-q, --quietmode' (ticket #11).
855 Regression was introduced with r2807.
857 [CF] Happy New Year! Update copyright year in version info.
859 [DL] FreeBSD: check reallocf() result for failures
861 [AS] FreeBSD: fixing crash on kFreeBSD (#29), patch provided by Petr Salinger
863 [CF] do_release: Add support to release from a dir below 'branches'.
864 Accept partial checkouts.
866 smartmontools 5.39 2009-12-09
868 [CF] do_release: Commit CHANGELOG and NEWS also. Allow to review changes.
870 [CF] Linux: Add workaround for Adaptec series 2, 5 and 5Z controllers
871 with firmware >= 17380. Patch was provided by Phil Wilson, see:
872 http://linux.adaptec.com/2009/07/24/using-smartmontools-538-with-series-255z-controllers-with-firmware-17380-onwards
874 [CF] configure.in: Add '-fno-strict-aliasing' to CXXFLAGS if supported.
875 This suppresses gcc 4.4.1 warnings on Linux and avoids possible
876 unsafe optimizations (ticket #23).
877 Patch was provided by Manfred Schwarb.
879 [CF] Avoid truncation of configure arguments in '-V' output.
881 [AS] Added USB IDs of WD Passport USB Portable
883 [CF] Linux: Fix segfault in 3ware interface (ticket #22).
885 [MS] knowndrives.cpp updates:
886 - Hitachi Deskstar 7K2000
887 - Seagate Momentus 7200 FDE.2 series
889 [CF] Add USB ID of WD My Passport 070A.
890 knowndrives.cpp update:
891 - WD My Passport hard drive (USB interface)
893 [CF] smartd: Write 'worst' attribute value to '.state' file also.
894 This allows to use state persistence with 'raw64' attributes.
896 [CF] Rework ATA SMART attribute check in smartctl and smartd.
897 smartd: Ignore normalized attribute value and threshold
898 if 'raw64' or 'hex64' format is selected.
900 [CF] Add USB IDs of Iomega LPHD080-0, 2 Genesys Logic bridges and
903 [MS] knowndrives.cpp update: Hitachi Travelstar 5K320 series
905 [CF] smartctl: Ignore normalized attribute value and threshold
906 if 'raw64' or 'hex64' format is selected.
908 [CF] knowndrives.cpp updates:
909 - add OCZ-Vertex raw64 attributes
911 Thanks to Marcin Marszalek for the patch.
913 [CF] Add '-v ID,hex*' print formats. Fix '-v N,FORMAT,NAME' parsing.
915 [CF] Add '-v ID,raw64[,...]' print format based on a patch provided
918 [CF] Add '-v ID,RAW_FORMAT[,ATTR_NAME]' option. This allows to add new
919 attributes without the need to enhance the '-v' option.
920 Rework attribute name and raw value formatting.
922 [CF] Fix auto_ptr initialization in linux_scsi_device::autodetect_open().
924 [CF] Remove duplicate function smart_device_list::add().
925 Replace calls with push_back().
927 [MS] attribute update:
928 trim attribute names to 23 chars
930 [CF] Add smart pointer class template to manage device object pointers.
931 Remove related 'delete' calls and 'try/catch' blocks.
933 [CF] do_release: Replace generation of '*.asc' by '*.md5' and '*.sha1'.
935 [MS] attribute updates:
936 - change attributes 202,204,205 to the meanings as found in wdidle3.exe
937 retain old entries as comments (possible Fujitsu use)
938 - add attribute 240 as found in Fujitsu MHY2xxxBH
940 [MS] attributes updates:
941 - attributes 225, 232 and 233 for Intel X25-E SSD
942 - non-conflicting attributes extracted from wdidle3.exe
943 (thanks to Franc Zabkar and Dan Lukes)
945 [CF] Update Windows and ./configure info in INSTALL file.
947 [CF] Update 'do_release' script for SVN.
949 [MS] knowndrives.cpp updates:
950 - Western Digital MyPassport Essential hard drive (USB interface)
951 - Seagate Momentus 7200.4 series
952 - Western Digital Raptor X
955 [CF] knowndrives.cpp updates:
956 - New Seagate 7200.11 firmware version
959 [CF] smartctl: Use printf() instead of pout() for exception error
960 messages to avoid access to bogus 'con->dont_print'.
962 [CF] smartd: Add missing help texts for '-A', '-B' and '-s'.
964 [CF] Add missing check for log page 0x11 support to smartctl
967 [CF] Add USB ID of Freecom Hard Drive XS.
969 [AS] Linux: Autodetect DELL PERC and MegaRAID controllers.
970 Hiding debug messages coming from megaraid code.
972 [AS] Linux: Fixed SATA drives support on megaraid device (see ticket #15).
974 [AS] FreeBSD: Removed all old detection code, moving everything to
975 the objects. Now we are using CAM/ATA enumerators to guess device
978 [AS] FreeBSD: Added autodetection for the ada disks (untested).
979 Code for USB device detection refactored.
981 [AS] FreeBSD: cam_get_umassno rewritten using XPT_PATH_INQ
983 [AS] FreeBSD: do not open/close cam device on every request for SCSI
984 disks. Use com->camdev both for SCSI and ATAPICAM.
986 [AS] FreeBSD: added support for the ada disks, based on agapon patch
988 [CF] Add names for attributes 184 and 188, see ticket #17.
990 [CF] configure.in: Change configure date syntax.
991 Add message to '-mno-cygwin' option check.
993 [GK] Add names for some attributes used in MLC flash drives:
994 175, 176, 177, 181, 182
996 [CF] Windows: Check support of gcc '-mno-cygwin' option in configure.
997 This option has been removed in Cygwin gcc 4.x. Update INSTALL
998 instructions accordingly.
1000 [CF] Increase SCSI_TIMEOUT_DEFAULT from 6 to 20 seconds to avoid
1001 timeouts when a disk spins up from standby mode.
1003 [CF] Add USB ID of AcomData 504 (OnSpec USB bridge).
1005 [AS] Correcting manual pages (FreeBSD related)
1007 [AS] FreeBSD: fix FTBFS on GNU/kFreeBSD (reported by derevko).
1009 [AS] FreeBSD: Add USB autodetection to smartd DEVICESCAN directive.
1011 [CF] Add USB ID of Myson Century CS8818, add some comments.
1013 [CF] Return info strings from 'smart_interface::get_*()' functions as
1014 'std::string' instead of 'const char *'. Static buffers are no
1017 [SZ] FreeBSD: Fix highpoint type detection and ioctl failed for parameter
1020 [CF] Linux: Add USB autodetection to smartd DEVICESCAN directive.
1022 [CF] Add USB IDs of Maxtor Basics Desktop and ISD-300A1.
1024 [AS] Use malloc() to ensure that the read buffer lands on a single
1025 page. This avoids some bugs seen on LSI controlers under
1028 [CF] Add missing help text for '-d usb*' options.
1030 [CF] Linux: Dereference '/dev/disk/by-*/*' symlink before device type
1033 [AS] FreeBSD: Support SATA disks attached to a SAS controller (based on
1034 patch from freebsd ports tree).
1036 [AS] FreeBSD: Added FreeBSD 8 libusb2 device autodetecion, new
1037 configure check for -lusb.
1039 [AS] FreeBSD: Added USB device autodetection and fixed -d switch behavior.
1041 [AS] FreeBSD: Migrate os_freebsd.cpp to new interface.
1043 [CF] Fix max number of 3ware devices, 128 devices are supported again.
1044 Regression was introduced during migration to new interface.
1045 Thanks to Michael Holweg for the problem report.
1047 [CF] Windows installer: Add 'DisplayVersion' to uninstall registry key.
1049 [MS] knowndrives.cpp updates:
1050 - Marvell SSD SD88SA024BA0
1051 - Fujitsu MHZ2 BH series
1052 - Fujitsu MHZ2 BJ series
1053 - Seagate Maxtor DiamondMax 23
1054 - WD Caviar Green: Add some 32MB cache variants
1055 - relax OCZ-Vertex pattern
1057 [CF] Add USB ID of Verbatim FW/USB160.
1059 [CF] Fix data type bug in checksum test for multi sector logs.
1061 [CF] Add USB ID of Seagate FreeAgent Go.
1063 [MS] Add experimental feature to log attribute values at each check
1064 cycle (ATA only), activated with the smartd option
1065 "-A PREFIX" / "--attributelog=PREFIX".
1066 Introduce configure options "--enable-attributelog" and
1067 "--with-attributelog=PREFIX" to enable feature by default.
1069 [DG] [SAT] Heads up about a non backwardly compatible change
1070 introduced in draft SAT-2 (sat2r8b.pdf) that will break our
1071 existing SAT processing code. Action needed if change stands.
1073 [MS] smartd.cpp: Adjust umask
1075 [CF] Makefile.am: Remove 'uninstall-docsDATA' target to fix
1076 'make distcheck' with automake 1.11. The 'make uninstall'
1077 of examplescripts fails if docdir does no longer exist.
1079 [CF] Remove 'scsiata.h'. The 'scsiata.cpp' module now implements
1080 parts of 'dev_interface.h'.
1082 [CF] smartctl: Don't report an attribute as failed if threshold is 0.
1084 [CF] Print only one warning on checksum errors in multi sector log.
1085 Remove casts from calls of checksum().
1087 [DG] minor changes to SCSI background scan strings
1089 [MS] knowndrives.cpp updates:
1090 - Fujitsu MHW2 BJ series
1091 - WD Caviar Black family
1093 [MS] Makefile.am: Make creation of svnversion.h independent of
1096 [CF] Require to specify PORT parameter of '-d usbjmicron' if two disks
1099 [CF] smartctl: Limit default number of printed entries for
1100 '-l xerror' to 8, for '-l xselftest' to 25.
1102 [CF] smartctl: Fix number of entries in '-l xselftest' output.
1104 [CF] Add USB IDs of a SunplusIT bridge, three WD drives, and an
1105 unsupported Iomega drive.
1107 [CF] Makefile.am: Use 'svnversion' instead of 'svn info' to get
1108 the revision number. This also checks for mixed and modified
1111 [CF] Remove CVS Id strings from '-V, --version' output.
1113 [CF] Update CONTRIBUTORS section on man pages.
1115 [CF] Makefile.am: 'make maintainer-clean' now removes also files
1116 generated by './autogen.sh'.
1118 [CF] Invalidate 'do_release' script, it needs some rework for SVN.
1120 [CF] Update documentation files for SVN.
1122 [CF] Rename trunk/sm5 to trunk/smartmontools.
1124 [CF] Print SVN revision number instead of time in version info line.
1125 Get SVN revision number from svn (if available) or guess from
1126 Id strings. Rename generated file to svnversion.h.
1128 [CF] Makefile.am: Modify generation of cvsversion.h for SVN.
1130 [GP] Convert CVS repository to SVN.
1132 [CF] smartd: Fix size of monitor flag array from previous commit.
1134 [CF] Makefile.am: Add missing 'megaraid.h'.
1136 [CF] smartd: Add '!' flag to '-r' and '-R' directives. If specified,
1137 message is logged as LOG_CRIT and warning mail is sent if
1138 attribute normalized or raw value changes.
1140 [CF] Replace global 'con->...' variables used for selective self-tests
1143 [GK] Add names for some attributes used in Samsung MLC drives:
1146 [CF] smartctl: Add option '-x, --xall' to print all info including
1147 extended SMART logs and non-SMART info.
1149 [CF] smartctl: Add '-l xerror,error' and '-l xselftest,selftest' to print
1150 the old logs if the extended logs are not supported.
1152 [MS] knowndrives.cpp updates:
1153 - Western Digital AV-GP series
1154 - Transcend Solid-State Drive and Transcend Solid-State Drive V series
1155 - Seagate Momentus 5400.5 series
1157 [CF] Disable 48-bit ATA commands for JMicron USB bridges by default
1158 because these commands do not work with all devices.
1159 Add '-d usbjmicron,x' to enable 48-bit commands.
1160 Thanks to Alexander Shaduri for the problem report.
1162 [CF] smartd: Don't ignore the '-n' directive when a self-test is
1163 scheduled. Start the self-test later when the disk is active
1166 [DG] SCSI (SAS): implement '-l sasphy,reset' (reset part was stub
1169 [DG] add 'ATA, SCSI command sets and SAT' section to smartctl.8 .
1170 [SCSI] add 'number of background medium scans' field
1172 [DG] SCSI (SAS): add '-l sasphy' and '-l sasphy,reset' into smartctl
1173 to output SAS device phy information (from the Protocol specific
1176 [CF] autogen.sh: Remove 'CYGWIN=check_case:strict', this does no
1177 longer work on Cygwin 1.7. Print warning if Automake version
1178 cannot handle case insensitive filesystems.
1180 [CF] Remove '#define TRUE/FALSE', use 'bool' and 'true/false'.
1182 [CF] Add 'options' parameter to SCSI printing routine. Move global
1183 'con->...' smartctl variables to 'options' parameters of
1186 [CF] Windows: Remove outdated entry about undocumented system calls
1189 [CF] Print General Purpose Logs even if GPL feature bit is missing.
1190 Needed for some older disks which implement READ LOG EXT but
1191 do not report the GPL feature set.
1192 Change order of the extended log outputs ('-l xerror',
1193 '-l xselftest', '-l sataphy'). Extended logs are now printed
1194 before their old versions.
1196 [CF] autogen.sh: automake 1.10.2 and 1.11 are OK.
1198 [CF] Fix syntax error in prototype of 'safe_snprintf()'.
1199 Thanks to Alexander Shaduri for bug report and patch.
1201 [DG] SCSI: Fetch load-unload cycle counts.
1203 [CF] Windows: Add Win-7 and Win2008 to get_os_version_str().
1205 [CF] smartd: Fix '-M test' directive in conjunction with '-s' option.
1206 Thanks to Matthias Becher for the problem report.
1208 [MS] knowndrives.cpp updates:
1209 - Add Seagate Barracuda 7200.12 series
1210 - Add Seagate Momentus 5400.4 series
1211 - Add Hitachi Deskstar 7K1000.B series
1212 - Add Transcend SSD TS32GSSD25-M
1213 - Add OCZ Vertex 1199
1215 [CF] knowndrives.cpp updates:
1216 Add Samsung S250 series.
1217 Add '-v 198,increasing' to Samsung P80.
1218 Replace '#if/#endif' by comment to fix configure option
1221 [CF] knowndrives.cpp update:
1222 Add Seagate 7200.11 with 'CC' firmware which is unaffected
1223 by the bug. Thanks to Bas Mevissen for the patch.
1225 [CF] Replace global 'con->...' variables used for drive presets
1228 [CF] Simplify '-v' vendor attribute option parsing.
1229 Add '-v 197,increasing' and '-v 198,increasing' options
1230 to specifiy that an uncorrectable count is never reset.
1231 This modifies the printed attribute names and smartd's
1232 default setting of '-C' and '-U' directives.
1233 Both '-v' options can also be preset in the drive database.
1235 [CF] Add '+' modifier to smartd '-C' and '-U' directives.
1236 If specified, a warning is only printed if the raw value
1239 [CF] Add smartctl option '-l xselftest[,NUM]' to print
1240 ATA SMART Extended Self-test Log (GP Log 0x07).
1242 [CF] Add experimental option '-d usbsunplus' for drives behind
1243 SunplusIT USB bridges. Tested on WinXP with SPIF215(?) in
1244 TrekStor DataStation maxi m.u.. Many thanks to SunplusIT
1245 tech support for providing the required information.
1247 [CF] Windows: Provide a non-console version of smartctl.exe
1248 as smartctl-nc.exe. This prevents that a new console is
1249 opened when smartctl is run from a GUI program with
1251 Used by GSmartControl (http://gsmartcontrol.berlios.de/).
1253 [CF] Remove support for platforms without getopt_long() in
1254 smartctl.cpp and smartd.cpp. If getopt_long() is missing,
1255 ./configure aborts with an explanatory message.
1256 For now, short option help texts are only removed from
1257 os_linux.cpp and os_win32.cpp. HAVE_GETOPT_LONG is still
1258 defined in config.h.
1260 [CF] Add smartctl '-d test' option to print the result of the
1261 device type detection.
1263 [CF] Enhance USB device type autodetection, use bcdDevice if known.
1264 Add Cypress CY7C68300B/C (AT2LP) to the table.
1266 [CF] Linux: Add experimental USB device type autodetection.
1267 Uses USB ID info found through symlink "/sys/block/sdX/device".
1269 [CF] Windows: Add experimental USB device type autodetection.
1270 Uses WMI command line tool 'wmic' to query USB ID.
1272 [CF] Add function smart_interface::get_usb_dev_type_by_id() to map
1273 USB vendor:product IDs to '-d type' names. Can be used by
1274 platform dependent layer to autodetect USB devices if ID of
1275 USB bridge is known.
1277 [CF] smartd: Log changes of self-test execution status if
1278 '-l selftest'is specified.
1280 [CF] knowndrives.cpp update:
1281 Samsung SpinPoint F1 RE series
1283 [MS] knowndrives.cpp update:
1284 Seagate Momentus 5400.6 series
1286 [CF] Add forgotten SCSI sense checks to class usbjmicron_device.
1288 [CF] Add new SMART STATUS check command for JMicron USB bridges.
1289 Should support also older chip versions and prevents a race
1292 [CF] Windows: Fix win_scsi_device::scsi_pass_through() for single byte
1293 data transfers. Required for JMicron SMART STATUS check.
1295 [MS] knowndrives.cpp update:
1296 Add Hitachi Travelstar C4K60 family (1.8" slim drives)
1298 [MS] Workaround for huge raw values of attribute 9, needed
1299 for Hitachi Travelstar C4K60. For the Power_On_Minutes case,
1300 clip the display to 4 bytes and show the remaining part,
1301 if existent, in parens.
1303 [CF] Add experimental option '-d usbjmicron[,PORT]' for drives
1304 behind JMicron USB bridges. Tested on WinXP with JM20336 in
1305 AixCase AIX-ESU35CD. Many thanks to JMicron tech support
1306 for providing the required information.
1308 [MS] knowndrives.cpp update:
1309 Add WD Caviar Green 8MB and 32MB cache variants, stretch to 2TB.
1311 [CF] knowndrives.cpp updates: Add more entries for Samsung P80 disks
1312 with old and unknown firmware. Remove old entries which would
1313 match any new Samsung model reusing old firmware version number.
1315 [CF] Windows: Add a workaround for missing multi-sector support
1316 for ATA READ LOG EXT command.
1318 [CF] Fix Extended Comprehensive Error Log index base.
1319 Add workaround for Samsung disks using reserved byte as index.
1321 [CF] knowndrives.cpp updates: Update bug warnings for
1322 Seagate 7200.11, ES.2 and DiamondMax 22. Add new entries
1323 for fixed firmware versions.
1325 [CF] Add smartctl option '-l xerror[,NUM]' to print
1326 ATA SMART Extended Comprehensive Error Log (GP Log 0x03).
1328 [MS] knowndrives.cpp update:
1329 Added remaining WD Scorpio Blue SATA II drives
1331 [CF] Minor fix to remove ID 0 from 'smartctl -l sataphy ...' output.
1333 [CF] knowndrives.cpp updates: Add warnings about possible firmware
1334 bugs to Seagate 7200.11, ES.2 and DiamondMax 22 entries.
1336 [CF] knowndrives.cpp updates: Add Samsung SpinPoint F1 series.
1338 [CF] Windows: Fix return value of scsi_pass_through(). Regression
1339 was introduced during migration to new interface. SAT over USB
1340 now works on XP (both '-d sat,12' and '-d sat,16').
1342 [MS] knowndrives.cpp updates:
1343 - Added Western Digital RE2-GP family
1344 - Added Hitachi Travelstar E5K160 family
1345 - Allow uppercase variants of Hitachi 5K160 drives
1347 [CF] Fix smartctl crash on '-l directory,[gs]'. Allow to override
1348 missing GPL feature bit or missing log dir entry with
1349 '-T permissive' option.
1351 [SZ] os_freebsd.cpp, os_freebsd.h updates:
1352 Support HighPoint RocketRAID controller under FreeBSD
1354 [MS] knowndrives.cpp updates:
1355 - Added Western Digital RE3 32MB cache variants
1356 - Added WD Caviar Green 32MB cache variant (WD10EADS)
1357 - Added WD Scorpio Black family
1359 [DG] Accept half healthy (and half unhealthy) indication from the
1360 SMART RETURN STATUS. This makes allowance for SAT implementations
1361 (e.g. via USB) that truncate the SCSI sense buffer to 18 bytes.
1362 This truncation causes the SMART RETURN STATUS indication to be
1363 half health or unhealthy. If the half indication is used, then
1364 warn if '-r ioctl' is given.
1366 [MS] knowndrives.cpp updates:
1368 - Added Seagate U8 family
1370 [DL] os_freebsd.cpp:
1371 Added support for CHECK_POWER_MODE and WRITE_LOG commands
1373 [MS] knowndrives.cpp update:
1374 There seem to exist WD Raptors with SATA II interface, add them.
1376 [MS] knowndrives.cpp updates:
1377 - Added remaining Seagate Barracuda 7200.11 drives
1378 - Added HP 1TB SATA disk
1380 [MS] knowndrives.cpp updates:
1381 - Added Maxtor 92040U6 (DiamondMax Plus 6800)
1382 - Added Seagate Maxtor DiamondMax 21 500GB version
1383 - Added QUANTUM FIREBALLlct15 22
1384 - Added QUANTUM FIREBALL CR6.4A
1385 - Added QUANTUM FIREBALLP LM20.4
1386 - Added SUN branded Toshiba MK4019GAX
1387 - Added TOSHIBA MK1016GAP and relatives: MK1[05]1[67]GAP
1388 - Added Western Digital WD800AB and WD2500AB
1389 - Some Hitachi 7K160 drives have garbage at end of name: permit it
1391 [CF] Add smartd '-n powermode,N' directive parameter to limit the
1392 number of skipped checks. Thanks to Michal Hlavinka for the patch.
1394 [MS] knowndrives.cpp updates:
1395 - Added Hitachi Endurastar J4K30/N4K30
1396 - Added Hitachi Travelstar 4K120 series
1397 - Some Hitachi 7K80 drives have garbage at end of name: permit it
1398 - IBM Travelstar 6GN series
1400 [MS] knowndrives.cpp updates:
1401 - Added Quantum Fireball ST4300A
1402 - Added Asus-Phison SSD (solid state disk)
1403 - Added Seagate DB35.3 Series
1404 - Added remaining disks of the Seagate SV35.2 Series
1406 [MS] Fix trivial compile error with "-pedantic"
1408 [MS] Workaround for huge raw values of Reallocated_Sector_Ct and
1409 Reallocated_Event_Ct for newer Fujitsu disks (only the lower
1410 16 bits seem to be meaningful). Clip the display to 16 bits
1411 and show the remaining part, if existent, in parens. Patch by [CF].
1413 [CF] smartd DEVICESCAN: Fix autodetection of SAT devices.
1414 Thanks to Stanislav Brabec for bug report and testing.
1416 [MS] knowndrives.cpp update:
1417 Convert file to full string regex: remove "^$" from pattern
1419 [MS] knowndrives.cpp updates:
1420 - Added Seagate Momentus 5400 PSD series (hybrid drives)
1421 - Added Seagate Momentus 7200.3 series
1422 - Added Hitachi Deskstar 7K250 (SUN branded)
1423 - There are Hitachi Travelstar 5K250 drives with capital "HITACHI"
1424 - Correct regex for Maxtor VL 30 drives
1426 [CF] Add configure options '--enable-savestates' and
1427 '--with-savestates=PREFIX' to enable smartd persistence
1428 ('-s' option) by default.
1430 [CF] smartd: Add '-s ([cnr]/../.././..)' directive to run scheduled
1431 selective self-tests. Useful to perform full tests of large disks
1434 [CF] Allow to read local drive database entries from optional file
1435 '${sysconfdir}/smart_drivedb.h'.
1436 Add configure options '--enable-drivedb' and '--with-drivedbdir=DIR'.
1437 If specified, drive database is read from '${drivedbdir}/drivedb.h'.
1438 (default '${prefix}/share/smartmontools/drivedb.h'). This file
1439 is build from knowndrives.cpp.
1441 [MS] knowndrives.cpp updates:
1442 - Added 640GB variants of Western Digital AAKS and AACS drives
1443 - Added Western Digital AV ATA family
1444 - Added 160GB variant of Hitachi P7K500
1445 - Added 500GB variant of Hitachi 7K1000
1446 - Some cleanup for Quantum disks
1447 - Added Seagate Maxtor DiamondMax 22 family
1449 [CF] Use full string match for regexp in drive database.
1451 [CF] Add option '-d sat+TYPE' to use SAT with controllers which
1452 require option '-d TYPE'. Should work with '-d sat+megaraid,N'.
1453 As a side effect, '-d usbcypress+TYPE' is also supported.
1455 [CF] Add parser to read drive database from a file. Add '-B' option
1456 to smartctl and smartd to specify database file name. File syntax
1457 is identical to the C/C++ syntax used to inialize the internal
1460 [CF] New syntax for drive database: Specify presets by strings
1461 with '-v' and '-F' options. Use empty strings instead of NULL.
1463 [JPH] Added Linux support for viewing disks behind MegaRAID
1466 [CF] smartd: Improve min/max temperature recording in conjunction
1469 [CF] Add a wrapper class for FILE *.
1471 [CF] smartd: Add experimental support for state persistence (ATA only).
1472 Add option '-s' to specify path prefix for state files.
1473 Rework scheduled self-test detection to support persistence.
1474 If any test schedules are within downtime, the highest priority
1475 test is run after next startup.
1477 [CF] Remove casts from 'format_ata_string()' calls.
1479 [CF] Minor changes to fix errors and warnings from Cygwin gcc 4.3.0.
1481 [CF] smartd: Remove SCSITIMEOUT code. According to smartd.h 1.54 CVS log
1482 from 2003-10-27, it did never work.
1484 [CF] Remove dependencies ataprint.cpp and scsiprint.cpp from smartd.
1485 Move common ATA functions from ataprint.cpp to atacmds.cpp.
1486 Module scsiprint.cpp was apparently never used in smartd.
1488 [CF] Move smartd local declarations from smartd.h and utility.h to
1489 smartd.cpp. Remove smartd.h.
1491 [CF] Fixed extra '\n' in "Offline data collection status" output.
1492 Thanks to Alexander Shaduri for the patch.
1494 [CF] smartd: Separate device configuration data from device state data.
1495 Use references instead of pointers for configuration and state data.
1497 [CF] Add const-correctness and static to ATA support functions.
1499 [CF] Add a wrapper class for regex.
1501 [CF] Simplify 'create_vendor_attribute_arg_list()'.
1503 [CF] smartd: Rework of main data structures. Remove explicit memory
1504 allocations, use STL containers and structs with value semantics
1505 instead. Remove old malloc/free based memory management helper
1506 functions unless old interface is still in use.
1508 [CF] Linux: Cleanup device scan, remove name list, create objects directly.
1510 [CF] Linux: Cleanup smart_device::open(), type strings are no longer used.
1512 [CF] Remove CONTROLLER_* defines and variables unless old interface
1515 [CF] Linux: Migrate 3ware interface to 'ata_pass_through()'.
1516 Multi-sector support is not complete yet. 48-bit commands
1518 WARNING: Not tested, please review code before first test!
1520 [CF] Linux: Migrate os_linux.cpp to new interface.
1522 [CF] Add direct access to 16-bit registers in 'ata_in/out_regs_48bit'.
1524 [CF] Add 'ata_cmd_is_ok()' parameter check,
1525 remove 'ata_pass_through_28/48bit()' functions.
1527 [CF] Add CVS date/time from cvsversion.h to man pages also.
1529 [CF] Add configure option '--with-os-deps='os_module.o ...' to specify
1530 alternate OS interface modules. Useful for testing during migration.
1532 [CF] Remove declarations of 'optarg', 'optind', ..., include <unistd.h>
1533 instead. This fixes 'auto-importing' linker warnings on Cygwin.
1535 [CF] Add '-l sataphy[,reset]' to print SATA Phy Event Counters.
1537 [CF] Add '-l gplog,ADDR[,FIRST[-LAST|+SIZE]]' and '-l smartlog,...'
1538 to dump any log page accessible via GP or SMART read log commands.
1540 [CF] Enhance '-l directory' to print both GP and SMART Log directories.
1541 Add '-l directory[,gs]' modifiers to select GP or SMART log.
1542 Enhance 'ata_cmd_in' parameter struct for 48-bit commands.
1544 [CF] Windows: Add full ATA pass through support including 48-bit commands.
1546 [CF] Windows: Migrate os_win32.cpp to new interface.
1548 [CF] SAT: Add full ATA pass through support including 48-bit commands.
1550 [MS] knowndrives.cpp update
1551 - Added FUJITSU MHZ2250BS G2 and family
1553 [MS] knowndrives.cpp updates
1554 - Added Maxtor DiamondMax 60 94098H6
1555 - Added Maxtor DiamondMax 1280 84000A6 and family
1556 - Added Maxtor DiamondMax VL 30 31536H2 (ATA100) and family
1557 - Some Seagate Barracuda 7200.9 have garbage at end of name: permit it
1558 - Added Seagate Barracuda ATA ST320430A and family
1559 - Regression from previous checkin: add WD RE2 WD...0ABYS again
1560 - Added WD RE3 WD5002ABYS and family
1561 - Added Quantum Fireball CR13.0A
1562 - Added Hitachi Travelstar 5K250 HTS542525K9SA00 and family
1563 - Added WD AC420400D and add whole range of AC.... which
1564 have 5400rpm or higher (i.e. PIO-only drives omitted)
1566 [MS] knowndrives.cpp updates
1567 - WD: Separated entries for EIDE and SATA
1568 - WD: Separated entries for Caviar SE, SE16, RE, RE2
1569 - WD Named: WD Caviar AC series
1570 - WD Renamed: WD Caviar RE/RE2 -> WD RE/RE2
1571 - WD Renamed: WD Caviar SE/SE16 WD....AA[A-Z][A-Z] -> WD Caviar Blue
1572 - WD Renamed: WD Scorpio WD....BEV[A-Z] -> WD Scorpio Blue
1573 - Added WD Scorpio Blue WD3200BEVT
1574 - Added WD RE2 WD5001ABYS and family
1575 - Added WD Caviar Green WD5000AACS and family
1576 - Added WD VelociRaptor WD3000GLFS and family
1577 - Added Seagate Barracuda ES.2 ST31000340NS and family
1578 - Added Samsung SP80A4H
1579 - Added Maxtor DiamondMax 21 STM3160215AS and STM3320620AS
1580 - Added Seagate Barracuda 7200.7 ST380819AS
1581 - Added Maxtor DiamondMax 10 6B100P0
1582 - Added Seagate SV35.2 Series
1583 - Added Fujitsu MHY2120BH and family
1584 - Added Fujitsu MHW2080BH PL (PL variant)
1585 - Added Toshiba MK3252GSX and family
1587 [BA] Fix smartctl bug: when running in silent mode '-q errorsonly'
1588 do not print the Selective Self-test log. Any errors will
1589 ALREADY appear in the SMART Self-test log.
1591 [CF] Add missing 'const' and other minor fixes to prevent gcc warnings.
1593 [OB] Added information message about supported Areca firmware versions.
1594 It's displayed in case the ATA device identification fails.
1596 [CF] Add configuration file for Doxygen.
1598 [CF] Add new object oriented interface to access ATA and SCSI devices.
1599 smartctl and smartd are modified to use the new classes in
1600 'dev_interface.{h,cpp}'. The template class in 'dev_tunnelled.h'
1601 is used in 'scsiata.cpp'. The code in 'dev_ata_cmd_set.{h,cpp}'
1602 supports migration from old function 'ata_command_interface()'.
1603 All existing 'os_*.cpp' modules should still work without any changes.
1604 The required adapter classes from 'dev_legacy.cpp' are automatically
1605 added by configure if necessary.
1607 [BA] Updated smartd and smartctl and smartd.conf man-page documentation
1608 to reflect support for Areca SATA RAID controller cards.
1610 [OB] Added support for Areca controllers to smartd. Extensive tests
1611 as well as documentation are still pending however.
1613 [OB] Implemented device locking for Areca controllers in smartctl
1615 [BA] Fixed selective self-test code. Data structure revision number
1616 may be != 1 if no selective self-test has ever been run. Host
1617 MUST set this value (at least at the first selective self-test
1618 instance). Thanks to Curtis Stevens of WDC for clarification.
1620 [MC] usbcypress autodetection
1622 [BA] Starting to commit Areca code. For now just smartctl.
1623 More changes and documentation coming soon.
1624 Need Areca firmware version 1.45 dated 10 June 2008 or later.
1625 May need changes in opening /dev/sg and file locking.
1626 Many thanks to Hank Wu!
1628 [CF] smartd: Fix too small name buffer for 3ware with >100 devices.
1630 [JH] now C++ Support for QNX Target
1631 already tested for QNX 6.3.2 on x86 and armle target
1633 [CF] Allow to set BUILD_INFO from make command line.
1635 [CF] Windows: Add MSVC8 support, remove MSVC6 project files.
1637 [MC] Add usbcypress device support for smartd.
1639 [CF] Add output of latest CVS date/time stamp to version info.
1640 New file cvsversion.h is generated by Makefile.
1641 Move formatting of version info to utility.cpp.
1643 [AR] Fix bug in 3ware node creation where nodes would be created
1644 then deleted, then recreated.
1646 [BA] Add missing CCISS cvs version tags to '-V' printouts.
1648 [TS] Linux: Ensure the 3ware device nodes are created with a correct
1649 SELinux security context.
1651 [AR] Add support for up to 128 devices on 3ware controllers.
1653 [CF] C++: Added new main() with exception handlers, replaced
1654 exit(x) with throw(x), removed global variable 'exitstatus'.
1655 Necessary for future changes, because exit() does not call
1658 [SS] FreeBSD: plug file descriptor leak in smartd (only happens with
1659 CISS devices). Reported by Vadim Ostranitsyn.
1661 [SS] FreeBSD: allow smartctl to interact with SCSI /dev/pass devices,
1662 thus enabling it to work with RAID controllers that expose disks
1663 via these devices. From scottl@ via FreeBSD ports.
1665 [MC] Add usbcypress device support for smartctl.
1667 [KS] INSTALL on Solaris: updated description to use C++ compiler.
1669 [KS] configure.in on Solaris: added options for Sun's compiler to
1670 suppress trivial warnings.
1672 [KS] configure.in on Solaris: added direction to search suitable
1673 libraries for getaddrinfo().
1675 [TS] smartd on Linux: remove forgotten return from deviceopen();
1676 SCSI device descriptors had the FD_CLOEXEC flag unset.
1678 [CF] Added 'const' to avoid warning on depreciated string constant
1679 to 'char *' conversion.
1681 [CF] autogen.sh: automake 1.10.1 is OK. Updated message texts.
1683 [BA] removed smartmontools.spec file (now in CVS Attic). This
1684 was not being used by RH or FC anyhow, and was out of
1685 date and not maintained.
1687 [BA] smartd on Linux: sets FD_CLOEXEC on the opened device file
1688 descriptor. The descriptor is otherwise leaked to other
1689 applications (mail sender) which may be considered a security
1690 risk and may result in AVC messages on SELinux-enabled systems.
1691 Thanks to: Tomá Smetana" <tsmetana@redhat.com>.
1693 [BA] smartd: when sending email, to gather information about the
1694 host for the body of the email, eliminate gethostbyname()
1695 in favor of the IPv6-friendly function getaddrinfo() if the
1696 latter is available. Info may be found here
1697 http://udrepper.livejournal.com/16116.html
1699 http://people.redhat.com/drepper/userapi-ipv6.html
1700 Thanks to: Tomá Smetana" <tsmetana@redhat.com>.
1702 Smartmontools developers: please check that smartd still LINKS
1703 properly on your systems.
1705 [BA] Fix ugly syntax bug in os_freebsd.cpp. How did this go
1706 undetected for so long??
1708 SMARTMONTOOLS STABLE RELEASE 5.38 2008/03/10
1710 [KS] Solaris/x86: modified configure.in for Sun's compiler.
1712 [BA] smartd.initd.in addition from Erwan Velu <erwan@seanodes.com>
1716 - On Linux, DEVICESCAN now automatically recognizes SATA devices
1717 behind libata, and SATA devices behind the Marvell driver, and
1718 treats them correctly.
1720 - On Linux, a '-d sat' or '-d marvell' is automatically added
1721 if libata or the marvell driver are recognized behind a SCSI
1724 [SS] (Maybe) fix attribute autosave in FreeBSD.
1726 [SS] Major NetBSD-specific bugfixes:
1727 - handle actual SCSI and ATA errors and not only ioctl() errors;
1728 - set up I/O request properly for AUTO_OFFLINE and AUTOSAVE commands (inspired by
1729 similar change in os_freebsd.cpp);
1730 - handle AUTO_OFFLINE and AUTOSAVE like STATUS_CHECK (like os_linux.cpp does).
1732 [GG] add kfreebsd gnu support to configure.in
1734 [BA] Fix auto-offline support in FreeBSD. Thanks to
1735 Cyrus Rahman <crahman@gmail.com> for the patch, and
1736 Eduard Martinescu for blessing it.
1738 [DG] smartd re-opens "SCSI" devices as ATA devices if a SAT layer is
1739 detected (smartd bug IMO). In Linux this upsets scsi generic
1740 device nodes (e.g. /dev/sg0). Detect the re-open in os_linux.cpp
1741 and set the O_RDWR flag (ATA uses the O_RDONLY flag).
1743 [CF] Drive database: Added Fujitsu MHW2 BH, Maxtor DiamondMax 17, 20, 21,
1744 Hitachi Travelstar 4K40, 5K120, 7K200, Deskstar 7K160, T7K500,
1745 T7K1000, Toshiba 1.8", Seagate Momentus 5400.3, 5400.3 ED, 7200.2,
1746 Barracuda 7200.11 and ES.
1747 Updated Toshiba 2.5", Seagate Barracuda 7200.9 and 7200.10.
1748 Added missing "(Hitachi )?" to Travelstar entries.
1750 [CF] Drive database: Added several Western Digital Caviar and Scorpio
1751 drives, added Caviar RE EIDE family.
1753 [CF] Drive database: Added Samsung P80 series with *-25 firmware.
1755 [CF] Replaced 'head [-n] -1' by 'sed 1...' in autogen.sh to avoid
1758 [BA] Fixed autogen.sh script so that it uses 'grep -n 1' if 'grep -1'
1759 fails. Needed for Mac OS X 10.4. Uck.
1761 [CF] Windows: Added IOCTL_STORAGE_PREDICT_FAILURE. This allows access
1762 to ATA SMART status and data if other calls do not work.
1763 Thanks to Jaroslaw Kowalski for pointing this out.
1764 Added support to use this function without admin rights.
1766 [CF] Added ATA-8 revision 4c message text.
1768 [CF] Added compiler.h to cciss_ioctl.h header check to prevent
1771 [SS] DragonFly support added (using os_freebsd code; untested).
1773 [CF] smartctl: Fixed ATA identify byte swapping issue on big-endian
1774 platforms. This regression was introduced by the change for
1775 '-F swapid'. Thanks to Matthew Butch for bug report and testing.
1777 [DG] SAT/SCSI: Improve SAT error processing code. Aborted commands from
1778 ATA devices (typically because SMART was disabled) were not being
1781 [GG] smartd: wait for the pid file to show up, return an error if it doesn't
1783 [JH] fix bad return code (get STATUS) for QNX Part
1785 [JH] initial porting to QNX Neutrino 6.3.2
1786 need at this time a prerelease devb-eide driver and libcam.so.2
1787 only tested for X86 Target, but devb-eide and lobcam.so.2 available for X86/ARM
1788 the officional driver coming soon with the next QNX release
1789 create two new source files os_qnxnto.[c..h]
1791 [CF] smartd: Added option '-n, --no-fork' so that smartd works
1792 better with modern init methods. Thanks to Enrico Scholz
1793 for the patch from 2005-12-24.
1795 [CF] Windows: Improved ATA/SCSI device type detection and
1796 DEVICESCAN. This also fixes a regression in 3ware DEVICESCAN.
1798 [CF] smartd: Don't start self tests in first pass to avoid
1799 performance problems during boot.
1800 https://bugzilla.novell.com/show_bug.cgi?id=192591
1802 [CF] Fixed regression in SMART STATUS command on Win9x/ME.
1804 [BA] Fixed 3ware issue with new controllers. Documentation said
1805 that one could address up to 24 disks on a single controller,
1806 but in fact one was limited to 16 disks. This is now fixed:
1807 up to 32 disks can be addressed. Thanks to Adam Radford.
1809 NOTE1: I have patched the Linux and FreeBSD code but not
1810 modified the Win32 code (it already supports up to 32 disks).
1812 NOTE2: NOT TESTED ON LINUX. Do not use this on a production box!
1813 I will remove this NOTE2 as soon as some positive test
1814 reports are recieved.
1816 NOTE3: NOT TESTED ON FREEBSD. Do not use this on a production box!
1817 I will remove this NOTE3 as soon as some positive test
1818 reports are recieved.
1820 [CF] Windows installer: Added explorer drive menu, CMD window,
1821 UBCD4Win plugin, smartd service update and other minor
1824 [CF] Windows: Modified drive letter handling for explorer drive
1825 context menu: try SCSI if type is unknown, allow 'X:\.' syntax.
1827 [CF] Windows: Added automatic ATA/SCSI device type detection and
1828 SCSI device scanning. The device names '/dev/sdX' and
1829 '/dev/pd<n>' now work for both ATA and SCSI disks.
1831 [CF] smartctl: Added ability to parse '-r ataioctl,2' output from
1832 stdin ('-') and simulate the ATA commands for testing purposes.
1834 [BA] SMART Attributes: added 187, 189, more accurate name for 190.
1836 [CF] Windows: Added drive letters 'X:' as alternate disk device names.
1838 [CF] smartctl: Added '-F swapid' to fix ATA identify string byte
1839 ordering. Added '-q noserial' to suppress serial number output.
1841 [CF] Windows: Added '/dev/n?st<n>' as alternate device names for SCSI
1842 tapes. These names are also used by Cygwin's /dev emulation layer.
1843 Thanks to Corinna Vinschen (Cygwin project lead) for pointing this
1846 [CF] Windows: Added IOCTL_SCSI_MINIPORT_*SMART* for commands not handled
1847 properly by SMART_IOCTL in disk class driver. This allows to use
1848 READ_LOG, WRITE_LOG and ABORT_SELFTEST even if the driver does not
1849 support ATA_PASS_THROUGH.
1851 [CF] Added ATA-8 revision 4, fixed WRITE LOG '-r ioctl' output.
1853 [BA] Updated smartctl and smartd so that they can be used with the latest
1854 3ware controllers which have 24 ports. Also updated docs.
1855 Thanks to Tim Bell at CERN.
1857 [GG] bit 4 in smartctl's return code might be set even when the dist check
1858 didn't return "DISK OK"
1860 [CF] Drive database: added '-F samsung3' for Samsung P80 firmware
1863 [SS] Applied patch from Dean Bennett to fix scheduled tests on
1864 Highpoint RAID controllers.
1866 [BA] Added patch from Tejun Heo http://thread.gmane.org/gmane.linux.ide/13222/focus=13235
1867 to fix broken auto-offline and auto-save via libata. Very clean fix: does it
1868 "the right way". Thanks Tejun!
1870 [CF] Added message text for ATA-7 self-test execution status 8
1871 ("... handling damage").
1873 [GG] cciss: support more than 16 disks (patch taken from
1874 http://cciss.sourceforge.net/smartmontools_cciss_more_than_16_drives.patch
1875 and adjusted for smartd)
1877 [DG] Solaris: [SCSI] add USCSI_RQENABLE flag to uscsi pass-through so
1878 sense buffer is made available. Expand reporting at this level.
1880 [GK] Darwin: Improve handling of powered-down drives.
1882 [SS] CCISS physical drive enumeration method changed (incompatibly).
1884 [CF] Fixed smartd crash on missing '-s' directive argument.
1886 [SS] Support CCISS on FreeBSD (kernel source is required until FreeBSD PR 109813
1889 [DG] SCSI/TAPE: some IBM tape drives don't react properly to a LOG
1890 SENSE with an allocation length of 4; work around for that case.
1892 [CF] Applied Guido's patch to fix CCISS LUN array bounds check
1893 (openSUSE bug #239956) and remove trailing spaces in
1896 [CF] Fixed 64-bit compilation issue in SCT status struct.
1898 [DG] SAT/SCSI: make real SCSI disks visible to DEVICESCAN in
1901 [CF] Fixed check of SCT temperature table size.
1903 [CF] Added ATA-8 draft revisions, added SCT status format 3.
1905 [CF] Drive database: added Samsung T166 series.
1907 [CF] ATA: Added ',p' option for '-t scttempint,N' to make
1910 [CF] ATA: Added '-t scttempint,N' option to set SCT temperature
1913 [CF] ATA: Added '-l scttemp[sts,hist]' options to print disk
1914 temperature information and history table provided by
1915 SMART Command Transport (SCT) Feature Set.
1917 [CF] ATA: Added '-t selective,{redo,next,cont}' commands to
1918 perform tests based on the last ranges still stored on
1919 disk. Added 'N+SIZE' and 'N-max' format for LBA range
1922 [CF] Added Min/Max Temperature format used in attribute 190 of
1923 recent Maxtor disks (DiamondMax 20).
1925 [CF] Linux: Added check for <linux/cciss_ioctl.h> to allow build
1926 (without CCISS support) also when this file is missing.
1928 [CF] Added -F samsung3 option to correct firmware bug reporting
1929 completed self-tests as still in progress. Thanks to Manfred
1930 Schwarb for the patch.
1932 [CF] Added missing const specifiers (undetected by gcc 3.4 and 4.X)
1933 to fix compilation with gcc 2.X.
1935 [CF] Linux: compile fix for SuSE, config.h must be included first.
1937 smartmontools 5.37 Experimental Release
1939 [CF] Windows: Added alternate method for (limited) monitoring of
1940 3ware controllers by parsing the output of CLI or 3DM.
1941 Either "tw_cli" can be run internally ("/dev/tw_cli/cx/py"),
1942 or data can be read from standard input ("/dev/tw_cli/stdin")
1943 or clipboard ("/dev/tw_cli/clip").
1945 [DG] Remove linux specific libata detect code; rely on general SAT
1946 code. smartd should now generate a sensible log message for
1947 ATA devices behind a SAT layer on all architectures.
1949 [BA] Increased max line length MAXLINELEN for /etc/smartd.conf from
1950 128 to 256 characters to handle long strings in
1951 /dev/disk/by-id. Thanks to Martin Krafft.
1953 [PW] Drive database: added missing drives from Seagate Momentus 5400.2
1956 [BA] Finished Christian's fix (next item below) by removing
1957 LINUX_86_64 hack from configure.in.
1959 [CF] Fixed inclusion of PRI?64 macros from inttypes.h.
1961 [CF] Windows: Added WRITE LOG to support selective self tests.
1963 [CF] Fix selective self test log revision number if '-T permissive'
1964 is specified (Tested with Samsung HD401LJ).
1966 [CF] Windows: Fixed int64 printf format for MinGW runtime.
1968 [PW] Drive database: added Seagate Barracuda 7200.10 family, Seagate
1969 Momentus 42 family, Maxtor DiamondMax 60 ATA 66 family, Maxtor
1970 DiamondMax 60 ATA 100 family, and Western Digital Caviar Serial
1973 [PW] Drive database: added missing drives from Seagate Barracuda
1974 7200.9 family, Seagate Barracuda 7200.7 family, Seagate Momentus
1975 7200.1 family, Toshiba 2.5" HDD family (80 GB and above), Western
1976 Digital Caviar RE Serial ATA family, Hitachi Deskstar 7K80 family,
1977 and Maxtor DiamondMax 4320 Ultra ATA family
1979 [BA] Linux: compile fix for SuSE. Check for existence
1980 of linux/compiler.h and include in os_linux.h if
1981 present. Thanks to SB.
1983 [BA] smartd: DEVICESCAN will now pick up SATA/SAT devices
1984 attached to a SCSI device tree via SAT translation.
1985 Note: this is a bit of a hack. I will document it once
1986 I know if this needs to be Linux only or can have more
1987 general application.
1989 [BA] Added a couple SATA commands to the tables -- thanks DG!
1990 Phil -- how about going through and systematically adding
1991 these new commands to atacmdnames.cpp?
1993 [BA] Linux s86_64: get rid of some compiler warnings on
1994 x86_64 Linux systems.
1996 [CF] Windows: Added missing support for READ_LOG, ABORT_SELFTEST
1997 and CHECK_POWER_STATE for 3ware 9000 controllers. Thanks to
1998 Greg de Valois for implementing this new ioctl in the driver.
2000 [PW] Drive database: added Seagate NL35 SATA family. Thanks to Kai
2001 Harrekilde-Petersen for providing a patch.
2003 [DG] [SCSI, Windows] add SPT interface for NT and later. New device
2004 names are "pd<n>", "sd<l>" and "tape<n>".
2006 [PW] Drive database: added Western Digital Scorpio family, Fujitsu MHV
2007 family, Maxtor MaXLine Pro 500 family, and Maxtor DiamondMax 11
2010 [PW] Drive database: added missing drives from Toshiba 2.5" HDD
2011 (30-60 GB) family, Maxtor DiamondMax 10 family, Seagate Barracuda
2012 7200.8 family, Fujitsu MHT family, and Maxtor DiamondMax Plus 8
2015 [SB] Added examplescripts/Example4 using powersave-notify.
2017 [SB] More temperature monitoring examples in smartd.conf with DEVICESCAN.
2019 [SB] Minor improvements of SuSE part of init script.
2021 [CF] Drive database: added Samsung P80 series, P120 series, SP8004H
2024 [GG] Add CCISS (Compaq Smart Array Controller) support with contributions
2025 from Praveen Chidambaram, Douglas Gilbert, Guido Guenther and Frédéric
2028 [PW] Drive database: added Hitachi Deskstar T7K250 and Hitachi
2029 Deskstar 7K500 series. Thanks to L. J. Wu for providing a
2032 [PW] Drive database: added Maxtor MaXLine III family, Seagate U7
2033 family, Seagate ST34321A, FUJITSU MHM2060AT, FUJITSU MHT2040AS,
2034 Western Digital Caviar SE16 family, IBM Travelstar 4GT family,
2035 QUANTUM FIREBALLP KA9.1, QUANTUM FIREBALL SE4.3A, TOSHIBA
2036 MK1032GAX, TOSHIBA MK4026GAX
2038 [PW] Drive database: added missing drives from Western Digital Caviar
2039 SE (Serial ATA) and WD Raptor families
2041 [CF] Windows: Added support for 3ware 9000 controllers using extended
2042 SMART functionality in new 3ware driver. This includes DEVICESCAN
2043 support for at most 2 controllers. Thanks to Greg de Valois from
2044 AMCC/3ware for new driver features, development support and
2045 hardware for testing.
2047 [SZ] smartd: Support HighPoint RocketRAID controller under GNU/linux
2049 [DG] [SCSI] First cut for '-l background' to show background scan
2052 [SZ] smartctl: Support HighPoint RocketRAID controller under GNU/linux
2054 [KS] C++ compile fixes for Solaris with a few cleanups.
2056 [BA] C++ compile fixes for Darwin (thanks to CF)
2058 [CF] Removed old *.c files (now in CVS Attic).
2060 [CF] Added changes for C++ to platform independent and Windows
2063 [BA] Tagged last .c Version with PRE_MOVE_TO_CPP. Copied *.c,v
2064 to *.cpp,v in CVS repository to preserve history of source
2065 files. Removed sm5_Darwin repository.
2067 [CF] smartctl: Added -n option to skip checks when disk is in
2070 [CF] Windows: Added alternate system call for power state check
2071 because the PASS THROUGH calls may spin up the disk.
2073 [CF] smartd: Modified power state logging to report state changes
2074 instead of standby condition.
2076 [CF] smartd: Ignore -n directive on scheduled self tests.
2078 [DG] [SCSI] Make start stop cycle counter log page decoding
2081 [DG] Modify smartctl (but not smartd) to detect probable ATA
2082 devices behind a SAT layer. In the absence of an explicit
2083 device type, change to device type 'sat'.
2085 [DG] Add indication that controller (device) type has been
2086 explicitly set. Preparation for automatic detection of
2087 'sat' device type unless user specifies a device type.
2089 [SS] NetBSD: Deliver strings from ata_identify_device properly
2090 on little- and big-endian platforms.
2092 [BA] Added published ANSI ATA-7 spec to list of recognized ATA
2095 [BA] Code janitor: added missing header strings for '-V' option.
2097 [DG] [SATA] Extend 'sat' device type to allow either 12 or 16 byte
2098 variant of the SAT ATA PASS THROUGH SCSI command. Syntax is
2099 '-d sat,<n>' where <n> can be 0, 12 or 16 . The ',<n>' part
2100 is optional. Currently defaults to 16 byte variant but that
2101 could be made platform or even device dependent.
2103 [DG] [SATA] Add new 'sat' device type for SATA disks behind a
2104 SCSI to ATA Translation (SAT) Layer (SATL). Uses the ATA
2105 PASS THROUGH (16) SCSI command thence the generic SCSI
2106 passthrough for each platform.
2108 [CF] Windows: Added script and make targets to create installer
2109 with NSIS (http://nsis.sourceforge.net/)
2111 [CF] Updated hostname and links for new SourceForge CVS service.
2113 [CF] smartd: Added '-W' directive to track temperature changes
2114 and warn if temperature limits are reached.
2116 [CF] Windows: Added IOCTL_ATA_PASS_THROUGH (Win2003, XP SP2)
2117 for commands unsupported by SMART_IOCTL. Added device
2118 specific options to select subset and ordering of the ATA
2119 IOCTLs actually used. These options are specified as
2120 modifiers of the device name (/dev/hd[a-j]:[saic]+)
2122 [CF] Windows: Added support for drives 4-7 (/dev/hd[e-h]) via
2123 SMARTVSE.VXD on Win9x/ME. Thanks to Dariusz Rzonca for
2126 [DG] [SCSI/SATA linux] from lk 2.6.17 SATA disk identification in
2127 libata will change. Expand LibAta detection to see old
2128 identifier and new variant (VPD page 0x83).
2130 [BA] Identified Attribute 190 for Western Digital disks. This
2131 stores temperature in Celsius, just like Attribute 194.
2132 But it has a failure threshold set to correspond to the
2133 maximum design operating temperature of the disk, which
2134 is 55 Celsius on the WD800JD drives that I studied.
2135 So if this Attribute has 'failed
2136 in the past' this means that the maximum disk operating
2137 temperature has been exceeded.
2139 [GK] Darwin: Add support for AHCI drivers found in Intel-based Macs.
2141 smartmontools 5.36 Stable Release
2143 [BA] Linux: smartd/smartctl issue syntax hints to user if 3ware
2144 disk controller present with EITHER 3ware OR AMCC vendor
2145 name, and user syntax incorrect.
2147 [BA] Update copyright dates to 2006.
2149 [DG] [SCSI] Loosen sanity check on Seagate/Hitachi factory information
2150 log page so it is not skipped on recent Seagate SCSI disks.
2152 [CF] Added command 'smartd -q showtests' to list test schedules.
2154 [CF] Added command 'smartctl -P showall MODEL [FIRMWARE]' to list
2155 database entries for specific drives and firmware.
2157 [PW] Automatically set -v 9,minutes and -v 194,unknown for Maxtor
2158 DiamondMax D540X-4G drives.
2160 [DG] [SCSI] suppress various outputs when data fails sanity checks.
2161 Correct 'last n error events' log page indexing.
2163 [DG] [SCSI] changed smartctl exit status to reflect any problems in
2164 the most recent 20 self test logs [Leandro Santi]
2166 [DG] [SCSI] Fix process return value when scsiGetSmartData() fails
2167 in smartctl [Leandro Santi]
2169 [BA] Updated docs and error message to reflect Linux libata
2170 support for smartmontools starting with the 2.6.15 kernel
2171 series. Also init script support for the 'tinysofa' release.
2173 [DG] [SCSI] Mask dpofua bit when changing mode pages. Fix failure
2174 of 'smartctl -l error'.
2176 [EM] Fixed a problem with FreeBSD and 3Ware 'twe' devices
2178 [CF] Fixed a regexp in knowndrives table, added regexp syntax check
2179 via 'smartctl -P showall'.
2181 [CF] Cygwin & Windows: Fixed memory leak in function calling
2182 IOCTL_IDE_PASS_THROUGH. Thanks to Fred Schmidt for the problem
2185 [CF] Cygwin: added cygrunsrv support and commands "install", "remove"
2186 and "status" to smartd.initd.
2188 [SS] Fix runtime problems on big-engian NetBSD platforms (patch provided
2191 [CF] Cygwin smartd: Open smartd.conf in textmode to allow use of
2194 [CF] Cygwin smartd: Added option '--service' to allow smartd running
2195 as windows service via cygrunsrv. Useful in conjunction with new
2196 syslogd support added in Cygwin 1.5.15.
2198 [CF] Windows: Added patch to avoid output of non-ascii timezone names.
2200 [EM] Incorporate various patches to provide TWE support and support for
2201 multiple 3Ware cards, Power Check Support, and FreeBSD 6.x support.
2202 Thanks to Rudolf Cejka, Frank Behrens, and Jung-uk Kim.
2204 [DG] Silence gcc 4.0.1 compile warning concerning the difference in
2205 "signedness" in pointer assignments. Changes to SCSI code
2208 [PW] Additions to knowndrives table: added missing drive from Quantum
2209 Fireball Plus LM series, added QUANTUM BIGFOOT TS10.0A, added
2210 ExcelStor J680 and J880, added Western Digital Caviar RE Serial ATA
2211 series, added missing drives from Western Digital Caviar SE series,
2212 added Seagate Momentus 4200.2 series, added missing drives from
2213 Maxtor DiamondMax 10 series, added Fujitsu MHG and MHH series, and
2214 added Hitachi Travelstar 5K100 series.
2216 [PW] Additions to knowndrives table: added Fujitsu MHU2100AT, added
2217 Fujitsu M1623TAU, added missing drives from Seagate Barracuda
2218 7200.8 series, added Seagate Momentus 5400.2 series, and added
2219 QUANTUM FIREBALL CR8.4A.
2221 [PW] Additions to knowndrives table: added missing drive from Maxtor
2222 MaxLine II series, added Maxtor DiamondMax 2880 Ultra ATA series,
2223 added Maxtor DiamondMax 17 VL series, added Hitachi Deskstar 7K80
2224 series, and added Hitachi Deskstar 7K400 series.
2226 [CF] Windows: Fixed unsupported 'smartctl -X' on Win2000/XP by using
2227 IOCTL_IDE_PASS_THROUGH instead.
2229 smartmontools 5.34 Stable Release [NOTE: never officially released]
2231 [CF] Cygwin & Windows smartd: Increased SCSI DEVICESCAN range
2232 from ASPI adapter 0-3 to 0-9. Added diagnostic messages.
2234 [CF] Windows smartd: Added ability to run .bat files via '-M exec'
2237 [CF] Cygwin smartd: Added FreeConsole() after fork() to avoid hang
2238 of terminated shell console window.
2240 [DG] [SCSI] Add code so 'smartctl -A' outputs the number of elements
2241 in the grown defect list. When this number is increasing a
2242 disk has problems. N.B. Similar logic should be added to smartd.
2244 [CF] Windows smartd: Fixed event handling to allow start of another
2245 smartd process when service is already running. Useful for testing
2246 service configuration changes in debug mode.
2248 [PW] Added following drives to knowndrives table: Western Digital Raptor
2249 family, Seagate Barracuda 7200.8 family, Maxtor DiamondMax 2160
2250 Ultra ATA and DiamondMax 10 families, Hitachi Travelstar E7K60
2251 family, Seagate Medalist 17240, 13030, 10231, 8420, and 4310,
2252 TOSHIBA MK4018GAP and MK6022GAX, ExcelStor Technology J360, and
2253 Western Digital Caviar AC14300.
2255 [PW] Added missing Fujitsu MHTxxxxAT and Seagate Barracuda 7200.7 drives
2256 to knowndrives table.
2258 [PW] Added QUANTUM FIREBALLP LM10.2 to knowndrives table. Thanks to
2259 Mike Fleetwood for submitting the patch.
2261 [KS] Solaris/SPARC: fixed not to disable automatic offline test and
2262 automatic save attributes incorrectly. Thanks to Roy Badami.
2264 [BA] Linux: smartd init script now recognizes 'trustix' distro.
2266 [DG] [SCSI] Medium and hardware errors were slipping through
2267 unreported. Fix linux SCSI sense reporting via SG_IO ioctl.
2269 [DG] [SCSI] Change lba of first failure in selftest output to
2270 decimal (was hex) to conform with ATA output.
2272 [GK] smartd: Detect most self-test failures even if the hour counter
2275 [BA] smartctl: list 'marvell' as option if user give invalid
2278 [CF] Windows: fixed SCSI timeout handling to allow long timeouts
2281 [CF] Fixed buffer overflow issues in printone() and safe_vsnprintf()
2282 which results in crash on -V option (at least on Windows).
2284 [DG] [SCSI] Add explicit timeouts to INQUIRY and REQUEST SENSE (that
2285 were missed in an earlier patch). Could have impacted freebsd.
2287 [DG] When linux detects a sata_via_libata disk suggest that user try
2288 '-d ata' (rather then '-d libata). Anticipate kernel change.
2290 [YD] Added OS/2 and eComStation platform support.
2292 [PW] Added Seagate U4 family, Fujitsu MHJ and MHK families, Seagate
2293 Barracuda 5400.1, QUANTUM FIREBALLP KX27.3, QUANTUM FIREBALLP KA10.1,
2294 and ExcelStor J340 to knowndrives table.
2296 [DG] [SCSI] After report of Hitachi IC35L073UCDY10 disks locking up
2297 on log page 0x7 (last n error events), check log page (and some
2298 others) is supported (via log page 0x0) before probing.
2300 [CF] Added safe_v?snprintf() for platforms using v?snprintf()
2301 with non standard behaviour on overflow (Windows, old Linux)
2303 [CF] smartd: Added message if check power mode spins up disk.
2305 [CF] Windows: Added support for READ_LOG on WinNT4 using undocumented
2306 pseudo SCSI command via IOCTL_SCSI_PASS_THROUGH.
2308 [CF] smartd: Added ',q' option for '-n' directive to suppress 'skipping
2309 checks' log message. This prevents a laptop disk from spinning up
2310 due to this message. Thanks to Rob MacLachlan and Manfred Schwarb
2311 for pointing out problem & solution.
2313 [CF] Windows: Added function get_os_version_str() to show OS flavor in
2316 [CF] Windows: Added function ata_identify_is_cached() to check for outdated
2317 SMART enabled bit in identify data.
2319 [CF] Windows: Added fix to prevent linkage of smartd specific win32 modules
2322 [PW] Added Fujitsu MPG3153AH, Hitachi Endurastar J4K20/N4K20 (formerly
2323 DK23FA-20J), Seagate Momentus family, and Maxtor Fireball 3 family
2324 to knowndrives table.
2326 [PW] Added missing Maxtor DiamondMax 16, Seagate Barracuda ATA IV, and
2327 Western Digital Caviar WDxxxAA/WDxxxBA drives to knowndrives table.
2329 [CF] Windows: Added ATA check power mode for smartd -n directive.
2331 [CF] Windows: Fixed use of new service status flag which causes hang
2332 of smartd service on WinNT4.
2334 [CF] Windows: Fixed error checking of IOCTL_IDE_PASS_THROUGH (used
2335 for READ_LOG on 2000/XP). Added some diagnostic messages on
2336 -r ataioctl[,2]. Thanks to Manfred Schwarb for bug report and testing.
2338 [BA] Fixed code bug that made it impossible to enable SMART on
2339 disks with failing health status. This would happen if the
2340 os_*.c author made STATUS and STATUS_CHECK work the same way.
2341 I have corrected this at a higher level; we now handle the
2342 case where STATUS and STATUS_CHECK are identical without
2345 [LW] Make os_linux.c/marvell_command_interface() always return 0 on STATUS.
2346 Needed for a disk having bad SMART status.
2348 [CF] smartctl: Added drive family printing.
2350 [CF] autogen.sh: Allow automake 1.9, added message if automake
2353 [BA] smartctl: use locale-specific separators for printing disk
2354 capacity. Also use AC_CHECK_HEADERS not AC_CHECK_HEADER in
2357 [BA] clean-up of #include structure so that -V options to smartd
2358 and smartctl work correctly. Please, don't #include header
2359 files into other header files.
2361 smartmontools 5.33 Experimental Release
2363 [BA] smartctl: ATA disks, if SMART ATTRIBUTE THRESHOLDS page has ID
2364 errors with some Attributes having NULL IDs, print Attribute
2365 info anyway (but issuing a warning to the user).
2367 [DG] [SCSI] Decode Last n error events log page; decode track following
2368 and positioning errors [Hitachi]
2370 [EM] FreeBSD: another tweak, __packed__ introduced in Version 5.0040
2372 [EM] Cleaner tweak of fixes for FreeBSD 4.x.
2374 [EM] Fix compilation errors under FreeBSD 4.x, as it is still using
2377 [EM] Remove 3ware/FreeBSD specific files and just include pieces we need
2379 [DG] Add logic in smartd to detect 3ware, Marvell controllers and SATA
2380 disks behind an ATA-SCSI simulator (in Linux). If specific device
2381 types are not given and they are picked in a general SCSI device
2382 scan then warn and skip.
2384 [GG] insert correct path to smartd into smartd's init script
2386 [BA] Changed all default paths in documentation to reflect /usr/local as
2387 default path prefix. This affects on-line man pages, primarily.
2389 [DS] Added support for OpenBSD
2391 [BA] Added another environment variable SMART_FULLMESSAGE set by
2392 the smartd mailing feature, and modified examplescripts/Example1
2395 [BA] Fixed potentially misleading messages of the form:
2398 [DG] emit warning if SATA disk detected using libata in Linux; then exit
2400 [PW] Added Seagate U10 family, Hitachi Travelstar 7K60, Fujitsu MHR2020AT,
2401 and QUANTUM FIREBALLP AS20.5 to knowndrives table.
2403 [DG] Detect 3ware and Marvell controllers from SCSI INQUIRY vendor string
2404 and suggest usage of appropriate '-d' argument in smartctl.
2406 [LW] Tested the RELEASE_5_33_WITH_MARVELL_SUPPORT branch on
2407 actual Marvell 88SX5041 hardware, with success.
2410 [BA] Fixed nasty DEVICESCAN bug
2412 [BA] Checked in RELEASE_5_33_WITH_MARVELL_SUPPORT branch with
2413 some Marvell support.
2415 [BA] Additional modifications of Ed's controller scheme. Fixed
2416 broken 3ware support under linux, problems with scanning
2417 devices in smartd, and other small problems.
2419 [CF] Added make targets to build formatted man pages (htmlman, txtman),
2420 Windows distribution (dist-win32) and MSVC6 config.h (config-vc6).
2422 [EM] Minor change to FreeBSD inclusion of 'twe' include files. Add
2423 code to check if they exising in /usr/include/sys to use those
2424 in preference to ones added here
2426 [EM] Very preliminary support attempt for 3Ware controllers under
2427 FreeBSD. Also, switched 'escalade_type/escalade_port' to
2428 'controler_type/controller_port' and moved away from
2429 'tryata/tryscsi' to using new 'controller*' variables to
2430 determine which controller type (ATA/SCSI/3Ware) to use.
2432 [GK] Added initscript support for Darwin.
2434 [CF] Windows smartd: Added ability to run smartd as a windows service,
2435 including new commands "smartd install ..." and "smartd remove"
2436 to install and remove the service registry entry.
2438 [BA] smartd: warn user if -s regexp regular expression contains
2439 characters other than 0123456789.*()|+?[-]{}:=SLCO since such
2440 characters are 'suspicous' and may indicate a poorly formed
2441 regexp. Extended regular expression gurus: can this list be
2444 [CF] Fixed bug in Windows smartd: Missing close of config file when
2445 configuration is reloaded by smartd daemon.
2447 [CF] Windows smartd: Added mail warning feature using the "Blat"
2448 (http://blat.sourceforge.net/) mailer as a default.
2450 [PW] Added Maxtor DiamondMax Plus 5120 Ultra ATA 33 series and TOSHIBA
2451 MK3017GAP to knowndrives table.
2453 [CF] Added fixes to build smartmontools on old Linux systems
2454 (libc < 6, Kernel 2.0.x).
2456 [BA] Added ATA minor version identity strings for latest ATA specification
2457 updates: ATA/ATAPI-7 T13 1532D revision 4a and ATA/ATAPI-6 published,
2458 ANSI INCITS 361-2002
2460 [PW] Added Hitachi Travelstar 5K80 family and Fujitsu MHTxxxxAH family to
2463 [EM] Fix up compilation under FreeBSD < 5.x
2465 [PW] Added QUANTUM FIREBALL EX3.2A and missing Western Digital Caviar SE
2466 drives to knowndrives table.
2468 [BA] Modified Hitachi Travelstar 80GN family regexp in drive database.
2469 Thanks to [GK/CF] for problem & solution.
2471 [GK] Added os_darwin.[ch]
2473 [PW] Added the following drives to the knowndrives table: IBM Travelstar
2474 48GH, 30GN, and 15GN family; IBM Deskstar 37GP and 34GXP family;
2475 Western Digital WDC WD272AA; Maxtor DiamondMax D540X-4D family;
2476 TOSHIBA MK2016GAP, MK2018GAP, MK2018GAS, MK2023GAS; and
2477 QUANTUM FIREBALL ST3.2A
2479 [BA] smartd/smarctl now print build HOST/OS information as part
2480 of startup slogan. This should make it slightly easier to
2481 read bug reports from users.
2483 [RZ] Fixed the DEVICESCAN to do what it was supposed to do - give
2484 error message unless scanning is in progress.
2486 [BA] Update documentation to describe 3ware character devices. Better
2487 error detection for missing/malfunctioning devices behind 3ware
2488 controllers. Now pack 3ware ioctl structures explicitly.
2490 [BA] For ATA devices that support LBA mode, print capacity as part
2493 [RZ] Made DEVICESCAN quiet about non-existing devices unless debug
2496 [DG] treat "unit attention" SCSI warning as try again in some contexts
2497 (test unit ready and mode sense)
2499 [BA] on drives that store max/min rather than min/max, get order
2500 correct in printing temp.
2502 [BA] fixed typo in 'smartctl -h' output. Thanks to Gabor Z. Papp.
2504 [BA] linux: clean-up to 3ware/AMCC support; dynamically create
2505 or fix /dev/tw[ae][0-15] device node entries if they don't
2506 exist or are incorrect. One can now use the character devices
2507 /dev/twe[0-15] OR /dev/sd? for 3ware 6000/7000/8000 series
2508 cards. One must use /dev/twa[0-15] for 3ware 9000 series cards.
2509 Note that selective self-tests now work via /dev/tw[ae] devices.
2510 Next step: documentation.
2512 [BA] linux: experimental "support" for 3ware/AMCC 9000 series
2513 controllers that use the 3w-9xxx driver. This will be in a
2514 state of flux for a few days. Note that this requires the
2515 character interface /dev/twa[0-15].
2517 [DG] linux: extend general SCSI OS interface to use the SG_IO ioctl. If
2518 not available, use the older SCSI_IOCTL_SEND_COMMAND ioctl.
2520 [KS] Solaris/x86: fixed system identification problem in configure
2521 script. Thanks to Stuart Swales.
2525 [BA] Update link to revised/updated IBM Deskstar Firmware
2527 [CF] Cygwin & Windows: Added missing ASPI manager initialization
2528 with GetASPI32SupportInfo(). Thanks to Nikolai SAOUKH for pointing
2529 this out and providing a patch.
2531 [BA] modified smartd init script to work on whitebox (thanks to
2534 [BA] removed (reverted) additional Attribute definitions from
2535 http://smart.friko.pl/attributes.php. All (or most?) of these
2536 appear to be return code values for the WD Digital Life Guard Utility.
2538 [PW] Added Seagate Medalist 17242, 13032, 10232, 8422, and 4312 to
2539 knowndrives table. Added missing Seagate U Series 5 drives.
2541 [PW] Added the following QUANTUM models to knowndrives table:
2542 FIREBALL EX6.4A, FIREBALLP AS10.2, FIREBALLP AS40.0, FIREBALL CR4.3A,
2543 FIREBALLP LM15, FIREBALLP LM30, and FIREBALLlct20 30
2545 [PW] Added missing Western Digital Protege drives to knowndrives table.
2547 [PW] Added Maxtor DiamondMax 40 ATA 66 series and DiamondMax 40 VL Ultra
2548 ATA 100 series to knowndrives table.
2550 [PW] Added the following Hitachi/IBM drives to knowndrives table:
2551 HITACHI_DK14FA-20B, Travelstar 40GNX series, Travelstar 4LP series,
2552 and Travelstar DK23XXB series. Added the missing Travelstar 80GN
2555 [PW] Added Fujitsu MPB series and MPG series to knowndrives table. Added
2556 the missing Fujitsu MHSxxxxAT drives.
2558 [KS] Solaris: added workaround for dynamic change of time-zone.
2560 [KS] Solaris: fixed problem that autogen.sh cannot detect absence of
2563 [BA] smartd: added time-zone bug information to man page.
2564 Reverted CF code for _WIN32 case.
2566 [CF] Cygwin & Windows: Added better error messages on IDE/ATA device
2569 [BA] added additional Attribute definitions from
2570 http://smart.friko.pl/attributes.php
2572 [BA] smartd: reworked TimeZone bug workaround so it is only invoked
2573 for glibc. Note: this might not be right -- a similar bug may
2574 exist in other platform's libcs.
2576 [DG] SCSI smartmontools documentation updated [2004/5/6]. See:
2577 http://smartmontools.sourceforge.net/smartmontools_scsi.html
2579 [CF] Windows: Fixed reset of TZ=GMT in glibc timezone bug workaround.
2583 [DG] move SCSI device temperature and start-stop log page output
2584 (smartctl) into --attributes section (was in --info section).
2586 [GG] change default installation location to /usr/local
2588 [CF] Cygwin smartd: Fixed crash on access of SCSI devices after fork().
2590 [PW] Added TOSHIBA MK4018GAS and the following Maxtor drive families
2591 to knowndrives table: DiamondMax D540X-4G, Fireball 541DX,
2592 DiamondMax 3400 Ultra ATA, DiamondMax Plus 6800 Ultra ATA 66.
2594 [PW] Added missing Maxtor DiamondMax 16, DiamondMax D540X-4K, and
2595 DiamondMax Plus 45 Ulta ATA 100 drives to knowndrives table.
2597 [PW] Added ExcelStor J240, Hitachi Travelstar 80GN family, Fujitsu
2598 MHTxxxxAT family, and IBM Deskstar 25GP and 22GXP families to
2601 [CF] Cygwin smartd: Added workaround for missing SIGQUIT via keyboard:
2602 To exit smartd in debug mode, type CONTROL-C twice.
2604 [BA] smartctl: printing of the selective self-test log is now
2605 controlled by a new option: -l selective
2607 [BA] Added entries for Samsung firmware versions -25 to -39 based
2608 on latest info about firmware bug fixes.
2610 [PW] Added Seagate U Series X family, Seagate U8 family, and Seagate
2611 Medalist 8641 family to knowndrives table.
2613 [CF] smartd: Added exit values 5/6 for missing/unreadable config file.
2615 [BA] smartd: now monitor the Current Pending Sector count (Attribute 197)
2616 and the Offline Pending Sector Count (Attribute 198). Log a
2617 warning (and send an email, if so configured) if the raw count
2618 is nonzero. These are controlled by new Directives: -C and -U.
2619 Currently they are enabled by default.
2621 [CF] Added option -c FILE, --configfile=FILE to smartd to specify
2622 an alternate configuration FILE or '-' for standard input.
2624 [KS] configure.in now searches for -lnsl and -lsocket for Solaris.
2626 [CF] Win32/native smartd: Added thread to combine several syslog output
2627 lines into one single event log entry.
2629 [CF] Win32 smartd: Added DEVICESCAN for SCSI/ASPI devices.
2631 [GG] Use gethostbyname() the get the DNS domain since getdomainname()
2632 returns the NIS domain when sending mails from smartd.
2634 [GG] smartd.init.in: pass smartd_opts to smartd on startup, read distribution
2635 specific configuration files if found
2637 [SS] smartctl: added NetBSD support for Selective Self-tests.
2639 [BA] smartd.conf example configuration file now has all examples
2640 commented out except for 'DEVICESCAN'.
2642 [CF] Win32/native smartd: Added ability to display warning "emails"
2643 as message box by "-m msgbox" directive. With "-m sysmsgbox",
2644 a system modal (always on top) message box is shown.
2646 [BA] smartctl: printing of self-test log for disks that support
2647 Selective self-testing now shows the status of the (optional)
2648 read-scan after the selective self test. Also, changed format
2649 in printing self-test log to print failing LBA in base 10 not
2650 base 16 (more compatible with kernel error messages). Also,
2651 in printing SMART error log, print timestamps in format
2652 days+hours+minutes+seconds.
2654 [CF] Win32 smartd: Added ability to log to stdout/stderr
2655 (-l local1/2). Toggling debug console still works
2656 if stdout is redirected.
2658 [BA] smartctl: selective self-test log, print current status
2659 in a more detailed way. Allow writing of selective self-test
2660 log provided that no other self-test is underway.
2662 [BA] Linux: eliminated dependency on kernel tree hdreg.h.
2664 [BA] smartctl: -l selftest option now prints Selective self-test
2665 log in addition to the normal self-test log.
2666 Added additional options (-t pending, -t afterselect) to
2667 control remaining Selective Self-test capabilities. Tested
2668 with several Maxtor disks. Modified error message printing
2669 so that munged option messages print at the end not the
2672 [CF] Added daemon support to Win32 native version of smartd.
2673 The daemon can be controlled by commands similar to initd
2674 scripts: "smartd status|stop|reload|restart|sigusr1|sigusr2".
2676 [CF] Added minor support for option "-l local[0-7]" to Win32 native
2677 (not Cygwin) version of smartd. If specified, the log output
2678 is written to file "./smartd[1-7]?.log" instead of event log.
2680 [BA] Added Selective Self-test to smartctl (-t selective,M-N).
2681 Currently only supported under Linux; Solaris, NetBSD, FreeBSD
2682 and Windows developers must add WRITE LOG functionality to
2685 [BA] Added workaround for an annoying glibc bug: if you change
2686 timezones, (eg, flying with a laptop from USA to Europe)
2687 localtime() does not notice this in a running
2688 executable, so time that appears in the system log (syslog!)
2689 will be incorrect. See
2690 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=48184
2691 for additional examples of this bug.
2693 [DG] Set explicit timeouts for SCSI commands (most default to 6 seconds).
2694 Previously a 0 second timeout was meant to be interpreted as a
2695 default timeout but the FreeBSD port had a problem in this area.
2697 [CF] Fixed un-thread-safe exit signal handler for Win32
2699 [BA] Fixed un-thread-safe exit signal handler pointed out
2702 [BA] Changed configure script to eliminate warnings under
2703 Solaris from sys/int_type.h conflicts with int64.h
2704 Added header files for umask to smartd.c.
2706 [BA] Man page format change from Werner LEMBERG. " " changed to \&
2708 [CF] Added os_win32/syslogevt.* event message file tool for Win32
2709 smartd (native+cygwin). May also be useful for other cygwin
2710 programs writing to syslog().
2712 [CF] Added Win32 version of smartd
2714 [CF] Merged RELEASE_5_26_WIN32_BRANCH
2716 [BA] Made some changes to man page markup suggested by
2717 Richard Verhoeven to work around bugs in man2html.
2718 Tested not to break anything under Linux and Solaris.
2720 [CF] Moved PrintOut() from utility.c to smart{ctl,d}.c to avoid
2721 syslog() output of smartctl.
2723 [BA] Grew worried that some time-zone names could be very long (eg,
2724 Mitteleuropaische Zeit) and put date string lengths into a
2725 single macro in utility.c
2727 [EM] Updated os_freebsd.c to handle older versions of FreeBSD in a
2728 more appropriate/obvious fashion.
2730 [EM] Modified autogen.sh as FreeBSD installs automake 1.7 as
2731 'automake17' and NOT 'automake-1.7'
2735 [PW] Added QUANTUM FIREBALLlct15 30, QUANTUM FIREBALLlct20 40, and
2736 Maxtor 6Y060P0 (DiamondMax Plus 9 60GB) to knowndrives table.
2738 [PW] Added Maxtor MaXLine II family to knowndrives table (thanks to
2739 Brett Russ for submitting the patch).
2741 [BA] Added remaining read/write commands to detailed list of
2742 error log commands that have text descriptions of problem
2743 printed. For commands that support it, print number of failed
2744 sectors at problem LBA.
2746 [BA] Made SuSE section of smartd init script more SuSE 9 compatible.
2747 Thanks to Hans-Peter Jansen.
2749 [CF] Windows smartd: Added IDE/ATA device scan
2750 Added windows device names to smartctl.8.in, smartd.8.in
2752 [BA] smartctl/smartd: user-provided '-F samsung' and '-F samsung2'
2753 command line options/Directives did NOT over-ride preset values
2754 unless user specified '-P ignore'. Now they will always over-ride
2755 preset values from the database.
2757 [BA] Added error decoding for a few more READ and WRITE commands.
2759 [PW] Added Maxtor MaXLine Plus II, Western Digital Caviar SE (Serial ATA)
2760 series, Hitachi Deskstar 7K250 series, and Ultra ATA 66 models of
2761 the Maxtor DiamondMax Plus 40 series to knowndrives table.
2763 [BA] Added Maxtor Diamondmax 250 GB drives to database. Note that
2764 these model numbers are not listed in Maxtor documentation, but
2767 [BA] Removed the 'contact developers' phrase from the Samsung disk
2770 [PW] Added TOSHIBA MK2017GAP, IBM Deskstar 14GXP and 16GP series,
2771 Fujitsu MPC series, Seagate Barracuda ATA III family, and missing
2772 Seagate Barracuda U Series drives to knowndrives table
2774 [BA] smartd: wrong loglevel for message: Configuration file
2775 /etc/smartd.conf parsed. Changed to LOG_INFO from LOG_CRIT.
2776 Thanks to Emmanuel CHANTREAU for the report.
2778 [CF] Checked in development version of windows code base.
2780 smartmontools 5.29 (note: there was NO 5.28 release)
2782 [BA] smartd: configure script did not set correct directory to search for
2783 smartd.conf based on --prefix argument to ./configure. Thanks to
2784 GG for identifying the problem and fix.
2786 [BA] make clean now removes man pages (generated from *.in) files as well
2789 [EM] Correct copying of sense data in FreeBSD SCSI implementation. Thanks
2790 to Sergey Svishchev for noticing the bug.
2792 [BA] On solaris, wrong warning message if no ATA support. Warning message
2793 concerns 3ware controller, not ATA.
2795 [SS] Added SCSI support for NetBSD.
2797 [BA] on big-endian linux machines, fixed interpretation of HDIO_GET_IDENTITY
2798 to correctly identify ATAPI bit (was byte swapped). This should
2799 eliminate some SYSLOG noise if user queries a packet device (eg, CD
2802 [PW] Removed warning for IBM Deskstar 40GV & 75GXP series drives with
2803 A5AA/A6AA firmware. Thanks to Gerald Schnabel.
2805 [PW] Added Toshiba TOS MK3019GAXB SUN30G to knowndrives table
2807 [PW] Added Western Digital Caviar AC12500, AC24300, AC25100, AC36400,
2808 and AC38400 to knowndrives table
2810 [BA] When printing ATA error log, print the LBA at which READ
2811 or WRITE commands failed.
2813 [BA] Changed syntax of error message in smartctl
2815 [BA] Added versioning info (-V options to smartd/smartctl) for
2820 [KS] Added ATA/IDE support for Solaris/SPARC (ATA/IDE not yet for
2823 [BA] 3ware controllers: documented that one can monitor any of the
2824 physical disks from any of the 3ware /dev/sd? logical devices.
2825 Better warnings if querying a disk that does not exist.
2827 [PW] Added Hitachi Travelstar DK23DA series, Maxtor DiamondMax Plus 40
2828 series, Western Digital Caviar WDxxxAA, WDxxxBA, and WDxxxAB series
2829 to knowndrives table
2831 [BA] missing 'pragma pack' on ATA IDENTIFY DEVICE structure may have
2832 caused odd or incorrect results on 64-bit machines.
2834 [BA] smartctl/smartd allow inspection of self-test and error logs even
2835 if disk firmware claims that these don't exist. This is needed
2836 for some Maxtor disks whose firmware does not indicate log support
2837 even though the disk DOES support it.
2839 [BA] Improved porting instructions and documentation in os_generic.c
2841 [PW] Add Western Digital Caviar WD136AA and SAMSUNG SP40A2H (RR100-07
2842 firmware) to knowndrives table.
2844 [EM] FreeBSD: remove extra definition of FreeNonZero
2846 [BA] smartctl: the -q silent option was printing output for some
2847 error conditions. Fixed. Will rename relevant variables to help
2848 avoid these errors in the future.
2850 [SS] NetBSD port added.
2852 [BA] more sensible error messages for devfs and devfs-like systems.
2853 Instead of saying that the DIRECTORY does not exist, say that
2854 the DEVICE does not exist.
2856 [BA] smartd: added -n Directive, to prevent disk spin-up depending
2857 upon the power mode (SLEEP, STANDBY, or IDLE).
2859 [PW] Added Maxtor DiamondMax 20 VL series, Fujitsu MPF series,
2860 Maxtor DiamondMax 36 series, Maxtor DiamondMax 4320 series, and
2861 Maxtor DiamondMax 536DX series to knowndrives table.
2863 [BA] many warning messages now give the file name AND VERSION
2865 [BA] smartd: when the user provides multiple address recipients
2866 to the '-m' Directive in a comma-delineated list, the commas
2867 are stripped out before passing the list of addresses to the
2868 mailer program. (Thanks to Calin A. Culianu for pointing this out
2869 and providing a patch.)
2871 [BA] smartd: when the '-M exec path' Directive is used, any stdout OR
2872 stderr output from the executable "path" is assumed to indicate a
2873 problem, and is echoed to SYSLOG.
2875 [BA] Added all missing IBM/Hitachi Deskstar 180GXP models to knowndrives
2878 [PW] Added some missing IBM/Hitachi Deskstar 120GXP models to knowndrives
2881 [PW] Added IBM Travelstar 14GS to knowndrives table.
2883 [PW] Modified knowndrives table to match entire Hitachi Travelstar
2884 DK23BA and DK23EA series of drives (thanks to Norikatsu Shigemura
2885 for submitting the patch).
2887 [PW] Added some missing Fujitsu MPE series drives to knowndrives table.
2889 [PW] Added TOSHIBA MK4019GAX, TOSHIBA MK6409MAV, and QUANTUM
2890 FIREBALLlct15 20 to knowndrives table.
2892 [EM] Fixup example command output for FreeBSD
2894 [PW] Added Maxtor DiamondMax 80 family to knowndrives table.
2896 [EM] Catch up FreeBSD code to switch PROJECTHOME to PACKAGE_HOMEPAGE
2899 [BA] smartd: now watches stdout/stderr when trying to run mail, mailx
2900 or mail warning script, and reports any output to SYSLOG. This
2901 gives a clearer error message if something is wrong.
2903 [BA] smartd: Solaris init script modified to accomodate grep that
2904 lacks '-q' quiet option. Also check for running process to kill
2907 [PW] Added some missing Seagate Barracuda 7200.7 and 7200.7 Plus drives
2908 to knowndrives table.
2910 [PW] Added Maxtor DiamondMax Plus 60 family and Seagate U Series 5 20413
2911 to knowndrives table.
2913 [BA] smartd: under Solaris, made default mailer be 'mailx' not
2914 'mail', since Solaris 'mail' does not accept a '-s' argument.
2915 A workaround for Solaris users of earlier versions is to
2916 have '-M exec /bin/mailx' in their smartd.conf config file.
2918 [DG] some SCSI controllers don't like odd length transfers so make
2919 sure LOG SENSE transfers are rounded up to an even number when
2920 and odd length is reported (i.e. there is a double fetch, the
2921 first to find the length, the second gets the data)
2923 [BA] smartd man pages: under Solaris, correct section numbers in the
2926 [KS/BA] smartd man page: describe how to set Solaris syslog.conf
2927 file to catch all messages. Give correct Solaris SYSLOG default
2928 path /var/adm/messages in man pages.
2930 [BA] smartd: incorporated Debian startup script submitted by user.
2932 [BA] smartctl: modified printing of self-test log entry number. Seagate
2933 firmware can leave 'holes' in the self-test log while a test is
2934 actually running. We now print entry numbers consistently in this
2935 case, not assuming that entries are contiguous.
2937 [PW] Added QUANTUM FIREBALL CX10.2A and Western Digital Caviar AC23200L
2938 to knowndrives table.
2940 [PW] Added QUANTUM FIREBALLlct20 20 to knowndrives table.
2942 [PW] Added Maxtor DiamondMax Plus D740X family to knowndrives table.
2944 [PW] Added IBM Travelstar 32GH, 30GT, and 20GN family to knowndrives
2947 [BA] Slackware init script modified to search for /etc/slackware-version
2948 rather than /etc/slackware-release.
2950 [PW] Added Seagate Barracuda ATA II family and TOSHIBA MK4019GAXB to
2953 [GG] explain howto use autoreconf in autogen.sh
2955 [KS] Makefile.am/configure.in: changed manual page sections for
2958 [BA] smartd: reduced number of scheduled self-test messages if
2959 test already run in current hour.
2961 [PW] Added Maxtor DiamondMax Plus 8 family to knowndrives table.
2963 [BA] linux: check for linux/hdreg.h. If it's there, use it. If
2964 not, provide the necessary definitions ourselves.
2966 [PW] Removed warning for IBM Deskstar 40GV & 75GXP series drives
2967 with TXAOA5AA firmware
2969 [PW] Added IBM Travelstar 25GS, 18GT, and 12GN family to knowndrives
2972 [PW] Added IBM/Hitachi Travelstar 60GH & 40GN family to knowndrives
2975 [BA] smartd: made '-s' Directive more efficient. Now store
2976 compiled regex, and re-use. If device lacks certain self-test
2977 capabilities, track it and don't try again.
2979 [BA] smartd: made memory allocation for device lists completely
2980 dynamic (eliminating compile-time maximum length constants).
2982 [PW] Removed warning for SAMSUNG SP0802N with TK100-23 firmware
2984 [PW] Added Seagate Barracuda ATA IV family to knowndrives table.
2986 [BA] smartd: reduce per-device memory footprint by making
2987 mail-warning info dynamically allocated. Also remove
2988 potential memory leak if use has -m Directive twice and
2989 keeps reloading the config file (highly unlikely this would
2992 [DG] smartd: added SCSI scheduled self-tests (Background
2995 [BA] smartd: can now run scheduled offline immediate and
2996 self-tests. See man page and -s Directive for details.
2998 [GG] don't include manpages in make-dist-tarball.
3000 [BA] smartctl: on-line examples given with -h are now correct
3001 for solaris and linux, but wrong for freebsd. Ed?
3003 [BA] smartd: man page now explains device scanning for solaris as
3004 well as linux and freebsd.
3006 [BA] smartd/smartctl: man pages now report correct CVS tag release
3007 date, and executables '-V' options reports more build info.
3011 [BA] Improved user messages that appear from 'make install'
3013 [PW] Removed warning for SAMSUNG SP1213N with firmware TL100-23
3015 [BA] incorporated SuSE init script from user.
3017 [DG] if SCSI device is read only, then open it read only.
3019 [BA] when compiled on non-supported system (NOT linux, freebsd or solaris) then
3020 the run-time error messages now clearly say 'your system is not supported'
3021 and give clear directions.
3023 [BA] ./configure script now works correctly on SuSE linux boxes
3025 [BA] minor improvements to man pages
3027 [BA] simplified detection of packet (ATAPI, CD) devices.
3029 [BA] init script (redhat, mandrake, yellowdog) now uses correct
3030 strings for translation and is slightly more standard.
3032 [DG] smartctl: output scsi Seagate vendor pages for disks (not tapes)
3036 Note: there was no '5.24' release. From this point on, even numbered
3037 releases will be 'stable' ones and odd numbered releases will be
3038 unstable/testing/development ones.
3040 [DG] smartd/smartctl: changed scsiClearControlGLTSD() to
3041 scsiSetControlGLTSD() with an 'enabled' argument so '-S on'
3042 and '-S off' work for SCSI devices (if changing GLTSD supported).
3044 [BA] smartd/smartctl: wired in scsiClearControlGLTSD(). Could still
3045 use a corresponding Set function. Left stubs for this purpose.
3047 [DG] scsicmds: added scsiClearControlGLTSD() [still to be wired in]
3049 [BA] smartctl: make SCSI -T options behave the same way as the
3052 [DG] smartctl: output scsi transport protocol if available
3054 [DG] scsi: stop device scan in smartd and smartctl if badly formed
3055 mode response [heuristic to filter out USB devices before we
3056 (potentially) lock them up].
3058 [BA] smartd: deviceclose()->CloseDevice(). Got rid of SCSIDEVELOPMENT
3059 macro-enabled code. Added -W to list of gcc specific options to
3060 always enable. Made code clean for -W warnings.
3062 [PW] Added Maxtor DiamondMax VL 30 family to knowndrives table.
3064 [DG] scsi: add warning (when '-l error' active) if Control mode page
3065 GLTSD bit is set (global disable of saving log counters)
3067 [DG] scsi: remember mode sense cmd length. Output trip temperature
3068 from IE lpage (IBM extension) when unavailable from temp lpage.
3070 [BA] smartd: for both SCSI and ATA now warns user if either
3071 the number of self-test errors OR timestamp of most
3072 recent self-test error have increased.
3074 [DG] smartctl: output Seagate scsi Cache and Factory log pages (if
3075 available) when vendor attributes chosen
3077 [DG] smartd: add scsiCountFailedSelfTests() function.
3079 [DG] Do more sanity checking of scsi log page responses.
3081 [BA] smartd: now warns user if number of self-test errors has
3082 increased for SCSI devices.
3084 [BA] smartd: warn user if number of ATA self-test errors increases
3085 (as before) OR if hour time stamp of most recent self-test
3088 [DG] More checks for well formed mode page responses. This has the side
3089 effect of stopping scans on bad SCSI implementations (e.g. some
3090 USB disks) prior to sending commands (typically log sense) that
3093 [PW] Added Western Digital Caviar family and Caviar SE family to
3096 [BA] smartd: added -l daemon (which is the default value if -l
3099 [PW] Added Seagate Barracuda ATA V family to knowndrives table.
3101 [BA] smartd: added additional command line argument -l FACILITY
3102 or --logfacility FACILITY. This can be used to redirect
3103 messages from smartd to a different file than the one used
3104 by other system daemons.
3106 [PW] Added Seagate Barracuda 7200.7, Western Digital Protege WD400EB,
3107 and Western Digital Caviar AC38400 to knowndrives table.
3109 [BA] smartd: scanning should now also work correctly for
3110 devfs WITHOUT traditional links /dev/hd[a-t] or /dev/sd[a-z].
3112 [PW] Added Maxtor 4W040H3, Seagate Barracuda 7200.7 Plus,
3113 IBM Deskstar 120GXP (40GB), Seagate U Series 20410,
3114 Fujitsu MHM2100AT, MHL2300AT, MHM2150AT, and IBM-DARA-212000
3115 to knowndrives table.
3117 [PW] Added remaining Maxtor DiamondMax Plus 9 models to knowndrives
3120 [EM] smartd: If no matches found, then return 0, rather than an error
3121 indication, as it just means no devices of the given type exist.
3122 Adjust FreeBSD scan code to mirror Linux version.
3124 [BA] smartd: made device scan code simpler and more robust. If
3125 too many devices detected, warn user but scan as many
3126 as possible. If error in scanning, warn user but don't
3129 [EM] smartd: To keep as consistent as possible, migrate FreeBSD
3130 devicescan code to also use glob(3). Also verified clean
3131 compile on a 4.7 FreeBSD system.
3133 [BA] smartd: Modified device scan code to use glob(3). Previously
3134 it appeared to have trouble when scanning devices on an XFS
3135 file system, and used non-public interface to directory
3136 entries. Problems were also reported when /dev/ was on an
3137 ext2/3 file system, but there was a JFS partition on the same
3140 [BA] Clearer error messages when device scanning finds no suitable
3143 [EM] FreeBSD: Fixup code to allow for proper compilation under
3148 [BA] smartd: didn't close file descriptors of ATA packet devices
3149 that are scanned. Fixed.
3151 [BA] Added reload/report targets to the smartmontools init script.
3152 reload: reloads config file
3153 report: send SIGUSR1 to check devices now
3157 [EM] Fix compile issues for FreeBSD < 5-CURRENT.
3159 [PW] Added Fujitsu MHM2200AT to knowndrives table.
3161 [BA] To help catch bugs, clear ATA error structures before all
3162 ioctl calls. Disable code that attempted to time-out on SCSI
3163 devices when they hung (doesn't work).
3165 [BA] Documented STATUS/ERROR flags added by [PW] below.
3167 [BA] Improved algorithm to recognize ATA packet devices. Should
3168 no longer generate SYSLOG kernel noise when user tries either
3169 smartd or smartctl on packet device (CD-ROM or DVD). Clearer
3170 warning messages from smartd when scanning ATA packet device.
3172 [PW] Added TOSHIBA MK4025GAS to knowndrives table.
3174 [PW] Added a textual interpretation of the status and error registers
3175 in the SMART error log (ATA). The interpretation is
3176 command-dependent and currently only eight commands are supported
3177 (those which produced errors in the error logs that I happen to
3180 [BA] added memory allocation tracking to solaris code.
3181 Fixed solaris signal handling (reset handler to default
3182 after first call to handler) by using sigset. Added
3183 HAVE_SIGSET to configure.in
3185 [CD] solaris port: added SCSI functionality to solaris
3188 [BA] smartd: attempt to address bug report about smartd
3189 hanging on USB devices when scanning:
3190 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=107615
3191 Set a timeout of SCSITIMEOUT (nominally 7 seconds) before
3194 [EM] smartd: DEVICESCAN will follow links in a devfs filesystem and
3195 make sure the end point is a disc. Update documentation, added
3196 note about FreeBSD scanning
3198 [BA] smartd: DEVICESCAN also looks for block devices in
3199 /dev. Updated documentation. Now scans for up to
3200 20 ATA devices /dev/hda-t rather than previous 12
3203 [EM] smartd: mirror the FreeBSD DEVICESCAN logic for Linux,
3204 so that smartd now scans only devices found in /dev/. Also,
3205 make utility memory functions take a line number and file so
3206 that we report errors with the correct location.
3208 [GG] add a note about Debian bug #208964 to WARNINGS.
3210 [BA] smartctl: -T verypermissive option broken. Use
3211 -T verpermissive until the next release, please.
3213 [BA] Syntax mods so that code also compiles on Solaris using
3214 Sun Workshop compiler. Need -xmemalign 1i -xCC flags
3219 [DK] Changed configure.in so -Wall is only included if gcc
3220 is used (this is a gcc specific flag) and -fsignedchar
3221 is not used at all (this is a gcc specific compiler
3224 [BA] Modifications so that code now compiles under solaris. Now
3225 all that's needed (:-) is to fill in os_solaris.[hc]. Added
3226 os_generic.[hc] as guide to future ports. Fixed -D option
3227 of smartd (no file name). Modified -h opt of smartd/smartctl
3228 to work properly with solaris getopt().
3230 [EM] Update MAN pages with notes that 3ware drives are NOT supported
3231 under FreeBSD. Cleanup FreeBSD warning message handling.
3233 [EM] FreeBSD only: Fix first user found bug....I guess I was making
3234 the wrong assumption on how to convert ATA devnames to
3235 channel/unit numbers.
3237 [EM] Allow for option --enable-sample to append '.sample' to installed
3238 smartd.conf and rc script files. Also, let rc script shell setting
3239 be determined by configure
3241 [EM] Minor autoconf update to include -lcam for FreeBSD
3243 [EM] Add conditional logic to allow FreeBSD to compile pre-ATAng.
3245 Add some documentation to INSTALL for FreeBSD.
3247 [EM] Implement SCSI CAM support for FreeBSD. NOTE: I am not an expert
3248 in the use of CAM. It seems to work for me, but I may be doing
3249 something horribly wrong, so please exercise caution.
3251 [EM] Switch over to using 'atexit' rather than 'on_exit' routine. This also
3252 meant we needed to save the exit status elsewhere so our 'Goodbye'
3253 routine could examine it.
3255 [EM] Move the DEVICESCAN code to os specific files. Also moved some of the
3256 smartd Memory functions to utility.c to make available to smartctl.
3258 [EM] Code janitor work on os_freebsd.c.
3260 [EM] Added os_freebsd.[hc] code. Additional code janitor
3263 [BA] Code janitor working, moving OS dependent code into
3266 [GG] conditionally compile os_{freebsd,linux}.o depending on
3269 [PW] Print estimated completion time for tests
3271 [BA] Added -F samsung2 flag to correct firmware byte swap.
3272 All samsung drives with *-23 firmware revision string.
3276 [GG] Fixed broken Makefile.am (zero length smartd.conf.5
3277 was being created), fix broken uninstall/distcheck targets
3279 [FM] Improved Slackware init script added to /etc/smartd.initd
3281 smartmontools 5.19 [NOTE CHANGE OF RELEASE NUMBERING]
3283 [BA] smartctl: added '-T verypermissive' option which is
3284 equivalent to giving '-T permissive' many times.
3286 [BA] Try harder to identify from IDENTIFY DEVICE structure
3287 if SMART supported/enabled. smartd now does a more
3288 thorough job of trying to assess this before sending
3289 a SMART status command to find out for sure.
3291 [BA] smartctl: it's now possible to override the program's
3292 guess of the device type (ATA or SCSI) with -d option.
3294 [BA] try hard to avoid sending IDENTIFY DEVICE to packet
3295 devices (CDROMS). They can't do SMART, and this generates
3296 annoying syslog messages. At the same time, identify type
3299 [BA] smartctl: Can now use permissive option more
3300 than once, to control how far to go before giving up.
3302 [BA] smartd: if user asked to monitor either error or self-test
3303 logs (-l error or -l selftest) WITHOUT monitoring any of the
3304 Attribute values, code will SEGV. For 5.1-18 and earlier,
3305 a good workaround is to enable Auto offline (-o on).
3307 [BA] smartctl: If enable auto offline command given, update auto
3308 offline status before printing capabilities.
3310 [GG] Make autotools build the default, remove autotools.diff
3312 [GG] Add auto{conf,make} support, not enabled by default.
3314 [BA] Eliminated #include <linux/hdreg.h> from code. This
3315 should simplify porting to solaris, FreeBSD, etc. The
3316 only linux-specific code is now isolated to three routines,
3317 one for SCSI, one for Escalade, one for ATA.
3319 smartmontools 5.1-18
3321 [BA] smartd: fixed serious bug - Attributes not monitored unless
3322 user told smartd to ignore at least one of them!
3324 smartmontools 5.1-17
3326 [BA] Default runlevels for smartd changed from 3 and 5 to
3329 [BA] Removed as much dynamic memory allocation as possible from
3330 configuration file parsing. Reloading config file, even in
3331 presence of syntax errors etc. should not cause memory leaks.
3333 [PW] It is no longer permissible for the integer part (if any) of
3334 arguments to --report and --device to be followed by non-digits.
3335 For example, the "foo" in --report=ioctl,2foo was previously
3336 ignored, but now causes an error.
3338 [BA] smartd: added -q/--quit command line option to specify
3339 under what circumstances smartd should exit. The old
3340 -c/--checkonce option is now obsoleted by this more
3341 general-purpose option.
3343 [BA] smartd now responds to a HUP signal by re-reading its
3344 configuration file /etc/smartd.conf. If there are
3345 errors in this file, then the configuration file is
3346 ignored and smartd continues to monitor the devices that
3347 it was monitoring prior to receiving the HUP signal.
3349 [BA] Now correctly get SMART status from disks behind 3ware
3350 controllers, thanks to Adam Radford. Need 3w-xxxx driver
3351 version 1.02.00.037 or later. Previously the smartmontools
3352 SMART status always returned "OK" for 3ware controllers.
3354 [BA] Additional work on dynamic memory allocation/deallocation.
3355 This should have no effect on smartctl, but clears that way
3356 for smartd to dynamically add and remove entries. It should
3357 also now be easier to modify smartd to re-read its config
3358 file on HUP (which is easy) without leaking memory (which is
3359 harder). The philosophy is that memory for data structures in
3360 smartd is now allocated only on demand, the first time it
3363 [BA] smartd: finished cleanup. Now use create/rm functions for
3364 cfgentries and dynamic memory allocation almost everywhere.
3365 Philosophy: aggresively try and provoke SEGV to help find
3368 [BA] Added SAMSUNG SV0412H to knowndrives table.
3370 [BA] smartd: if DEVICESCAN used then knowndrives table might not set
3371 the -v attributes correctly -- may have been the same for all
3372 the drives. Cleaned up some data structures and memory
3373 allocation to try and ensure segvs if such problems are
3376 [BA] Now allow -S on and -o on for the 3ware device type. For these
3377 commands to be passed through, the stock 3ware 3w-xxxx driver
3378 must be patched (8 lines). I'll post a patch on the smartmontools
3379 home page after it's been tested by a few other people and 3ware
3380 have had a chance to look it over.
3382 smartmontools-5.1-16
3384 [BA] smartd - can now monitor ATA drives behind 3ware controllers.
3386 [BA] smartd - changed some FATAL out of memory error messages from
3387 syslog level LOG_INFO to LOG_CRIT.
3389 [BA] smartctl - added code to look at ATA drives behind 3ware RAID
3390 controllers using the 3w-xxxx driver. Note that for technical
3391 reasons related to the 3w-xxxx driver, the "Enable Autosave",
3392 "Enable Automatic Offline" commands are not implemented.
3393 I will add this to smartd shortly.
3395 [BA] smartd - modified sleep loop, so that smartd no longer comes
3396 on the run queue every second. Instead, unless interrupted,
3397 it sleeps until the next polling time, when it wakes up. Now
3398 smartd also tries to wake up at exactly the right
3399 intervals (nominally 30 min) even if the user has been sending
3402 [GG] add Fujitsu MHN2300AT to vendoropts_9_seconds.
3404 [EB] Fujitsu change in knowndrives ... match the whole MPD and
3405 MPE series for vendoropts_9_seconds.
3407 [BA] smartd bug, might cause segv if a device can not be opened. Was
3408 due to missing comma in char* list. Consequence is that email
3409 failure messages might have had the wrong Subject: heading for
3410 errorcount, FAILEDhealthcheck, FAILEDreadsmartdata, FAILEDreadsmarterrorlog,
3411 FAILEDreadsmartsefltestlog, FAILEDopendevice were all displaced by
3412 one. And FAILEDopendevice might have caused a segv if -m was being
3413 used as a smartd Directive.
3415 smartmontools-5.1-15
3417 [BA] Cleaned up smartmontools.spec so that upgrading, removing
3418 and other such operations correctly preserve running behavior
3419 and booting behavior of smartd.
3421 [BA] Improved formatting of ATA Error Log printout, and added
3422 listing of names of commands that caused the error. Added
3423 obsolete ATA-4 SMART feature commands to table, along with
3424 obsolete SFF-8035i SMART feature command.
3426 [PW] Added atacmdnames.[hc], which turn command register &
3427 feature register pairs into ATA command names.
3429 [BA] Added conveyance self-test. Some code added for selective
3430 self-tests, but #ifdefed out.
3432 [BA] Modified smartd exit status and log levels. If smartd is
3433 "cleanly" terminated, for example with SIGTERM, then its
3434 exit messages are now logged at LOG_INFO not LOG_CRIT
3436 [BA] Added Attribute IDs (Fujitsu) 0xCA - 0xCE. This is decimal
3437 202-206. Added -v switches for interpretation of Attributes
3440 [BA] Made smartmontools work with any endian order machine for:
3441 - SMART selftest log
3442 - SMART ATA error log
3443 - SMART Attributes values
3444 - SMART Attributes thesholds
3445 - IDENTIFY DEVICE information
3447 Smartmontools is now free of endian bias and works correctly
3448 on both little- and big-endian hardware. This has been tested by
3449 three independent PPC users on a variety of ATA and SCSI hardware.
3451 [DG] Check that certain SCSI command responses are well formed. If
3452 IEC mode page response is not well formed exit smartctl. This
3453 is to protect aacraid. smartd should ignore a aacraid device.
3455 smartmontools-5.1-14
3457 [BA] smartctl: added column to -A output to show if Attributes are
3458 updated only during off-line testing or also during normal
3461 smartmontools-5.1-13
3463 [BA] smartd: attempt to enable/disable automatic offline testing even
3464 if the disk appears not to support it. Now the same logic
3467 [BA] Added definition of Attribute 201, soft read error rate.
3469 [BA] Added IBM/Hitachi IC35L120AVV207-1 (GXP-180) and corresponding
3470 8MB Cache GXP-120 to drive database.
3472 [BA] smartd: if DEVICESCAN Directive used in smartd.conf, and
3473 -I, -R or -r Directives used in conjunction with this, got
3474 segv errors. Fixed by correcting memory allocation calls.
3476 [BA] smartd: enable automatic offline testing was broken due
3477 to cut-and-paste error that disabled it instead of
3478 enabling it. Thanks to Maciej W. Rozycki for pointing
3479 out the problem and solution.
3481 [BA] Fixed "spelling" of some Attribute names to replace spaces
3482 in names by underscores. (Fixed field width easier for awk
3485 [BA,GF] Added mods submitted by [GF] to support Attribute 193 being
3486 load/unload cycles. Add -v 193,loadunload option, useful for
3487 Hitachi drive DK23EA-30, and add this drive to knowndrive.c
3488 Add meaning of attribute 250 : Read error retry rate
3490 smartmontools-5.1-12
3492 [BA] Added another entry for Samsung drives to knowndrive table.
3494 [DG] Refine SCSI log sense command to do a double fetch in most cases
3495 (but not for the TapeAlert log page). Fix TapeAlert and Self Test
3496 log page response truncation.
3498 [PW] Added 'removable' argument to -d Directive for smartd. This indicates
3499 that smartd should continue (rather than exit) if the device does not
3500 appear to be present.
3502 [BA] Modified smartmontools.spec [Man pages location] and
3503 smartd.initd [Extra space kills chkconfig!] for Redhat 6.x
3504 compatibility (thanks to Gerald Schnabel).
3506 smartmontools-5.1-11
3508 [EB] Add another Fujitsu disk to knowndrives.c
3510 [GG] match for scsi/ and ide/ in case of devfs to exclude false postives
3512 [BA] If SCSI device listed in /etc/smartd.conf fails to open or do
3513 SMART stuff correctly, or not enough space
3514 to list all SCSI devices, fail with error unless
3515 -DSCSIDEVELOPMENT set during compile-time.
3517 [BA] Added automatic recognition of /dev/i* (example: /dev/ide/...)
3520 [DG] Add "Device type: [disk | tape | medium changer | ...] line to
3521 smartctl -i output for SCSI devices.
3523 [PW] Fixed bug in smartd where test email would be sent regularly (for
3524 example, daily if the user had specified -M daily) instead of just
3527 [KM] More TapeAlert work. Added translations for media changer
3528 alerts. TapeAlert support reported according to the log page
3529 presence. ModeSense not attempted for non-ready tapes (all
3530 drives do not support this after all). Get peripheral type from
3531 Inquiry even if drive info is not printed. Add QUIETON()
3532 QUIETOFF() to TapeAlert log check.
3534 [BA] Stupid bug in atacmds.c minor_str[] affected ataVersionInfo().
3535 Two missing commas meant that minor_str[] had two few elements,
3536 leading to output like this:
3537 Device Model: Maxtor 6Y120L0
3538 Serial Number: Y40BF74E
3539 Firmware Version: YAR41VW0
3540 Device is: Not in smartctl database [for details use: -P showall]
3542 ATA Standard is: 9,minutes
3544 Missing commas inserted.
3546 [BA] Fixed smartd bug. On device registration, if ATA device did
3547 not support SMART error or self-test logs but user had asked to
3548 monitor them, an attempt would be made to read them anyway,
3549 possibly generating "Drive Seek" errors. We now check that
3550 the self-test and error logs are supported before trying to
3551 access them the first time.
3553 [GG/BA] Fixed bug where if SMART ATA error log not supported,
3554 command was tried anyway. Changed some error printing to use
3557 [GG] Makefile modifications to ease packaging
3559 [DG] Did work for TapeAlerts (SCSI). Now can detect /dev/nst0 as a
3560 SCSI device. Also open SCSI devices O_NONBLOCK so they don't
3561 hang on open awaiting media. The ATA side should worry about
3562 this also: during a DEVICESCAN a cd/dvd device without media
3563 will hang. Added some TapeAlert code suggested by Kai Makisara.
3565 smartmontools-5.1-10
3567 [PW] Extended the -F option/Directive to potentially fix other firmware
3568 bugs in addition to the Samsung byte-order bug. Long option name is
3569 now --firmwarebug and the option/Directive accepts an argument
3570 indicating the type of firmware bug to fix.
3572 [BA] Fixed a bug that prevented the enable automatic off-line
3573 test feature from enabling. It also prevented the enable Attribute
3574 autosave from working. See CVS entry for additional details.
3576 [PW] Modified the -r/--report option (smartctl and smartd) to allow the
3577 user to specify the debug level as a positive integer.
3579 [BA] Added --log directory option to smartctl. If the disk
3580 supports the general-purpose logging feature set (ATA-6/7)
3581 then this option enables the Log Directory to be printed.
3582 This Log Directory shows which device logs are available, and
3583 their lengths in sectors.
3585 [PW] Added -P/--presets option to smartctl and -P Directive to smartd.
3587 [GG] Introduce different exit codes indicating the type of problem
3588 encountered for smartd.
3590 [DG] Add non-medium error count to '-l error' and extended self test
3591 duration to '-l selftest'. Get scsi IEs and temperature changes
3592 working in smartd. Step over various scsi disk problems rather
3593 than abort smartd startup.
3595 [DG] Support -l error for SCSI disks (and tapes). Output error counter
3598 [BA] Added -F/--fixbyteorder option to smartctl. This allows us to read
3599 SMART data from some disks that have byte-reversed two- and four-
3600 byte quantities in their SMART data structures.
3602 [BA] Fixed serious bug: the -v options in smartd.conf were all put
3603 together and used together, not drive-by-drive.
3605 [PW] Added knowndrives.h and knowndrives.c. The knowndrives array
3606 supersedes the drivewarnings array.
3608 [GG] add {-p,--pidfile} option to smartd to write a PID file on
3609 startup. Update the manpage accordingly.
3611 [DG] Fix scsi smartd problem detecting SMART support. More cleaning
3612 and fix (and rename) scsiTestUnitReady(). More scsi renaming.
3614 [BA] Fixed smartd so that if a disk that is explictily listed is not
3615 found, then smartd will exit with nonzero status BEFORE forking.
3616 If a disk can't be registered, this will also be detected before
3617 forking, so that init scripts can react correctly.
3619 [BA] Replaced all linux-specific ioctl() calls in atacmds.c with
3620 a generic handler smartcommandhandler(). Now the only routine
3621 that needs to be implemented for a given OS is os_specific_handler().
3622 Also implemented the --report ataioctl. This provides
3623 two levels of reporting. Using the option once gives a summary
3624 report of device IOCTL transactions. Using the option twice give
3625 additional info (a printout of ALL device raw 512 byte SMART
3626 data structures). This is useful for debugging.
3628 [DG] more scsi cleanup. Output scsi device serial number (VPD page
3629 0x80) if available as part of '-i'. Implement '-t offline' as
3630 default self test (only self test older disks support).
3632 [BA] Changed crit to info in loglevel of smartd complaint to syslog
3633 if DEVICESCAN enabled and device not found.
3635 [BA] Added -v 194,10xCelsius option/Directive. Raw Attribute number
3636 194 is ten times the disk temperature in Celsius.
3638 [DG] scsicmds.[hc] + scsiprint.c: clean up indentation, remove tabs.
3639 Introduce new intermediate interface based on "struct scsi_cmnd_io"
3640 to isolate SCSI generic commands + responses from Linux details;
3641 should help port to FreeBSD of SCSI part of smartmontools.
3642 Make SCSI command builders more parametric.
3646 [BA] smartctl: if HDIO_DRIVE_TASK ioctl() is not implemented (no
3647 kernel support, then try to assess drive health by examining
3648 Attribute values/thresholds directly.
3650 [BA] smartd/smartctl: added -v 200,writeerrorcount option/Directive
3653 [BA] smartd: Now send email if any of the SMART commands fails,
3654 or if open()ing the device fails. This is often noted
3655 as a common disk failure mode.
3657 [BA] smartd/smartctl: Added -v N,raw8 -v N,raw16 and -v N,raw48
3658 Directives/Options for printing Raw Attributes in different
3661 [BA] smartd: Added -r ID and -R ID for reporting/tracking Raw
3662 values of Attributes.
3664 [BA] smartd/smartctl: Changed printing of spin-up-time attribute
3665 raw value to reflect current/average as per IBM standard.
3667 [BA] smartd/smartctl: Added -v 9,seconds option for disks which
3668 use Attribute 9 for power-on lifetime in seconds.
3670 [BA] smartctl: Added a warning message so that users of some IBM
3671 disks are warned to update their firmware. Note: we may want
3672 to add a command-line flag to disable the warning messages.
3673 I have done this in a general way, using regexp, so that we
3674 can add warnings about any type of disk that we wish...
3678 [BA] smartd: Created a subdirectory examplescripts/ of source
3679 directory that contains executable scripts for the -M exec PATH
3680 Directive of smartd.
3684 [BA] smartd: DEVICESCAN in /etc/smartd.conf
3685 can now be followed by all the same Directives as a regular
3686 device name like /dev/hda takes. This allows one to use
3688 DEVICESCAN -m root@example.com
3689 in the /etc/smartd.conf file.
3691 [BA] smartd: Added -c (--checkonce) command-line option. This checks
3692 all devices once, then exits. The exit status can be
3693 used to learn if devices were detected, and if smartd is
3694 functioning correctly. This is primarily for Distribution
3697 [BA] smartd: Implemented -M exec Directive for
3698 smartd.conf. This makes it possible to run an
3699 arbitrary script or mailing program with the
3702 [PW] smartd: Modified -M Directive so that it can be given
3703 multiple times. Added -M exec Directive.
3707 [BA] Fixed bug in smartctl pointed out by Pierre Gentile.
3708 -d scsi didn't work because tryata and tryscsi were
3709 reversed -- now works on /devfs SCSI devices.
3711 [BA] Fixed bug in smartctl pointed out by Gregory Goddard
3712 <ggoddard@ufl.edu>. Manual says that bit 6 of return
3713 value turned on if errors found in smart error log. But
3714 this wasn't implemented.
3718 [BA] Modified printing format for 9,minutes to read
3719 Xh+Ym not X h + Y m, so that fields are fixed width.
3721 [BA] Added Attribute 240 "head flying hours"
3725 [BA] As requested, local time/date now printed by smartctl -i
3727 [PW] Added "help" argument to -v for smartctl
3729 [PW] Added -D, --showdirectives option to smartd
3731 [DG] add '-l selftest' capability for SCSI devices (update smartctl.8)
3733 [BA] smartd,smartctl: added additional Attribute modification option
3734 -v 220,temp and -v 9,temp.
3736 [PW] Renamed smartd option -X to -d
3738 START OF SMARTMONTOOLS 5.1 series
3740 smartmontools-5.0.50
3742 [PW] Changed smartd.conf Directives -- see man page
3744 [BA/DG] Fixed uncommented comment in smartd.conf
3746 [DG] Correct 'Recommended start stop count' for SCSI devices
3748 [PW] Replaced smartd.conf directive -C with smartd option -i
3750 [PW] Changed options for smartctl -- see man page.
3752 [BA] Use strerror() to generate system call error messages.
3754 [BA] smartd: fflush() all open streams before fork().
3756 [BA] smartctl, smartd simplified internal handling of checksums
3757 for simpler porting and less code.
3759 smartmontools-5.0.49
3761 [PW] smartd --debugmode changed to --debug
3763 [BA] smartd/smartctl added attribute 230 Head Amplitude from
3766 [PW] Added list of proposed new options for smartctl to README.
3768 [PW] smartd: ParseOpts() now uses getopt_long() if HAVE_GETOPT_LONG is
3769 defined and uses getopt() otherwise. This is controlled by CPPFLAGS in
3772 [BA] smartd: Fixed a couple of error messages done with perror()
3773 to redirect them as needed.
3775 smartmontools-5.0.48
3777 [BA] smartctl: The -O option to enable an Immediate off-line test
3778 did not print out the correct time that the test would take to
3779 complete. This is because the test timer is volatile and not
3780 fixed. This has been fixed, and the smartctl.8 man page has been
3781 updated to explain how to track the Immediate offline test as it
3782 progresses, and to further emphasize the differences between the
3783 off-line immediate test and the self-tests.
3785 [BA] smartd/smartctl: Added new attribute (200) Multi_Zone_Error_Rate
3787 [BA] smartctl: modified so that arguments could have either a single -
3788 as in -ea or multiple ones as in -e -a. Improved warning message for
3789 device not opened, and fixed error in redirection of error output of
3790 HD identity command.
3792 [PW] smartd: added support for long options. All short options are still
3793 supported; see manpage for available long options.
3795 [BA] smartctl. When raw Attribute value was 2^31 or larger, did
3796 not print correctly.
3798 smartmontools-5.0.46
3800 [BA] smartd: added smartd.conf Directives -T and -s. The -T Directive
3801 enables/disables Automatic Offline Testing. The -s Directive
3802 enables/disables Attribute Autosave. Documentation and
3803 example configuration file updated to agree.
3805 [BA] smartd: user can make smartd check the disks at any time
3806 (ie, interrupt sleep) by sending signal SIGUSR1 to smartd. This
3807 can be done for example with:
3809 where <pid> is the process ID number of smartd.
3811 [EB] scsi: don't trust the data we receive from the drive too
3812 much. It very well might have errors (like zero response length).
3813 Seen on Megaraid logical drive, and verified in the driver source.
3815 [BA] smartd: added Directive -m for sending test email and
3816 for modifying email reminder behavior. Updated manual, and sample
3817 configuration file to illustrate & explain this.
3819 [BA] smartd: increased size of a continued smartd.conf line to
3822 [BA] Simplified Directive parsers and improved warning/error
3825 smartmontools-5.0.45
3827 [EB] Fixed bug in smartd where testunitready logic inverted
3828 prevented functioning on scsi devices.
3829 The bug in question only affects smartd users with scsi devices.
3830 To see if your version of smartd has the testunitready() bug, do
3832 If the version of the module smartd.c in a line like:
3833 Module: smartd.c revision: 1.66 date: 2002/11/17
3834 has a revision greater than or equal to 1.30, and less than or equal to
3835 1.64, then your version of the code has this problem.
3836 This problem affected releases starting with RELEASE_5_0_16 up to and
3837 including RELEASE_5_0_43.
3839 [BA] Added testunitnotready to smartctl for symmetry with smartd.
3841 [SB] added Czech descriptions to .spec file
3842 [SB] corrected comment in smartd.conf example
3844 [BA] Changed way that entries in the ATA error log are printed,
3845 to make it clearer which is the most recent error and
3846 which is the oldest one.
3848 NOTE: All changes made prior to this point were done by Bruce Allen
3849 [BA] although several of them had been suggested by earlier postings
3850 by Stanislav Brabec [SB].
3852 smartmontools-5.0.43
3854 Changed Temperature_Centigrade to Temperature_Celsius.
3855 The term "Centigrade" ceased to exist in 1948. (c.f
3856 http://www.bartleby.com/64/C004/016.html).
3858 smartmontools-5.0.42
3860 Modified SCSI device check to also send warning emails if
3861 requested in directives file.
3863 Added a new smartd configuration file Directive: -M ADDRESS.
3864 This sends a single warning email to ADDRESS for failures or
3865 errors detected with the -c, -L, -l, or -f Directives.
3867 smartmontools-5.0.38
3869 Modified perror() statements in atacmds.c so that printout for SMART
3870 commands errors is properly suppressed or queued depending upon users
3871 choices for error reporting modes.
3873 Added Italian descriptions to smartmontools.spec file.
3875 Started impementing send-mail-on-error for smartd; not yet enabled.
3877 Added -P (Permissive) Directive to smartd.conf file to allow SMART
3878 monitoring of pre-ATA-3 Rev 4 disks that have SMART but do not have
3879 a SMART capability bit.
3881 Removed charset encodings from smartmontools.spec file for non-English
3884 smartmontools-5.0.32
3886 Added manual page smartd.conf.5 for configuration file.
3888 smartctl: Missing ANSI prototype in failuretest(); fixed.
3890 smartctl: Checksum warnings now printed on stdout, or are silent,
3891 depending upon -q and -Q settings.
3893 smartmontools-5.0.31
3895 Changed Makefile so that the -V option does not reflect file state
3898 smartctl: added new options -W, -U, and -P to control if and how the
3899 smartctl exits if an error is detected in either a SMART data
3900 structure checksum, or a SMART command returns an error.
3902 modified manual page to break options into slightly more logical
3905 reformatted 'usage' message order to agree with man page ordering
3907 modified .spec file so that locale information now contains
3908 character set definition. Changed pt_BR to pt since we do not use any
3909 aspect other than language. See man setlocale.
3911 smartmontools-5.0.30
3912 smartctl: added new options -n and -N to force device to be ATA or SCSI
3913 smartctl: no longer dies silently if device path does not start/dev/X
3914 smartctl: now handles arbitrary device paths
3916 smartmontools-5.0.29
3917 Modified .spec file and Makefile to make them more compliant with
3918 the "right" way of doing things.
3920 smartmontools-5.0.26
3921 Fixed typesetting error in man page smartd.8
3923 Removed redundant variable (harmless) from smartd.c
3925 smartmontools-5.0.25
3927 Added a new directive for the configuration file. If the word
3928 DEVICESCAN appears before any non-commented material in the
3929 configuration file, then the confi file will be ignored and the
3930 devices wil be scanned.
3932 smartmontools-5.0.24
3934 Note: it has now been confirmed that the code modifications between
3935 5.0.23 and 5.0.24 have eliminated the GCC 3.2 problems. Note that
3936 there is a GCC bug howerver, see #8404 at
3937 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?database=gcc&cmd=query
3938 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8404
3940 Added new Directive for Configuration file:
3941 -C <N> This sets the time in between disk checks to be <N>
3942 seconds apart. Note that although you can give
3943 this Directive multiple times on different lines of
3944 the configuration file, only the final value that
3945 is given has an effect, and applies to all the
3946 disks. The default value of <N> is 1800 sec, and
3947 the minimum allowed value is ten seconds.
3949 Problem wasn't the print format. F.L.W. Meunier <0@pervalidus.net>
3950 sent me a gcc 3.2 build and I ran it under a debugger. The
3951 problem seems to be with passing the very large (2x512+4) byte
3952 data structures as arguments. I never liked this anyway; it was
3953 inherited from smartsuite. So I've changed all the heavyweight
3954 functions (ATA ones, anyone) to just passing pointers, not hideous
3955 kB size structures on the stack. Hopefully this will now build OK
3956 under gcc 3.2 with any sensible compilation options.
3958 smartmontools-5.0.23
3960 Because of reported problems with GCC 3.2 compile, I have gone
3961 thorough the code and explicitly changed all print format
3962 parameters to correspond EXACTLY to int unless they have to be
3963 promoted to long longs. To quote from the glibc bible: [From
3964 GLIBC Manual: Since the prototype doesn't specify types for
3965 optional arguments, in a call to a variadic function the default
3966 argument promotions are performed on the optional argument
3967 values. This means the objects of type char or short int (whether
3968 signed or not) are promoted to either int or unsigned int, as
3971 smartmontools-5.0.22
3973 smartd, smartctl now warn if they find an attribute whose ID
3974 number does not match between Data and Threshold structures.
3976 Fixed nasty bug which led to wrong number of arguments for a
3977 varargs statement, with attendent stack corruption. Sheesh!
3978 Have added script to CVS attic to help find such nasties in the
3981 smartmontools-5.0.21
3983 Eliminated some global variables out of header files and other
3984 minor cleanup of smartd.
3986 smartmontools-5.0.20
3988 Did some revision of the man page for smartd and made the usage
3989 messages for Directives 100% consistent.
3991 smartmontools-5.0-19
3993 smartd: prints warning message when it gets SIGHUP, saying that it
3994 is NOT re-reading the config file.
3996 smartctl: updated man page to say self-test commands -O,x,X,s,S,A
3997 appear to be supported in the code. [I can't test these, can anyone
4000 smartmontools-5.0-18
4002 smartctl: smartctl would previously print the LBA of a self-test
4003 if it completed, and the LBA was not 0 or 0xff...f However
4004 according to the specs this is not correct. According to the
4005 specs, if the self-test completed without error then LBA is
4006 undefined. This version fixes that. LBA value only printed if
4007 self-test encountered an error.
4009 smartmontools-5.0-17
4011 smartd has changed significantly. This is the first CVS checkin of
4012 code that extends the options available for smartd. The following
4013 options can be placed into the /etc/smartd.conf file, and control the
4015 Configuration file Directives (following device name):
4016 -A Device is an ATA device
4017 -S Device is a SCSI device
4018 -c Monitor SMART Health Status
4019 -l Monitor SMART Error Log for changes
4020 -L Monitor SMART Self-Test Log for new errors
4021 -f Monitor for failure of any 'Usage' Attributes
4022 -p Report changes in 'Prefailure' Attributes
4023 -u Report changes in 'Usage' Attributes
4024 -t Equivalent to -p and -u Directives
4025 -a Equivalent to -c -l -L -f -t Directives
4026 -i ID Ignore Attribute ID for -f Directive
4027 -I ID Ignore Attribute ID for -p, -u or -t Directive
4028 # Comment: text after a hash sign is ignored
4029 \ Line continuation character
4031 cleaned up functions used for printing CVS IDs. Now use string
4032 library, as it should be.
4034 modified length of device name string in smartd internal structure
4035 to accomodate max length device name strings
4037 removed un-implemented (-e = Email notification) option from
4038 command line arg list. We'll put it back on when implemeneted.
4040 smartd now logs serious (fatal) conditions in its operation at
4041 loglevel LOG_CRIT rather than LOG_INFO before exiting with error.
4043 smartd used to open a file descriptor for each SMART enabled
4044 device, and then keep it open the entire time smartd was running.
4045 This meant that some commands, like IOREADBLKPART did not work,
4046 since the fd to the device was open. smartd now opens the device
4047 when it needs to read values, then closes it. Also, if one time
4048 around it can't open the device, it simply prints a warning
4049 message but does not give up. Have eliminated the .fd field from
4050 data structures -- no longer gets used.
4052 smartd now opens SCSI devices as well using O_RDONLY rather than
4053 O_RDWR. If someone can no longer monitor a SCSI device that used
4054 to be readable, this may well be the reason why.
4056 smartd never checked if the number of ata or scsi devices detected
4057 was greater than the max number it could monitor. Now it does.
4059 smartmontools-5.0-16
4061 smartd on startup now looks in the configuration file /etc/smartd.conf for
4062 a list of devices which to include in its monitoring list. See man page
4063 (man smartd) for syntax.
4065 smartd: close file descriptors of SCSI device if not SMART capable
4066 Closes ALL file descriptors after forking to daemon.
4068 added new temperature attribute (231, temperature)
4070 smartd: now open ATA disks using O_RDONLY
4072 smartmontools-5.0-11
4074 smartd now prints the name of a failed or changed attribute
4075 into logfile, not just ID number
4077 Changed name of -p (print version) option to -V
4079 Minor change in philosophy: if a SMART command fails or the device
4080 appears incapable of a SMART command that the user has asked for,
4081 complain by printing an error message, but go ahead and try
4082 anyway. Since unimplemented SMART commands should just return an
4083 error but not cause disk problems, this should't cause any
4086 Added two new flags: q and Q. q is quiet mode - only print: For
4087 the -l option, errors recorded in the SMART error log; For the -L
4088 option, errors recorded in the device self-test log; For the -c
4089 SMART "disk failing" status or device attributes (pre-failure or
4090 usage) which failed either now or in the past; For the -v option
4091 device attributes (pre-failure or usage) which failed either now
4092 or in the past. Q is Very Quiet mode: Print no ouput. The only
4093 way to learn about what was found is to use the exit status of
4096 smartctl now returns sensible values (bitmask). See smartctl.h
4097 for the values, and the man page for documentation.
4099 The SMART status check now uses the correct ATA call. If failure
4100 is detected we search through attributes to list the failed ones.
4101 If the SMART status check shows GOOD, we then look to see if their
4102 are any usage attributes or prefail attributes have failed at any
4103 time. If so we print them.
4105 Modified function that prints vendor attributes to say if the
4106 attribute has currently failed or has ever failed.
4108 -p option now prints out license info and CVS strings for all
4109 modules in the code, nicely formatted.
4111 Previous versions of this code (and Smartsuite) only generate
4112 SMART failure errors if the value of an attribute is below the
4113 threshold and the prefailure bit is set. However the ATA Spec
4114 (ATA4 <=Rev 4) says that it is a SMART failure if the value of an
4115 attribute is LESS THAN OR EQUAL to the threshold and the
4116 prefailure bit is set. This is now fixed in both smartctl and
4117 smartd. Note that this is a troubled subject -- the original
4118 SFF 8035i specification defining SMART was inconsistent about
4119 this. One section says that Attribute==Threshold is pass,
4120 and another section says it is fail. However the ATA specs are
4121 consistent and say Attribute==Threshold is a fail.
4123 smartd did not print the correct value of any failing SMART attribute. It
4124 printed the index in the attribute table, not the attribute
4127 when starting self-tests in captive mode ioctl returns EIO because
4128 the drive has been busied out. Detect this and don't return an eror
4129 in this case. Check this this is correct (or how to fix it?)
4131 fixed possible error in how to determine ATA standard support
4132 for devices with no ATA minor revision number.
4134 device opened only in read-only not read-write mode. Don't need R/W
4135 access to get smart data. Check this with Andre.
4137 smartctl now handles all possible choices of "multiple options"
4138 gracefully. It goes through the following phases of operation,
4139 in order: INFORMATION, ENABLE/DISABLE, DISPLAY DATA, RUN/ABORT TESTS.
4140 Documentation has bee updated to explain the different phases of
4141 operation. Control flow through ataPrintMain()
4144 If reading device identity information fails, try seeing if the info
4145 can be accessed using a "DEVICE PACKET" command. This way we can
4146 at least get device info.
4148 Modified Makefile to automatically tag CVS archive on issuance of
4151 Modified drive detection so minor device ID code showing ATA-3 rev
4152 0 (no SMART) is known to not be SMART capable.
4154 Now verify the checksum of the device ID data structure, and of the
4155 attributes threshold structure. Before neither of these
4156 structures had their checksums verified.
4158 New behavior vis-a-vis checksums. If they are wrong, we log
4159 warning messages to stdout, stderr, and syslog, but carry on
4160 anyway. All functions now call a checksumwarning routine if the
4161 checksum doesn't vanish as it should.
4163 Changed Read Hard Disk Identity function to get fresh info from
4164 the disk on each call rather than to use the values that were read
4165 upon boot-up into the BIOS. This is the biggest change in this
4166 release. The ioctl(device, HDIO_GET_IDENTITY, buf ) call should
4167 be avoided in such code. Note that if people get garbled strings
4168 for the model, serial no and firmware versions of their drives,
4169 then blame goes here (the BIOS does the byte swapping for you,
4172 Function ataSmartSupport now looks at correct bits in drive
4173 identity structure to verify first that these bits are valid,
4176 Function ataIsSmartEnabled() written which uses the Drive ID state
4177 information to tell if SMART is enabled or not. We'll carry this
4178 along for the moment without using it.
4180 Function ataDoesSmartWork() guaranteed to work if the device
4183 Replace some numbers by #define MACROS
4185 Wrote Function TestTime to return test time associated with each
4186 different type of test.
4188 Thinking of the future, have added a new function called
4189 ataSmartStatus2(). Eventually when I understand how to use the
4190 TASKFILE API and am sure that this works correctly, it will
4191 replace ataSmartStatus(). This queries the drive directly to
4192 see if the SMART status is OK, rather than comparing thresholds to
4193 attribute values ourselves. But I need to get some drives that fail
4194 their SMART status to check it.
4197 smartmontools-5.0-10
4198 Removed extraneous space before printing in some error messages
4199 Fixed additional typos in documentation
4200 Fixed some character buffers that were too short for their contents.
4204 Put project home path into all source files near the top
4205 Corrected typos in the documentation
4206 Modified Makefile so that Mandrake Cooker won't increment version number
4207 (unless they happen to be working on my machine, which I doubt!)
4209 smartmontools-5.0-8:
4211 For IBM disks whose raw temp data includes three temps. print all
4214 print timestamps for error log to msec precision
4216 added -m option for Hitachi disks that store power on life in
4219 added -L option for printing self-test error logs
4221 in -l option, now print power on lifetime, so that one can see
4222 when the error took place
4224 updated SMART structure definitions to ATA-5 spec
4228 added -f and -F options to enable/disable autosave threshold
4231 changed argv parsing to use getops -- elminate buffer overflow
4234 expanded and corrected documentation
4236 fixed problem with smartd. It did not actually call
4237 ataSmartEnable()! Since the argument was left out, the test
4238 always suceeded because it evaluated to a pointer to the function.
4240 smartd: closed open file descriptors if device does not support
4241 smart. Note: this still needs to be fixed for SCSI devices
4244 smartmontools-5.0-0 STARTED with smartsuite-2.1-2