]> git.proxmox.com Git - mirror_smartmontools-debian.git/blob - CHANGELOG
Imported Upstream version 5.40+svn3296
[mirror_smartmontools-debian.git] / CHANGELOG
1 CHANGELOG for smartmontools
2
3 $Id: CHANGELOG 3296 2011-03-16 22:17:51Z chrfranke $
4
5 The most recent version of this file is:
6 http://smartmontools.svn.sourceforge.net/viewvc/smartmontools/trunk/smartmontools/CHANGELOG?view=markup
7
8 Maintainers / Developers Key (alphabetic order):
9 [AS] Alex Samorukov
10 [BA] Bruce Allen
11 [OB] Oliver Bock
12 [EB] Erik Inge Bolsø
13 [SB] Stanislav Brabec
14 [PC] Peter Cassidy
15 [MC] Matthieu Castet
16 [YD] Yuri Dario
17 [CD] Casper Dik
18 [CF] Christian Franke
19 [GF] Guilhem Frézou
20 [DG] Douglas Gilbert
21 [GG] Guido Guenther
22 [JPH] Jordan Powell Hargrave
23 [JH] Joerg Hering
24 [GK] Geoff Keating
25 [DK] Dr. David Kirkby
26 [DL] Dan Lukes
27 [KM] Kai Mäkisara
28 [EM] Eduard Martinescu
29 [FM] Frédéric L. W. Meunier
30 [GP] Gabriele Pohl
31 [AR] Adam Radford
32 [KS] Keiji Sawada
33 [MS] Manfred Schwarb
34 [TS] Tomas Smetana
35 [DS] David Snyder
36 [SS] Sergey Svishchev
37 [PW] Phil Williams
38 [LW] Leon Woestenberg
39 [SZ] Shengfeng Zhou
40 [RZ] Richard Zybert
41
42 <DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE>
43
44 [CF] Windows: Add update-smart-drivedb.nsi NSIS script to build
45 drivedb.h update tool.
46
47 [CF] Windows: Move search for NSIS compiler from Makefile.am to
48 configure.in.
49
50 [CF] update-smart-drivedb.in: Move DRIVEDB_BRANCH name creation
51 from script to configure.in.
52
53 [CF] os_linux.cpp: Replace printf() by pout(). Disable unused
54 function dumpdata().
55
56 [CF] Windows: Include CSMI (for Intel RAID) in default DEVICESCAN.
57
58 [CF] configure.in: Remove info messages about old defaults.
59
60 [CF] drivedb.h: Set unneeded USB bcdDevice patterns to empty.
61
62 [CF] Rework USB ID drivedb search. Stop search at first matching
63 entry with empty bcd_device pattern.
64
65 [CF] Move handling of '-F swapid' from formatting to identity read
66 function. Remove unneeded 'fix_swapped_id' parameters.
67
68 [CF] smartd: Log warning from drive database if present.
69 smartctl: Do not search drive database twice.
70
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)
76
77 [CF] Let constructor of regular_expression throw on error by default.
78
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).
81
82 [CF] smartctl --scan-open: Make output compatible with smartd.conf
83 (ticket #108). Fix possible crash if autodetect_open() returns
84 new object.
85
86 [CF] do_release: Re-add signing of tarball.
87
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.
90
91 [CF] smartd: Add '-l scterc,READTIME,WRITETIME' directive (ticket #150).
92
93 [CF] smartctl: Fix exit status of '-l xerror' and '-l xselftest'
94 (ticket #144).
95
96 [CF] smartd: Use '-M daily' as default if state persistence is enabled.
97 This avoids that emails are suppressed forever (ticket #35).
98
99 [CF] smartd: Log identify information of each ATA device.
100
101 [CF] smartd: Disable '-C' and '-U' monitoring if raw values are
102 very large (ticket #148).
103
104 [CF] smartd: Write reserved attribute byte to '.state' file
105 (ticket #118).
106
107 [MS] drivedb.h USB updates:
108 - Seagate FreeAgent Go Flex Desk USB 3.0
109 - Toshiba Canvio 500GB
110
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)
120
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.
125
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.
128
129 [CF] smartd man pages: Add some missing [ATA only].
130
131 [CF] os_linux.cpp: Dereference symlinks before guess of device type
132 (ticket #146). Minor rework of autodetect_smart_device().
133
134 [CF] smartctl -l scterc: Don't get ERC if only set is requested.
135 This prevent misleading error messages if ATA output registers
136 are not supported.
137
138 [CF] Windows: Prevent warnings from gcc 4.5.1.
139
140 [CF] os_netbsd.cpp, os_openbsd.cpp: Add missing <errno.h>
141
142 [CF] os_freebsd.cpp: Add missing <errno.h>
143
144 [CF] dev_legacy.cpp: Add missing <errno.h>
145
146 [CF] Linux megaraid: Fix pass-through of non-data ATA commands
147 (ticket #149).
148 Only reject commands which require ATA output registers.
149
150 [CF] configure.in: Remove '-fno-strict-aliasing' from CXXFLAGS.
151 This reverts r2992 (see ticket #23).
152
153 [CF] Linux megaraid: Avoid strict-aliasing warnings.
154 Patch was provided by Stanislav Brabec (2009-06-03).
155
156 [MS] Make functions without prototypes static.
157
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.
160
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
164
165 [CF] Rename variables to prevent warnings if '-Wshadow' is set.
166 Remove unnecessary includes. Fix some comments.
167
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)
172 - Samsung PM800 SSDs
173 - Samsung PM810 (470 series) SSDs
174
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'.
178
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
182
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
189
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.
192
193 [CF] smartd: Output multiple lines via separate syslog(3) calls
194 (ticket #135).
195
196 [CF] smartctl: Add new ATA minor revisions and log addresses from ACS-2
197 revision 4a. Replace runtime asserts by compile time asserts.
198
199 [CF] smartd: Remove "default: /var/log/messages" hint from warning mail.
200 This obsoletes Debian patch 60_remove-redhatism.diff.
201
202 [CF] Windows: Include USB devices in DEVICESCAN (ticket #116).
203
204 [CF] Windows: Use direct WMI access to detect USB IDs (ticket #115).
205 This replaces 'wmic' runs and speeds up USB detection.
206
207 [CF] configure.in: Rework platform-specific settings.
208
209 [CF] configure.in: Remove some no longer used settings:
210 -lselinux (duplicate), NEED_SOLARIS_ATA_CODE, OS_FREEBSD.
211
212 [CF] Makefile.am: Remove SUBDIRS. Recursive targets are no longer used.
213
214 [CF] Use log directory to check for old error and self-test log
215 support (ticket #89).
216
217 [CF] drivedb.h USB update:
218 - WD My Book Essential 3TB USB 3.0
219
220 [CF] Fix usb header includes for DragonFly BSD (ticket #141).
221
222 [CF] smartctl: Print physical and logical sector sizes (ticket #62).
223
224 [CF] drivedb.h updates:
225 - Fujitsu MHT: Add AC variant
226 - Fujitsu MHW2 AC
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
230
231 [CF] drivedb.h USB updates:
232 - Samsung S2 Portable (ticket #136)
233 - Move Verbatim 0x152d:0x2351 to JMicron section
234
235 [AS] drivedb.h updates:
236 - Verbatim Portable Hard Drive eSATA & USB 2.0 Combo 500GB
237
238 [CF] Happy New Year! Update copyright year in version info.
239
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
246
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)
252
253 [CF] update-smart-drivedb.in: Add workaround for OpenBSD shell bug:
254 'set -e; if eval false; ...' aborts script (ticket #128).
255
256 [CF] update-smart-drivedb.in: Add platform specific download tools:
257 'fetch' on FreeBSD (ticket #127), 'ftp' on OpenBSD.
258
259 [CF] drivedb.h USB updates:
260 - JMicron 0x152d:0x2509
261 - WD My Passport 0730
262
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
269
270 [CF] drivedb.h update:
271 - Samsung SpinPoint F4 EG: Add 1.5TB, update firmware bug warning.
272
273 [DG] [SCSI] Fix log page sanity check problem if the DS bit set
274 in response. Caused '-l background' to fail.
275
276 [CF] drivedb.h updates:
277 - Samsung SpinPoint F4 EG: Warning about bad blocks
278
279 [CF] update-smart-drivedb.in: Replace ERE by BRE. Script does no
280 longer require GNU sed (Ticket #126).
281
282 [DG] In '-r ioctl' show vendor specific SCSI commands as such rather
283 than 'unknown'.
284
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).
288
289 [CF] drivedb.h updates:
290 - Apple SSDs TS*
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
296
297 [CF] Windows installer: Add missing quotes in smartctl-run.bat
298 and smartd-run.bat (Ticket #124).
299
300 [CF] OpenBSD: Fix DEVICESCAN for OpenBSD >= 4.8 (Ticket #123).
301
302 [CF] daemon_win32.cpp: Remove duplicate assignment (Ticket #120).
303
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
308 preserved.
309
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.
313
314 [CF] Remove EXPERIMENTAL notes for features already present
315 in 5.39.
316
317 [CF] Rework '-d TYPE' documentation on man pages.
318
319 [CF] drivedb.h updates:
320 - Seagate Maxtor DiamondMax 21: Add 80GB
321 - Western Digital Caviar Black: Add 1TB/64MB
322
323 [CF] drivedb.h USB updates:
324 - iRiver iHP-120/140 (Ticket #119)
325 - ASMedia ASM1051
326
327 [CF] Makefile.am: Handle examplescripts in main Makefile.
328 Remove 'examplescripts/Makefile.am'.
329
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')
333
334 [CF] Replace global 'con->dont_print/...' variables by 'printing_is_*'.
335 Remove global 'con'trol pointer. Remove file 'extern.h'.
336
337 [CF] Replace global 'con->reportata/scsiioctl' variables by '*_debugmode'.
338
339 [CF] Replace global 'con->conservative/permissive' variables by
340 'failuretest_*'. Move failuretest() function to smartctl.cpp.
341
342 [CF] Remove unused CONTROLLER_* defines.
343
344 [CF] Remove unused controller support from dev_legacy adapter module.
345
346 [CF] Make 'debugmode' variable local to smartd.cpp.
347
348 smartmontools 5.40 2010-10-16
349
350 [CF] examplescripts/Example3: Use stdin to pass message to 'wall'
351 command (ticket #114).
352
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.
359
360 [CF] Remove "Lifetime" from Min/Max temperature attribute output
361 (ticket #111). Interval is device specific.
362
363 [CF] configure.in: Print resource/message compiler info for Windows only.
364
365 [CF] FreeBSD: Rework get_dev_names_cam() to support more than 26 devices.
366
367 [CF] drivedb.h updates:
368 - Seagate Barracuda 7200.10: Add 360GB
369 - USB: Iomega MDHD-UE
370 Patch provided by Rob Marissen.
371
372 [DL] Standby mode not detected properly on FreeBSD (ticket #91).
373
374 [MS] os_linux.cpp: fix "gcc -flto" build error by including stddef.h
375
376 [CF] drivedb.h update:
377 - Indilinx Barefoot based SSDs: Add OCZ-VERTEX 1199 and -TURBO
378
379 [CF] TODO file: Move open entries to tickets #106, #107, #108, #109, #110.
380 Remove outdated entries.
381
382 [CF] drivedb.h USB update:
383 - SunPlus 0x04fc:0x0c05
384
385 [CF] drivedb.h update:
386 - SandForce Driven SSDs: Add Corsair Force, fix typo
387
388 [CF] Print hex values of unknown self-test type or status.
389
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
394
395 [CF] drivedb.h updates:
396 - SandForce Driven SSDs: Add 11 attributes of new FW,
397 add Unigen UG99PGC
398 - WD AV ATA family: Add 250GB, 320GB
399 - WD AV SATA family
400
401 [CF] Windows: Build syslogevt.exe with MinGW. Now possible because
402 binutils provides windmc.
403
404 [CF] Makefile.am: Remove install message about smartd startup.
405 It might be misleading because it is not correct for all platforms.
406
407 [CF] configure.in: Minor fix of '--enable-drivedb' new defaults
408 detection.
409
410 [CF] Update links, configure and OS info in INSTALL file.
411 Replace tabs by spaces.
412
413 [CF] configure.in: Fix '--enable-sample' and '--with-selinux'.
414 Fix obsolete use of AC_DEFINE().
415
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
421
422 [CF] Windows installer: Fix smartctl-run.bat for drive menu (ticket #31).
423
424 [CF] Windows: Create md5/sha1/sha256 checksums of the binaries.
425 Add checksums.txt file to binary distribution.
426
427 [CF] Windows: Include drivedb.h into binary distribution.
428
429 [CF] drivedb.h updates:
430 - Intel X18-M/X25-M/X25-V G2: Add X25-V 40GB
431 - Transcend CompactFlash Cards
432
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.
437
438 [CF] Remove unused variable 'reportbug'.
439
440 [CF] Make function PrintOut() local to smartd.cpp, remove it from
441 smartctl.cpp.
442
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.
446
447 [AS] smartctl.8.in minor update: adding FreeBSD ahci/scsi device hints
448
449 [CF] Fix build if SVN Id keywords are not expanded (ticket #94).
450
451 [CF] Windows: Remove "." from DLL search path to prevent DLL
452 preloading attacks.
453
454 [CF] drivedb.h USB update:
455 - JMicron 0x152d:0x0551 (ticket #95)
456 Add note about port multipliers to smartctl man page.
457
458 [CF] drivedb.h updates:
459 - SandForce Driven SSDs: Add Unigen drives
460 - Indilinx Barefoot based SSDs: Add ASAX Leopard Hunt II
461
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
465 man page.
466
467 Thanks to Artem Danielov from Intel for providing the
468 required information and drives for testing.
469
470 [CF] drivedb.h update:
471 - SandForce Driven SSDs: Add OCZ drives with form factor info.
472
473 [CF] drivedb.h update:
474 - Intel X25-E, X18-M/X25-M (add X18-M, update attributes)
475
476 [CF] configure.in: '--enable-drivedb' is now the default.
477
478 [CF] drivedb.h update:
479 - Indilinx Barefoot based SSDs
480 (combine and update 5 SSD entries using this controller)
481
482 [CF] drivedb.h update:
483 - SandForce Driven SSDs (Demo Drive, OCZ-Agility2/Vertex2/Vertex-LE)
484
485 Thanks to Jeremy Werner (jwerner@sandforce.com) from SandForce for
486 providing the required information and a demo drive for testing.
487
488 [CF] drivedb.h update:
489 - Add 1.5TB drive to SAMSUNG SpinPoint F3 EG series
490
491 [CF] Add print formats '-v ID,msec24hour32' and '-v ID,raw24/raw32'.
492 Used by SSDs with SandForce controller.
493
494 [CF] Allow SMART threshold entries at positions different from
495 attribute table. This fixes attribute output for recent
496 SSDs with SandForce controller.
497
498 [CF] smartctl: Add option '-t vendor,N' to issue ATA
499 command SMART EXECUTE OFF-LINE IMMEDIATE with
500 a vendor specific subcommand.
501
502 [CF] drivedb.h update:
503 - SAMSUNG SpinPoint V80 series (ticket #85)
504
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.
508
509 [CF] drivedb.h update:
510 - SAMSUNG SpinPoint M7 series
511
512 [CF] drivedb.h USB update:
513 - Buffalo JustStore Portable HD-PVU2
514
515 [CF] drivedb.h USB updates:
516 - Iomega LDHD-UP (ticket #83)
517 - WD Elements Desktop 2TB
518 - Maxtor OneTouch (0x0d49:0x7300)
519
520 [MS] drivedb.h updates:
521 - Intel X25-M SSD first Generation
522 - ExcelStor J8160
523 - OCZ Agility2
524
525 [CF] drivedb.h updates:
526 - Transcend Solid State Drives (ticket #80)
527
528 [CF] drivedb.h USB update:
529 - LaCie Rugged Hard Drive
530
531 [CF] smartctl: Add options '--scan, --scan-open'.
532
533 [CF] Windows: Use also VendorId from IOCTL_STORAGE_QUERY_PROPERTY.
534
535 [CF] smartd: Change defaults of '-C' and '-U' directives to 0 (disabled)
536 if attribute name is changed by '-v 19[78],...' directive.
537
538 [CF] configure.in: Fix include path for MinGW.
539
540 [CF] Move 'posix/reg*' to 'regex/reg*'.
541 Add configure check for regex.
542
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]).
547
548 [CF] Makefile.am: Add os_qnxnto.* to EXTRA_smart*_SOURCES.
549
550 [MS] drivedb.h update:
551 - WD My Passport Essential SE 1TB variant (USB interface)
552
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.
557
558 [CF] drivedb.h update:
559 - WD Caviar Green (Adv. Format) family
560
561 [CF] drivedb.h USB update:
562 - Verbatim External Hard Drive 47519
563
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).
566
567 [CF] drivedb.h updates:
568 - Add raw64 attributes 1, 210-213 to all SSD drives with
569 64-bit attribute format.
570
571 [CF] Support smartd '-l xerror' also for disks which use reserved
572 byte as log index.
573
574 [CF] Fix initialization of values missing in smartd '.state' files.
575
576 [CF] Add smartd directive '-l xerror' to check error count from
577 the Extended Comprehensive SMART Error Log (ticket #34).
578
579 [CF] Fix max number of cciss devices, 128 devices are supported
580 again (ticket #49). Regression was introduced during migration
581 to new interface.
582
583 [CF] Update man pages (include Debian patch
584 60_remove-redhatism.diff and Debian Bug 570892).
585
586 [CF] Add SVN revision number to man pages.
587
588 [CF] Windows: Read default drivedb.h and smartd.conf from exe
589 directory instead of current directory.
590
591 [CF] drivedb.h update:
592 - SAMSUNG SpinPoint M series
593
594 [CF] Replace runtime check of byte ordering by compile time check.
595
596 [CF] drivedb.h USB updates:
597 - ALi M5621 (unsupported)
598 - LaCie with JMicron (ticket #69)
599 - JMicron (0x2352)
600 - Enable 48-bit commands for Hitachi drive
601
602 [CF] Read USB ID info from drivedb.h (ticket #44).
603
604 [CF] Create branch RELEASE_5_39_DRIVEDB with last drivedb.h file
605 compatible with smartmontools 5.39[.1].
606
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
614
615 [CF] Move 'posix/getopt*' to 'getopt/getopt*'. Can be used for
616 platforms with regex() but without getopt_long() (QNX, ticket #1).
617
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).
621
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).
625
626 [CF] USB ID updates:
627 - A-DATA SH93
628 - Hitachi/SimpleTech 1TB
629
630 [CF] configure.in: Print configuration summary.
631
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).
635
636 [CF] USB ID updates:
637 - LaCie Desktop Hard Drive
638 - Prolific PL2507 (unsupported)
639 - Seagate FreeAgent Go FW
640 - WD My Book Essential
641
642 [CF] Linux: Add '/dev/sd[a-c][a-z]' to smartd DEVICESCAN.
643
644 [CF] smartd: Other config entries may precede DEVICESCAN.
645 Very first step towards a more flexible device scanning.
646
647 [CF] Windows: Use '.win64' in names of 64-bit binary packages.
648 Use correct 'strip' program when cross-compiling.
649
650 [CF] Add update script to make targets 'dist' and 'clean',
651 set +x permission, update svn:ignore.
652
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.
656
657 [MS] drivedb.h updates:
658 - Seagate Medalist 1720
659 - SuperTalent UltraDrive GX SSD
660 - Intel X25-M SSD
661
662 [CF] Makefile.am: Fix unix2dos and makensis parameters to allow
663 to build the Windows installer on Linux also.
664
665 [CF] Makefile.am: Use a separate build rule for each man page to
666 avoid compatibility problems with BSD make.
667
668 [AS] drivedb.h updates:
669 - Fujitsu MHZ2 BK series
670
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
677
678 [AS] FreeBSD: disable 48-bit commands in the ata_pass_through interface,
679 there is no 48-bit support in the IOCATAREQUEST ioctl.
680
681 [CF] smartctl: Add option '-l scterc[,READTIME,WRITETIME]' to get/set
682 the SCT Error Recovery Control time limit (ticket #50).
683
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.
688
689 [CF] Fix SCT temperature table commands on big endian CPUs.
690
691 [MS] drivedb.h updates:
692 - more Seagate Momentus 5400.6 drives
693 - HP 500GB drive MM0500EANCR
694
695 [CF] Windows: Cleanup I/O-control declarations, rely on include
696 files if possible.
697
698 [CF] Windows: Compile fixes for 64-bit exe (EXPERIMENTAL).
699 Update build info in INSTALL file.
700
701 [CF] drivedb.h update:
702 - Patriot Torqx SSD (patch provided by Gianpaolo Cugola)
703
704 [CF] Makefile.am: Avoid duplication of man page filter script.
705
706 [CF] smartd: Add option '-C, --capabilities' if libcap-ng is available
707 (ticket #45).
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]'.
710
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).
714
715 [CF] Bugfix release 5.39.1.
716
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.
720
721 [CF] Windows: Fix parsing of 'tw_cli' output for 3ware 9.5.x release
722 (ticket #43).
723
724 [CF] Add USB IDs of Seagate FreeAgent Go, Seagate Expansion Portable
725 and WD My Passport (IDE).
726
727 [CF] autogen.sh: Fix version regexp, allow automake 1.11.1.
728
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.
734
735 [CF] Add USB ID of Seagate FreeAgent Desktop.
736
737 [CF] smartd: Fix directive '-l selftest' (ticket #36)
738 Regression was introduced with r2773.
739
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.
743
744 [CF] Windows: Print warning if admin rights are missing.
745
746 [CF] Replace some 'EXIT(status)' calls by 'return status'.
747 Remove unnecessary casts from 'nonempty()' calls.
748
749 [CF] Windows: Set ata_device::ata_identify_is_cached() return value
750 according to I/O-control actually used.
751
752 [CF] Print ATA output registers if SMART status command returns bogus
753 register values.
754
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
757 output.
758 smartctl: Handle missing info about ATA version in '-i' output.
759
760 [CF] smartctl: Don't print log directory if '-q errorsonly' is specified.
761
762 [CF] smartctl: Fix option '-q, --quietmode' (ticket #11).
763 Regression was introduced with r2807.
764
765 [CF] drivedb.h update:
766 - SAMSUNG SpinPoint F2 EG series
767
768 [CF] Add USB ID of Samsung Story Station.
769
770 [MS] drivedb.h update:
771 - Hitachi Travelstar 5K320: some EA models miss last 2 "0"
772 in model string
773 - Seagate Barracuda LP series
774
775 [CF] drivedb.h update:
776 - Crucial M225 SSD
777
778 [CF] drivedb.h updates:
779 - WDC Scorpio Blue Serial ATA (640GB, 750GB, 1TB)
780 - WDC My Passport Essential SE
781
782 [CF] Add USB ID of Toshiba PX1270E-1G16.
783
784 [CF] Happy New Year! Update copyright year in version info.
785
786 [CF] drivedb.h update:
787 - SAMSUNG SpinPoint M40/60/80 series
788
789 [CF] Add direct access to 48-bit LBA register in 'ata_in/out_regs_48bit'.
790
791 [DL] drivedb.h updates:
792 - WDC My Passport Essential/USB (capacity 250GB, 400GB & 500GB)
793
794 [DL] -r ataioctl,2: print text representation of data also (ticket #32)
795
796 [DL] FreeBSD: freebsd_ata_device::ata_pass_through implemented (part of ticket #18)
797
798 [CF] drivedb.h updates:
799 - Hitachi Travelstar 7K320 (ticket #28)
800 - Hitachi Travelstar 7K500
801
802 [DL] -l gpllog,...: print text representation of data also (ticket #30)
803
804 [DL] FreeBSD: check reallocf() result for failures
805
806 [AS] FreeBSD: fixing crash on kFreeBSD (#29), patch provided by Petr Salinger
807
808 [CF] Makefile.am: 'make check' now tests the syntax of drivedb.h.
809
810 [CF] Cygwin: Open drive database files in text mode.
811
812 [CF] Cygwin: Check for 'syslogd' and 'syslog-ng' in initd script.
813
814 [CF] Windows: Disable Win9x/ME specific code if no longer supported
815 by compiler.
816
817 [CF] Add '-v ID,FORMAT:BYTEORDER[,NAME]' to specify byte order
818 of attribute raw value.
819
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.
825
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'.
830
831 [CF] do_release: Add support to release from a dir below 'branches'.
832 Accept partial checkouts.
833
834 smartmontools 5.39.1 2010-01-28
835
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.
839
840 [CF] Windows: Fix parsing of 'tw_cli' output for 3ware 9.5.x release
841 (ticket #43).
842
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.
848
849 [CF] smartd: Fix directive '-l selftest' (ticket #36)
850 Regression was introduced with r2773.
851
852 [CF] smartctl: Don't print log directory if '-q errorsonly' is specified.
853
854 [CF] smartctl: Fix option '-q, --quietmode' (ticket #11).
855 Regression was introduced with r2807.
856
857 [CF] Happy New Year! Update copyright year in version info.
858
859 [DL] FreeBSD: check reallocf() result for failures
860
861 [AS] FreeBSD: fixing crash on kFreeBSD (#29), patch provided by Petr Salinger
862
863 [CF] do_release: Add support to release from a dir below 'branches'.
864 Accept partial checkouts.
865
866 smartmontools 5.39 2009-12-09
867
868 [CF] do_release: Commit CHANGELOG and NEWS also. Allow to review changes.
869
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
873
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.
878
879 [CF] Avoid truncation of configure arguments in '-V' output.
880
881 [AS] Added USB IDs of WD Passport USB Portable
882
883 [CF] Linux: Fix segfault in 3ware interface (ticket #22).
884
885 [MS] knowndrives.cpp updates:
886 - Hitachi Deskstar 7K2000
887 - Seagate Momentus 7200 FDE.2 series
888
889 [CF] Add USB ID of WD My Passport 070A.
890 knowndrives.cpp update:
891 - WD My Passport hard drive (USB interface)
892
893 [CF] smartd: Write 'worst' attribute value to '.state' file also.
894 This allows to use state persistence with 'raw64' attributes.
895
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.
899
900 [CF] Add USB IDs of Iomega LPHD080-0, 2 Genesys Logic bridges and
901 Initio 316000.
902
903 [MS] knowndrives.cpp update: Hitachi Travelstar 5K320 series
904
905 [CF] smartctl: Ignore normalized attribute value and threshold
906 if 'raw64' or 'hex64' format is selected.
907
908 [CF] knowndrives.cpp updates:
909 - add OCZ-Vertex raw64 attributes
910 - add OCZ-Agility
911 Thanks to Marcin Marszalek for the patch.
912
913 [CF] Add '-v ID,hex*' print formats. Fix '-v N,FORMAT,NAME' parsing.
914
915 [CF] Add '-v ID,raw64[,...]' print format based on a patch provided
916 by Marcin Marszalek.
917
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.
921
922 [CF] Fix auto_ptr initialization in linux_scsi_device::autodetect_open().
923
924 [CF] Remove duplicate function smart_device_list::add().
925 Replace calls with push_back().
926
927 [MS] attribute update:
928 trim attribute names to 23 chars
929
930 [CF] Add smart pointer class template to manage device object pointers.
931 Remove related 'delete' calls and 'try/catch' blocks.
932
933 [CF] do_release: Replace generation of '*.asc' by '*.md5' and '*.sha1'.
934
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
939
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)
944
945 [CF] Update Windows and ./configure info in INSTALL file.
946
947 [CF] Update 'do_release' script for SVN.
948
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
953 - Intel X25-E SSD
954
955 [CF] knowndrives.cpp updates:
956 - New Seagate 7200.11 firmware version
957 - Update IBM link
958
959 [CF] smartctl: Use printf() instead of pout() for exception error
960 messages to avoid access to bogus 'con->dont_print'.
961
962 [CF] smartd: Add missing help texts for '-A', '-B' and '-s'.
963
964 [CF] Add missing check for log page 0x11 support to smartctl
965 '-l sataphy' option.
966
967 [CF] Add USB ID of Freecom Hard Drive XS.
968
969 [AS] Linux: Autodetect DELL PERC and MegaRAID controllers.
970 Hiding debug messages coming from megaraid code.
971
972 [AS] Linux: Fixed SATA drives support on megaraid device (see ticket #15).
973
974 [AS] FreeBSD: Removed all old detection code, moving everything to
975 the objects. Now we are using CAM/ATA enumerators to guess device
976 type.
977
978 [AS] FreeBSD: Added autodetection for the ada disks (untested).
979 Code for USB device detection refactored.
980
981 [AS] FreeBSD: cam_get_umassno rewritten using XPT_PATH_INQ
982
983 [AS] FreeBSD: do not open/close cam device on every request for SCSI
984 disks. Use com->camdev both for SCSI and ATAPICAM.
985
986 [AS] FreeBSD: added support for the ada disks, based on agapon patch
987
988 [CF] Add names for attributes 184 and 188, see ticket #17.
989
990 [CF] configure.in: Change configure date syntax.
991 Add message to '-mno-cygwin' option check.
992
993 [GK] Add names for some attributes used in MLC flash drives:
994 175, 176, 177, 181, 182
995
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.
999
1000 [CF] Increase SCSI_TIMEOUT_DEFAULT from 6 to 20 seconds to avoid
1001 timeouts when a disk spins up from standby mode.
1002
1003 [CF] Add USB ID of AcomData 504 (OnSpec USB bridge).
1004
1005 [AS] Correcting manual pages (FreeBSD related)
1006
1007 [AS] FreeBSD: fix FTBFS on GNU/kFreeBSD (reported by derevko).
1008
1009 [AS] FreeBSD: Add USB autodetection to smartd DEVICESCAN directive.
1010
1011 [CF] Add USB ID of Myson Century CS8818, add some comments.
1012
1013 [CF] Return info strings from 'smart_interface::get_*()' functions as
1014 'std::string' instead of 'const char *'. Static buffers are no
1015 longer needed.
1016
1017 [SZ] FreeBSD: Fix highpoint type detection and ioctl failed for parameter
1018 error.
1019
1020 [CF] Linux: Add USB autodetection to smartd DEVICESCAN directive.
1021
1022 [CF] Add USB IDs of Maxtor Basics Desktop and ISD-300A1.
1023
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
1026 FreeBSD.
1027
1028 [CF] Add missing help text for '-d usb*' options.
1029
1030 [CF] Linux: Dereference '/dev/disk/by-*/*' symlink before device type
1031 autodetection.
1032
1033 [AS] FreeBSD: Support SATA disks attached to a SAS controller (based on
1034 patch from freebsd ports tree).
1035
1036 [AS] FreeBSD: Added FreeBSD 8 libusb2 device autodetecion, new
1037 configure check for -lusb.
1038
1039 [AS] FreeBSD: Added USB device autodetection and fixed -d switch behavior.
1040
1041 [AS] FreeBSD: Migrate os_freebsd.cpp to new interface.
1042
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.
1046
1047 [CF] Windows installer: Add 'DisplayVersion' to uninstall registry key.
1048
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
1056
1057 [CF] Add USB ID of Verbatim FW/USB160.
1058
1059 [CF] Fix data type bug in checksum test for multi sector logs.
1060
1061 [CF] Add USB ID of Seagate FreeAgent Go.
1062
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.
1068
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.
1072
1073 [MS] smartd.cpp: Adjust umask
1074
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.
1078
1079 [CF] Remove 'scsiata.h'. The 'scsiata.cpp' module now implements
1080 parts of 'dev_interface.h'.
1081
1082 [CF] smartctl: Don't report an attribute as failed if threshold is 0.
1083
1084 [CF] Print only one warning on checksum errors in multi sector log.
1085 Remove casts from calls of checksum().
1086
1087 [DG] minor changes to SCSI background scan strings
1088
1089 [MS] knowndrives.cpp updates:
1090 - Fujitsu MHW2 BJ series
1091 - WD Caviar Black family
1092
1093 [MS] Makefile.am: Make creation of svnversion.h independent of
1094 locale settings
1095
1096 [CF] Require to specify PORT parameter of '-d usbjmicron' if two disks
1097 are connected.
1098
1099 [CF] smartctl: Limit default number of printed entries for
1100 '-l xerror' to 8, for '-l xselftest' to 25.
1101
1102 [CF] smartctl: Fix number of entries in '-l xselftest' output.
1103
1104 [CF] Add USB IDs of a SunplusIT bridge, three WD drives, and an
1105 unsupported Iomega drive.
1106
1107 [CF] Makefile.am: Use 'svnversion' instead of 'svn info' to get
1108 the revision number. This also checks for mixed and modified
1109 working copies.
1110
1111 [CF] Remove CVS Id strings from '-V, --version' output.
1112
1113 [CF] Update CONTRIBUTORS section on man pages.
1114
1115 [CF] Makefile.am: 'make maintainer-clean' now removes also files
1116 generated by './autogen.sh'.
1117
1118 [CF] Invalidate 'do_release' script, it needs some rework for SVN.
1119
1120 [CF] Update documentation files for SVN.
1121
1122 [CF] Rename trunk/sm5 to trunk/smartmontools.
1123
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.
1127
1128 [CF] Makefile.am: Modify generation of cvsversion.h for SVN.
1129
1130 [GP] Convert CVS repository to SVN.
1131
1132 [CF] smartd: Fix size of monitor flag array from previous commit.
1133
1134 [CF] Makefile.am: Add missing 'megaraid.h'.
1135
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.
1139
1140 [CF] Replace global 'con->...' variables used for selective self-tests
1141 by local variables.
1142
1143 [GK] Add names for some attributes used in Samsung MLC drives:
1144 178-180 & 183
1145
1146 [CF] smartctl: Add option '-x, --xall' to print all info including
1147 extended SMART logs and non-SMART info.
1148
1149 [CF] smartctl: Add '-l xerror,error' and '-l xselftest,selftest' to print
1150 the old logs if the extended logs are not supported.
1151
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
1156
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.
1161
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
1164 again.
1165
1166 [DG] SCSI (SAS): implement '-l sasphy,reset' (reset part was stub
1167 prior to this)
1168
1169 [DG] add 'ATA, SCSI command sets and SAT' section to smartctl.8 .
1170 [SCSI] add 'number of background medium scans' field
1171
1172 [DG] SCSI (SAS): add '-l sasphy' and '-l sasphy,reset' into smartctl
1173 to output SAS device phy information (from the Protocol specific
1174 log page)
1175
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.
1179
1180 [CF] Remove '#define TRUE/FALSE', use 'bool' and 'true/false'.
1181
1182 [CF] Add 'options' parameter to SCSI printing routine. Move global
1183 'con->...' smartctl variables to 'options' parameters of
1184 printing routines.
1185
1186 [CF] Windows: Remove outdated entry about undocumented system calls
1187 from WARNINGS file.
1188
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.
1195
1196 [CF] autogen.sh: automake 1.10.2 and 1.11 are OK.
1197
1198 [CF] Fix syntax error in prototype of 'safe_snprintf()'.
1199 Thanks to Alexander Shaduri for bug report and patch.
1200
1201 [DG] SCSI: Fetch load-unload cycle counts.
1202
1203 [CF] Windows: Add Win-7 and Win2008 to get_os_version_str().
1204
1205 [CF] smartd: Fix '-M test' directive in conjunction with '-s' option.
1206 Thanks to Matthias Becher for the problem report.
1207
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
1214
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
1219 '--enable-drivedb'.
1220
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.
1224
1225 [CF] Replace global 'con->...' variables used for drive presets
1226 by local variables.
1227
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.
1234
1235 [CF] Add '+' modifier to smartd '-C' and '-U' directives.
1236 If specified, a warning is only printed if the raw value
1237 increases.
1238
1239 [CF] Add smartctl option '-l xselftest[,NUM]' to print
1240 ATA SMART Extended Self-test Log (GP Log 0x07).
1241
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.
1246
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
1250 stdio redirected.
1251 Used by GSmartControl (http://gsmartcontrol.berlios.de/).
1252
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.
1259
1260 [CF] Add smartctl '-d test' option to print the result of the
1261 device type detection.
1262
1263 [CF] Enhance USB device type autodetection, use bcdDevice if known.
1264 Add Cypress CY7C68300B/C (AT2LP) to the table.
1265
1266 [CF] Linux: Add experimental USB device type autodetection.
1267 Uses USB ID info found through symlink "/sys/block/sdX/device".
1268
1269 [CF] Windows: Add experimental USB device type autodetection.
1270 Uses WMI command line tool 'wmic' to query USB ID.
1271
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.
1276
1277 [CF] smartd: Log changes of self-test execution status if
1278 '-l selftest'is specified.
1279
1280 [CF] knowndrives.cpp update:
1281 Samsung SpinPoint F1 RE series
1282
1283 [MS] knowndrives.cpp update:
1284 Seagate Momentus 5400.6 series
1285
1286 [CF] Add forgotten SCSI sense checks to class usbjmicron_device.
1287
1288 [CF] Add new SMART STATUS check command for JMicron USB bridges.
1289 Should support also older chip versions and prevents a race
1290 condition.
1291
1292 [CF] Windows: Fix win_scsi_device::scsi_pass_through() for single byte
1293 data transfers. Required for JMicron SMART STATUS check.
1294
1295 [MS] knowndrives.cpp update:
1296 Add Hitachi Travelstar C4K60 family (1.8" slim drives)
1297
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.
1302
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.
1307
1308 [MS] knowndrives.cpp update:
1309 Add WD Caviar Green 8MB and 32MB cache variants, stretch to 2TB.
1310
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.
1314
1315 [CF] Windows: Add a workaround for missing multi-sector support
1316 for ATA READ LOG EXT command.
1317
1318 [CF] Fix Extended Comprehensive Error Log index base.
1319 Add workaround for Samsung disks using reserved byte as index.
1320
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.
1324
1325 [CF] Add smartctl option '-l xerror[,NUM]' to print
1326 ATA SMART Extended Comprehensive Error Log (GP Log 0x03).
1327
1328 [MS] knowndrives.cpp update:
1329 Added remaining WD Scorpio Blue SATA II drives
1330
1331 [CF] Minor fix to remove ID 0 from 'smartctl -l sataphy ...' output.
1332
1333 [CF] knowndrives.cpp updates: Add warnings about possible firmware
1334 bugs to Seagate 7200.11, ES.2 and DiamondMax 22 entries.
1335
1336 [CF] knowndrives.cpp updates: Add Samsung SpinPoint F1 series.
1337
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').
1341
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
1346
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.
1350
1351 [SZ] os_freebsd.cpp, os_freebsd.h updates:
1352 Support HighPoint RocketRAID controller under FreeBSD
1353
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
1358
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.
1365
1366 [MS] knowndrives.cpp updates:
1367 - Added Apple SSD
1368 - Added Seagate U8 family
1369
1370 [DL] os_freebsd.cpp:
1371 Added support for CHECK_POWER_MODE and WRITE_LOG commands
1372
1373 [MS] knowndrives.cpp update:
1374 There seem to exist WD Raptors with SATA II interface, add them.
1375
1376 [MS] knowndrives.cpp updates:
1377 - Added remaining Seagate Barracuda 7200.11 drives
1378 - Added HP 1TB SATA disk
1379
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
1390
1391 [CF] Add smartd '-n powermode,N' directive parameter to limit the
1392 number of skipped checks. Thanks to Michal Hlavinka for the patch.
1393
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
1399
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
1405
1406 [MS] Fix trivial compile error with "-pedantic"
1407
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].
1412
1413 [CF] smartd DEVICESCAN: Fix autodetection of SAT devices.
1414 Thanks to Stanislav Brabec for bug report and testing.
1415
1416 [MS] knowndrives.cpp update:
1417 Convert file to full string regex: remove "^$" from pattern
1418
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
1425
1426 [CF] Add configure options '--enable-savestates' and
1427 '--with-savestates=PREFIX' to enable smartd persistence
1428 ('-s' option) by default.
1429
1430 [CF] smartd: Add '-s ([cnr]/../.././..)' directive to run scheduled
1431 selective self-tests. Useful to perform full tests of large disks
1432 not running 24x7.
1433
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.
1440
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
1448
1449 [CF] Use full string match for regexp in drive database.
1450
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.
1454
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
1458 database array.
1459
1460 [CF] New syntax for drive database: Specify presets by strings
1461 with '-v' and '-F' options. Use empty strings instead of NULL.
1462
1463 [JPH] Added Linux support for viewing disks behind MegaRAID
1464 controllers
1465
1466 [CF] smartd: Improve min/max temperature recording in conjunction
1467 with '-s' option.
1468
1469 [CF] Add a wrapper class for FILE *.
1470
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.
1476
1477 [CF] Remove casts from 'format_ata_string()' calls.
1478
1479 [CF] Minor changes to fix errors and warnings from Cygwin gcc 4.3.0.
1480
1481 [CF] smartd: Remove SCSITIMEOUT code. According to smartd.h 1.54 CVS log
1482 from 2003-10-27, it did never work.
1483
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.
1487
1488 [CF] Move smartd local declarations from smartd.h and utility.h to
1489 smartd.cpp. Remove smartd.h.
1490
1491 [CF] Fixed extra '\n' in "Offline data collection status" output.
1492 Thanks to Alexander Shaduri for the patch.
1493
1494 [CF] smartd: Separate device configuration data from device state data.
1495 Use references instead of pointers for configuration and state data.
1496
1497 [CF] Add const-correctness and static to ATA support functions.
1498
1499 [CF] Add a wrapper class for regex.
1500
1501 [CF] Simplify 'create_vendor_attribute_arg_list()'.
1502
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.
1507
1508 [CF] Linux: Cleanup device scan, remove name list, create objects directly.
1509
1510 [CF] Linux: Cleanup smart_device::open(), type strings are no longer used.
1511
1512 [CF] Remove CONTROLLER_* defines and variables unless old interface
1513 is still in use.
1514
1515 [CF] Linux: Migrate 3ware interface to 'ata_pass_through()'.
1516 Multi-sector support is not complete yet. 48-bit commands
1517 possibly work.
1518 WARNING: Not tested, please review code before first test!
1519
1520 [CF] Linux: Migrate os_linux.cpp to new interface.
1521
1522 [CF] Add direct access to 16-bit registers in 'ata_in/out_regs_48bit'.
1523
1524 [CF] Add 'ata_cmd_is_ok()' parameter check,
1525 remove 'ata_pass_through_28/48bit()' functions.
1526
1527 [CF] Add CVS date/time from cvsversion.h to man pages also.
1528
1529 [CF] Add configure option '--with-os-deps='os_module.o ...' to specify
1530 alternate OS interface modules. Useful for testing during migration.
1531
1532 [CF] Remove declarations of 'optarg', 'optind', ..., include <unistd.h>
1533 instead. This fixes 'auto-importing' linker warnings on Cygwin.
1534
1535 [CF] Add '-l sataphy[,reset]' to print SATA Phy Event Counters.
1536
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.
1539
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.
1543
1544 [CF] Windows: Add full ATA pass through support including 48-bit commands.
1545
1546 [CF] Windows: Migrate os_win32.cpp to new interface.
1547
1548 [CF] SAT: Add full ATA pass through support including 48-bit commands.
1549
1550 [MS] knowndrives.cpp update
1551 - Added FUJITSU MHZ2250BS G2 and family
1552
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)
1565
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
1586
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.
1590
1591 [CF] Add missing 'const' and other minor fixes to prevent gcc warnings.
1592
1593 [OB] Added information message about supported Areca firmware versions.
1594 It's displayed in case the ATA device identification fails.
1595
1596 [CF] Add configuration file for Doxygen.
1597
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.
1606
1607 [BA] Updated smartd and smartctl and smartd.conf man-page documentation
1608 to reflect support for Areca SATA RAID controller cards.
1609
1610 [OB] Added support for Areca controllers to smartd. Extensive tests
1611 as well as documentation are still pending however.
1612
1613 [OB] Implemented device locking for Areca controllers in smartctl
1614
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.
1619
1620 [MC] usbcypress autodetection
1621
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!
1627
1628 [CF] smartd: Fix too small name buffer for 3ware with >100 devices.
1629
1630 [JH] now C++ Support for QNX Target
1631 already tested for QNX 6.3.2 on x86 and armle target
1632
1633 [CF] Allow to set BUILD_INFO from make command line.
1634
1635 [CF] Windows: Add MSVC8 support, remove MSVC6 project files.
1636
1637 [MC] Add usbcypress device support for smartd.
1638
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.
1642
1643 [AR] Fix bug in 3ware node creation where nodes would be created
1644 then deleted, then recreated.
1645
1646 [BA] Add missing CCISS cvs version tags to '-V' printouts.
1647
1648 [TS] Linux: Ensure the 3ware device nodes are created with a correct
1649 SELinux security context.
1650
1651 [AR] Add support for up to 128 devices on 3ware controllers.
1652
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
1656 any destructors.
1657
1658 [SS] FreeBSD: plug file descriptor leak in smartd (only happens with
1659 CISS devices). Reported by Vadim Ostranitsyn.
1660
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.
1664
1665 [MC] Add usbcypress device support for smartctl.
1666
1667 [KS] INSTALL on Solaris: updated description to use C++ compiler.
1668
1669 [KS] configure.in on Solaris: added options for Sun's compiler to
1670 suppress trivial warnings.
1671
1672 [KS] configure.in on Solaris: added direction to search suitable
1673 libraries for getaddrinfo().
1674
1675 [TS] smartd on Linux: remove forgotten return from deviceopen();
1676 SCSI device descriptors had the FD_CLOEXEC flag unset.
1677
1678 [CF] Added 'const' to avoid warning on depreciated string constant
1679 to 'char *' conversion.
1680
1681 [CF] autogen.sh: automake 1.10.1 is OK. Updated message texts.
1682
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.
1686
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>.
1692
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
1698 and here
1699 http://people.redhat.com/drepper/userapi-ipv6.html
1700 Thanks to: Tomá Smetana" <tsmetana@redhat.com>.
1701
1702 Smartmontools developers: please check that smartd still LINKS
1703 properly on your systems.
1704
1705 [BA] Fix ugly syntax bug in os_freebsd.cpp. How did this go
1706 undetected for so long??
1707
1708 SMARTMONTOOLS STABLE RELEASE 5.38 2008/03/10
1709
1710 [KS] Solaris/x86: modified configure.in for Sun's compiler.
1711
1712 [BA] smartd.initd.in addition from Erwan Velu <erwan@seanodes.com>
1713
1714 [BA] smartd fixes:
1715
1716 - On Linux, DEVICESCAN now automatically recognizes SATA devices
1717 behind libata, and SATA devices behind the Marvell driver, and
1718 treats them correctly.
1719
1720 - On Linux, a '-d sat' or '-d marvell' is automatically added
1721 if libata or the marvell driver are recognized behind a SCSI
1722 device type
1723
1724 [SS] (Maybe) fix attribute autosave in FreeBSD.
1725
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).
1731
1732 [GG] add kfreebsd gnu support to configure.in
1733
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.
1737
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).
1742
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.
1749
1750 [CF] Drive database: Added several Western Digital Caviar and Scorpio
1751 drives, added Caviar RE EIDE family.
1752
1753 [CF] Drive database: Added Samsung P80 series with *-25 firmware.
1754
1755 [CF] Replaced 'head [-n] -1' by 'sed 1...' in autogen.sh to avoid
1756 portability issues.
1757
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.
1760
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.
1765
1766 [CF] Added ATA-8 revision 4c message text.
1767
1768 [CF] Added compiler.h to cciss_ioctl.h header check to prevent
1769 configure warning.
1770
1771 [SS] DragonFly support added (using os_freebsd code; untested).
1772
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.
1776
1777 [DG] SAT/SCSI: Improve SAT error processing code. Aborted commands from
1778 ATA devices (typically because SMART was disabled) were not being
1779 properly detected.
1780
1781 [GG] smartd: wait for the pid file to show up, return an error if it doesn't
1782
1783 [JH] fix bad return code (get STATUS) for QNX Part
1784
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]
1790
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.
1794
1795 [CF] Windows: Improved ATA/SCSI device type detection and
1796 DEVICESCAN. This also fixes a regression in 3ware DEVICESCAN.
1797
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
1801
1802 [CF] Fixed regression in SMART STATUS command on Win9x/ME.
1803
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.
1808
1809 NOTE1: I have patched the Linux and FreeBSD code but not
1810 modified the Win32 code (it already supports up to 32 disks).
1811
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.
1815
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.
1819
1820 [CF] Windows installer: Added explorer drive menu, CMD window,
1821 UBCD4Win plugin, smartd service update and other minor
1822 improvements.
1823
1824 [CF] Windows: Modified drive letter handling for explorer drive
1825 context menu: try SCSI if type is unknown, allow 'X:\.' syntax.
1826
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.
1830
1831 [CF] smartctl: Added ability to parse '-r ataioctl,2' output from
1832 stdin ('-') and simulate the ATA commands for testing purposes.
1833
1834 [BA] SMART Attributes: added 187, 189, more accurate name for 190.
1835
1836 [CF] Windows: Added drive letters 'X:' as alternate disk device names.
1837
1838 [CF] smartctl: Added '-F swapid' to fix ATA identify string byte
1839 ordering. Added '-q noserial' to suppress serial number output.
1840
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
1844 out.
1845
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.
1850
1851 [CF] Added ATA-8 revision 4, fixed WRITE LOG '-r ioctl' output.
1852
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.
1856
1857 [GG] bit 4 in smartctl's return code might be set even when the dist check
1858 didn't return "DISK OK"
1859
1860 [CF] Drive database: added '-F samsung3' for Samsung P80 firmware
1861 BH100-35.
1862
1863 [SS] Applied patch from Dean Bennett to fix scheduled tests on
1864 Highpoint RAID controllers.
1865
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!
1869
1870 [CF] Added message text for ATA-7 self-test execution status 8
1871 ("... handling damage").
1872
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)
1876
1877 [DG] Solaris: [SCSI] add USCSI_RQENABLE flag to uscsi pass-through so
1878 sense buffer is made available. Expand reporting at this level.
1879
1880 [GK] Darwin: Improve handling of powered-down drives.
1881
1882 [SS] CCISS physical drive enumeration method changed (incompatibly).
1883
1884 [CF] Fixed smartd crash on missing '-s' directive argument.
1885
1886 [SS] Support CCISS on FreeBSD (kernel source is required until FreeBSD PR 109813
1887 is fixed).
1888
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.
1891
1892 [CF] Applied Guido's patch to fix CCISS LUN array bounds check
1893 (openSUSE bug #239956) and remove trailing spaces in
1894 os_linux.cpp.
1895
1896 [CF] Fixed 64-bit compilation issue in SCT status struct.
1897
1898 [DG] SAT/SCSI: make real SCSI disks visible to DEVICESCAN in
1899 smartd again.
1900
1901 [CF] Fixed check of SCT temperature table size.
1902
1903 [CF] Added ATA-8 draft revisions, added SCT status format 3.
1904
1905 [CF] Drive database: added Samsung T166 series.
1906
1907 [CF] ATA: Added ',p' option for '-t scttempint,N' to make
1908 setting persistent.
1909
1910 [CF] ATA: Added '-t scttempint,N' option to set SCT temperature
1911 logging interval.
1912
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.
1916
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
1920 specification.
1921
1922 [CF] Added Min/Max Temperature format used in attribute 190 of
1923 recent Maxtor disks (DiamondMax 20).
1924
1925 [CF] Linux: Added check for <linux/cciss_ioctl.h> to allow build
1926 (without CCISS support) also when this file is missing.
1927
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.
1931
1932 [CF] Added missing const specifiers (undetected by gcc 3.4 and 4.X)
1933 to fix compilation with gcc 2.X.
1934
1935 [CF] Linux: compile fix for SuSE, config.h must be included first.
1936
1937 smartmontools 5.37 Experimental Release
1938
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").
1944
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.
1948
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.
1952
1953 [PW] Drive database: added missing drives from Seagate Momentus 5400.2
1954 family
1955
1956 [BA] Finished Christian's fix (next item below) by removing
1957 LINUX_86_64 hack from configure.in.
1958
1959 [CF] Fixed inclusion of PRI?64 macros from inttypes.h.
1960
1961 [CF] Windows: Added WRITE LOG to support selective self tests.
1962
1963 [CF] Fix selective self test log revision number if '-T permissive'
1964 is specified (Tested with Samsung HD401LJ).
1965
1966 [CF] Windows: Fixed int64 printf format for MinGW runtime.
1967
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
1971 ATA family
1972
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
1978
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.
1982
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.
1988
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?
1992
1993 [BA] Linux s86_64: get rid of some compiler warnings on
1994 x86_64 Linux systems.
1995
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.
1999
2000 [PW] Drive database: added Seagate NL35 SATA family. Thanks to Kai
2001 Harrekilde-Petersen for providing a patch.
2002
2003 [DG] [SCSI, Windows] add SPT interface for NT and later. New device
2004 names are "pd<n>", "sd<l>" and "tape<n>".
2005
2006 [PW] Drive database: added Western Digital Scorpio family, Fujitsu MHV
2007 family, Maxtor MaXLine Pro 500 family, and Maxtor DiamondMax 11
2008 family
2009
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
2013 family
2014
2015 [SB] Added examplescripts/Example4 using powersave-notify.
2016
2017 [SB] More temperature monitoring examples in smartd.conf with DEVICESCAN.
2018
2019 [SB] Minor improvements of SuSE part of init script.
2020
2021 [CF] Drive database: added Samsung P80 series, P120 series, SP8004H
2022 and T series.
2023
2024 [GG] Add CCISS (Compaq Smart Array Controller) support with contributions
2025 from Praveen Chidambaram, Douglas Gilbert, Guido Guenther and Frédéric
2026 BOITEUX
2027
2028 [PW] Drive database: added Hitachi Deskstar T7K250 and Hitachi
2029 Deskstar 7K500 series. Thanks to L. J. Wu for providing a
2030 patch
2031
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
2037
2038 [PW] Drive database: added missing drives from Western Digital Caviar
2039 SE (Serial ATA) and WD Raptor families
2040
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.
2046
2047 [SZ] smartd: Support HighPoint RocketRAID controller under GNU/linux
2048
2049 [DG] [SCSI] First cut for '-l background' to show background scan
2050 results log
2051
2052 [SZ] smartctl: Support HighPoint RocketRAID controller under GNU/linux
2053
2054 [KS] C++ compile fixes for Solaris with a few cleanups.
2055
2056 [BA] C++ compile fixes for Darwin (thanks to CF)
2057
2058 [CF] Removed old *.c files (now in CVS Attic).
2059
2060 [CF] Added changes for C++ to platform independent and Windows
2061 related files.
2062
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.
2066
2067 [CF] smartctl: Added -n option to skip checks when disk is in
2068 low-power mode.
2069
2070 [CF] Windows: Added alternate system call for power state check
2071 because the PASS THROUGH calls may spin up the disk.
2072
2073 [CF] smartd: Modified power state logging to report state changes
2074 instead of standby condition.
2075
2076 [CF] smartd: Ignore -n directive on scheduled self tests.
2077
2078 [DG] [SCSI] Make start stop cycle counter log page decoding
2079 more robust
2080
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'.
2084
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.
2088
2089 [SS] NetBSD: Deliver strings from ata_identify_device properly
2090 on little- and big-endian platforms.
2091
2092 [BA] Added published ANSI ATA-7 spec to list of recognized ATA
2093 versions.
2094
2095 [BA] Code janitor: added missing header strings for '-V' option.
2096
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.
2102
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.
2107
2108 [CF] Windows: Added script and make targets to create installer
2109 with NSIS (http://nsis.sourceforge.net/)
2110
2111 [CF] Updated hostname and links for new SourceForge CVS service.
2112
2113 [CF] smartd: Added '-W' directive to track temperature changes
2114 and warn if temperature limits are reached.
2115
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]+)
2121
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
2124 patch and testing.
2125
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).
2129
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.
2138
2139 [GK] Darwin: Add support for AHCI drivers found in Intel-based Macs.
2140
2141 smartmontools 5.36 Stable Release
2142
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.
2146
2147 [BA] Update copyright dates to 2006.
2148
2149 [DG] [SCSI] Loosen sanity check on Seagate/Hitachi factory information
2150 log page so it is not skipped on recent Seagate SCSI disks.
2151
2152 [CF] Added command 'smartd -q showtests' to list test schedules.
2153
2154 [CF] Added command 'smartctl -P showall MODEL [FIRMWARE]' to list
2155 database entries for specific drives and firmware.
2156
2157 [PW] Automatically set -v 9,minutes and -v 194,unknown for Maxtor
2158 DiamondMax D540X-4G drives.
2159
2160 [DG] [SCSI] suppress various outputs when data fails sanity checks.
2161 Correct 'last n error events' log page indexing.
2162
2163 [DG] [SCSI] changed smartctl exit status to reflect any problems in
2164 the most recent 20 self test logs [Leandro Santi]
2165
2166 [DG] [SCSI] Fix process return value when scsiGetSmartData() fails
2167 in smartctl [Leandro Santi]
2168
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.
2172
2173 [DG] [SCSI] Mask dpofua bit when changing mode pages. Fix failure
2174 of 'smartctl -l error'.
2175
2176 [EM] Fixed a problem with FreeBSD and 3Ware 'twe' devices
2177
2178 [CF] Fixed a regexp in knowndrives table, added regexp syntax check
2179 via 'smartctl -P showall'.
2180
2181 [CF] Cygwin & Windows: Fixed memory leak in function calling
2182 IOCTL_IDE_PASS_THROUGH. Thanks to Fred Schmidt for the problem
2183 report.
2184
2185 [CF] Cygwin: added cygrunsrv support and commands "install", "remove"
2186 and "status" to smartd.initd.
2187
2188 [SS] Fix runtime problems on big-engian NetBSD platforms (patch provided
2189 by Martin Husemann)
2190
2191 [CF] Cygwin smartd: Open smartd.conf in textmode to allow use of
2192 Windows editors.
2193
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.
2197
2198 [CF] Windows: Added patch to avoid output of non-ascii timezone names.
2199
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.
2203
2204 [DG] Silence gcc 4.0.1 compile warning concerning the difference in
2205 "signedness" in pointer assignments. Changes to SCSI code
2206 and os_linux.c .
2207
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.
2215
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.
2220
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.
2225
2226 [CF] Windows: Fixed unsupported 'smartctl -X' on Win2000/XP by using
2227 IOCTL_IDE_PASS_THROUGH instead.
2228
2229 smartmontools 5.34 Stable Release [NOTE: never officially released]
2230
2231 [CF] Cygwin & Windows smartd: Increased SCSI DEVICESCAN range
2232 from ASPI adapter 0-3 to 0-9. Added diagnostic messages.
2233
2234 [CF] Windows smartd: Added ability to run .bat files via '-M exec'
2235 directive.
2236
2237 [CF] Cygwin smartd: Added FreeConsole() after fork() to avoid hang
2238 of terminated shell console window.
2239
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.
2243
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.
2247
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.
2254
2255 [PW] Added missing Fujitsu MHTxxxxAT and Seagate Barracuda 7200.7 drives
2256 to knowndrives table.
2257
2258 [PW] Added QUANTUM FIREBALLP LM10.2 to knowndrives table. Thanks to
2259 Mike Fleetwood for submitting the patch.
2260
2261 [KS] Solaris/SPARC: fixed not to disable automatic offline test and
2262 automatic save attributes incorrectly. Thanks to Roy Badami.
2263
2264 [BA] Linux: smartd init script now recognizes 'trustix' distro.
2265
2266 [DG] [SCSI] Medium and hardware errors were slipping through
2267 unreported. Fix linux SCSI sense reporting via SG_IO ioctl.
2268
2269 [DG] [SCSI] Change lba of first failure in selftest output to
2270 decimal (was hex) to conform with ATA output.
2271
2272 [GK] smartd: Detect most self-test failures even if the hour counter
2273 has wrapped.
2274
2275 [BA] smartctl: list 'marvell' as option if user give invalid
2276 -d argument
2277
2278 [CF] Windows: fixed SCSI timeout handling to allow long timeouts
2279 for selftests.
2280
2281 [CF] Fixed buffer overflow issues in printone() and safe_vsnprintf()
2282 which results in crash on -V option (at least on Windows).
2283
2284 [DG] [SCSI] Add explicit timeouts to INQUIRY and REQUEST SENSE (that
2285 were missed in an earlier patch). Could have impacted freebsd.
2286
2287 [DG] When linux detects a sata_via_libata disk suggest that user try
2288 '-d ata' (rather then '-d libata). Anticipate kernel change.
2289
2290 [YD] Added OS/2 and eComStation platform support.
2291
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.
2295
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.
2299
2300 [CF] Added safe_v?snprintf() for platforms using v?snprintf()
2301 with non standard behaviour on overflow (Windows, old Linux)
2302
2303 [CF] smartd: Added message if check power mode spins up disk.
2304
2305 [CF] Windows: Added support for READ_LOG on WinNT4 using undocumented
2306 pseudo SCSI command via IOCTL_SCSI_PASS_THROUGH.
2307
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.
2312
2313 [CF] Windows: Added function get_os_version_str() to show OS flavor in
2314 copyright message.
2315
2316 [CF] Windows: Added function ata_identify_is_cached() to check for outdated
2317 SMART enabled bit in identify data.
2318
2319 [CF] Windows: Added fix to prevent linkage of smartd specific win32 modules
2320 to smartctl.
2321
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.
2325
2326 [PW] Added missing Maxtor DiamondMax 16, Seagate Barracuda ATA IV, and
2327 Western Digital Caviar WDxxxAA/WDxxxBA drives to knowndrives table.
2328
2329 [CF] Windows: Added ATA check power mode for smartd -n directive.
2330
2331 [CF] Windows: Fixed use of new service status flag which causes hang
2332 of smartd service on WinNT4.
2333
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.
2337
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
2343 issues.
2344
2345 [LW] Make os_linux.c/marvell_command_interface() always return 0 on STATUS.
2346 Needed for a disk having bad SMART status.
2347
2348 [CF] smartctl: Added drive family printing.
2349
2350 [CF] autogen.sh: Allow automake 1.9, added message if automake
2351 version is unknown.
2352
2353 [BA] smartctl: use locale-specific separators for printing disk
2354 capacity. Also use AC_CHECK_HEADERS not AC_CHECK_HEADER in
2355 configure.in.
2356
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.
2360
2361 smartmontools 5.33 Experimental Release
2362
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).
2366
2367 [DG] [SCSI] Decode Last n error events log page; decode track following
2368 and positioning errors [Hitachi]
2369
2370 [EM] FreeBSD: another tweak, __packed__ introduced in Version 5.0040
2371
2372 [EM] Cleaner tweak of fixes for FreeBSD 4.x.
2373
2374 [EM] Fix compilation errors under FreeBSD 4.x, as it is still using
2375 and old GCC
2376
2377 [EM] Remove 3ware/FreeBSD specific files and just include pieces we need
2378
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.
2383
2384 [GG] insert correct path to smartd into smartd's init script
2385
2386 [BA] Changed all default paths in documentation to reflect /usr/local as
2387 default path prefix. This affects on-line man pages, primarily.
2388
2389 [DS] Added support for OpenBSD
2390
2391 [BA] Added another environment variable SMART_FULLMESSAGE set by
2392 the smartd mailing feature, and modified examplescripts/Example1
2393 to illustrate it.
2394
2395 [BA] Fixed potentially misleading messages of the form:
2396 XXX failed: success
2397
2398 [DG] emit warning if SATA disk detected using libata in Linux; then exit
2399
2400 [PW] Added Seagate U10 family, Hitachi Travelstar 7K60, Fujitsu MHR2020AT,
2401 and QUANTUM FIREBALLP AS20.5 to knowndrives table.
2402
2403 [DG] Detect 3ware and Marvell controllers from SCSI INQUIRY vendor string
2404 and suggest usage of appropriate '-d' argument in smartctl.
2405
2406 [LW] Tested the RELEASE_5_33_WITH_MARVELL_SUPPORT branch on
2407 actual Marvell 88SX5041 hardware, with success.
2408 Merged into HEAD.
2409
2410 [BA] Fixed nasty DEVICESCAN bug
2411
2412 [BA] Checked in RELEASE_5_33_WITH_MARVELL_SUPPORT branch with
2413 some Marvell support.
2414
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.
2418
2419 [CF] Added make targets to build formatted man pages (htmlman, txtman),
2420 Windows distribution (dist-win32) and MSVC6 config.h (config-vc6).
2421
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
2425
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.
2431
2432 [GK] Added initscript support for Darwin.
2433
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.
2437
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
2442 reduced somewhat?
2443
2444 [CF] Fixed bug in Windows smartd: Missing close of config file when
2445 configuration is reloaded by smartd daemon.
2446
2447 [CF] Windows smartd: Added mail warning feature using the "Blat"
2448 (http://blat.sourceforge.net/) mailer as a default.
2449
2450 [PW] Added Maxtor DiamondMax Plus 5120 Ultra ATA 33 series and TOSHIBA
2451 MK3017GAP to knowndrives table.
2452
2453 [CF] Added fixes to build smartmontools on old Linux systems
2454 (libc < 6, Kernel 2.0.x).
2455
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
2459
2460 [PW] Added Hitachi Travelstar 5K80 family and Fujitsu MHTxxxxAH family to
2461 knowndrives table.
2462
2463 [EM] Fix up compilation under FreeBSD < 5.x
2464
2465 [PW] Added QUANTUM FIREBALL EX3.2A and missing Western Digital Caviar SE
2466 drives to knowndrives table.
2467
2468 [BA] Modified Hitachi Travelstar 80GN family regexp in drive database.
2469 Thanks to [GK/CF] for problem & solution.
2470
2471 [GK] Added os_darwin.[ch]
2472
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
2478
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.
2482
2483 [RZ] Fixed the DEVICESCAN to do what it was supposed to do - give
2484 error message unless scanning is in progress.
2485
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.
2489
2490 [BA] For ATA devices that support LBA mode, print capacity as part
2491 of smartctl --info
2492
2493 [RZ] Made DEVICESCAN quiet about non-existing devices unless debug
2494 is on.
2495
2496 [DG] treat "unit attention" SCSI warning as try again in some contexts
2497 (test unit ready and mode sense)
2498
2499 [BA] on drives that store max/min rather than min/max, get order
2500 correct in printing temp.
2501
2502 [BA] fixed typo in 'smartctl -h' output. Thanks to Gabor Z. Papp.
2503
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.
2511
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].
2516
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.
2519
2520 [KS] Solaris/x86: fixed system identification problem in configure
2521 script. Thanks to Stuart Swales.
2522
2523 smartmontools 5.32
2524
2525 [BA] Update link to revised/updated IBM Deskstar Firmware
2526
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.
2530
2531 [BA] modified smartd init script to work on whitebox (thanks to
2532 Michael Falzon)
2533
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.
2537
2538 [PW] Added Seagate Medalist 17242, 13032, 10232, 8422, and 4312 to
2539 knowndrives table. Added missing Seagate U Series 5 drives.
2540
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
2544
2545 [PW] Added missing Western Digital Protege drives to knowndrives table.
2546
2547 [PW] Added Maxtor DiamondMax 40 ATA 66 series and DiamondMax 40 VL Ultra
2548 ATA 100 series to knowndrives table.
2549
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
2553 drives.
2554
2555 [PW] Added Fujitsu MPB series and MPG series to knowndrives table. Added
2556 the missing Fujitsu MHSxxxxAT drives.
2557
2558 [KS] Solaris: added workaround for dynamic change of time-zone.
2559
2560 [KS] Solaris: fixed problem that autogen.sh cannot detect absence of
2561 auto* tools.
2562
2563 [BA] smartd: added time-zone bug information to man page.
2564 Reverted CF code for _WIN32 case.
2565
2566 [CF] Cygwin & Windows: Added better error messages on IDE/ATA device
2567 open error.
2568
2569 [BA] added additional Attribute definitions from
2570 http://smart.friko.pl/attributes.php
2571
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.
2575
2576 [DG] SCSI smartmontools documentation updated [2004/5/6]. See:
2577 http://smartmontools.sourceforge.net/smartmontools_scsi.html
2578
2579 [CF] Windows: Fixed reset of TZ=GMT in glibc timezone bug workaround.
2580
2581 smartmontools 5.31
2582
2583 [DG] move SCSI device temperature and start-stop log page output
2584 (smartctl) into --attributes section (was in --info section).
2585
2586 [GG] change default installation location to /usr/local
2587
2588 [CF] Cygwin smartd: Fixed crash on access of SCSI devices after fork().
2589
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.
2593
2594 [PW] Added missing Maxtor DiamondMax 16, DiamondMax D540X-4K, and
2595 DiamondMax Plus 45 Ulta ATA 100 drives to knowndrives table.
2596
2597 [PW] Added ExcelStor J240, Hitachi Travelstar 80GN family, Fujitsu
2598 MHTxxxxAT family, and IBM Deskstar 25GP and 22GXP families to
2599 knowndrives table.
2600
2601 [CF] Cygwin smartd: Added workaround for missing SIGQUIT via keyboard:
2602 To exit smartd in debug mode, type CONTROL-C twice.
2603
2604 [BA] smartctl: printing of the selective self-test log is now
2605 controlled by a new option: -l selective
2606
2607 [BA] Added entries for Samsung firmware versions -25 to -39 based
2608 on latest info about firmware bug fixes.
2609
2610 [PW] Added Seagate U Series X family, Seagate U8 family, and Seagate
2611 Medalist 8641 family to knowndrives table.
2612
2613 [CF] smartd: Added exit values 5/6 for missing/unreadable config file.
2614
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.
2620
2621 [CF] Added option -c FILE, --configfile=FILE to smartd to specify
2622 an alternate configuration FILE or '-' for standard input.
2623
2624 [KS] configure.in now searches for -lnsl and -lsocket for Solaris.
2625
2626 [CF] Win32/native smartd: Added thread to combine several syslog output
2627 lines into one single event log entry.
2628
2629 [CF] Win32 smartd: Added DEVICESCAN for SCSI/ASPI devices.
2630
2631 [GG] Use gethostbyname() the get the DNS domain since getdomainname()
2632 returns the NIS domain when sending mails from smartd.
2633
2634 [GG] smartd.init.in: pass smartd_opts to smartd on startup, read distribution
2635 specific configuration files if found
2636
2637 [SS] smartctl: added NetBSD support for Selective Self-tests.
2638
2639 [BA] smartd.conf example configuration file now has all examples
2640 commented out except for 'DEVICESCAN'.
2641
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.
2645
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.
2653
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.
2657
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.
2661
2662 [BA] Linux: eliminated dependency on kernel tree hdreg.h.
2663
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
2670 start of output.
2671
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".
2675
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.
2679
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
2683 os_*.c
2684
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.
2692
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.
2696
2697 [CF] Fixed un-thread-safe exit signal handler for Win32
2698
2699 [BA] Fixed un-thread-safe exit signal handler pointed out
2700 by CF.
2701
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.
2705
2706 [BA] Man page format change from Werner LEMBERG. " " changed to \&
2707
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().
2711
2712 [CF] Added Win32 version of smartd
2713
2714 [CF] Merged RELEASE_5_26_WIN32_BRANCH
2715
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.
2719
2720 [CF] Moved PrintOut() from utility.c to smart{ctl,d}.c to avoid
2721 syslog() output of smartctl.
2722
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
2726
2727 [EM] Updated os_freebsd.c to handle older versions of FreeBSD in a
2728 more appropriate/obvious fashion.
2729
2730 [EM] Modified autogen.sh as FreeBSD installs automake 1.7 as
2731 'automake17' and NOT 'automake-1.7'
2732
2733 smartmontools 5.30
2734
2735 [PW] Added QUANTUM FIREBALLlct15 30, QUANTUM FIREBALLlct20 40, and
2736 Maxtor 6Y060P0 (DiamondMax Plus 9 60GB) to knowndrives table.
2737
2738 [PW] Added Maxtor MaXLine II family to knowndrives table (thanks to
2739 Brett Russ for submitting the patch).
2740
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.
2745
2746 [BA] Made SuSE section of smartd init script more SuSE 9 compatible.
2747 Thanks to Hans-Peter Jansen.
2748
2749 [CF] Windows smartd: Added IDE/ATA device scan
2750 Added windows device names to smartctl.8.in, smartd.8.in
2751
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.
2756
2757 [BA] Added error decoding for a few more READ and WRITE commands.
2758
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.
2762
2763 [BA] Added Maxtor Diamondmax 250 GB drives to database. Note that
2764 these model numbers are not listed in Maxtor documentation, but
2765 they exist.
2766
2767 [BA] Removed the 'contact developers' phrase from the Samsung disk
2768 warning messages.
2769
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
2773
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.
2777
2778 [CF] Checked in development version of windows code base.
2779
2780 smartmontools 5.29 (note: there was NO 5.28 release)
2781
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.
2785
2786 [BA] make clean now removes man pages (generated from *.in) files as well
2787 as object files.
2788
2789 [EM] Correct copying of sense data in FreeBSD SCSI implementation. Thanks
2790 to Sergey Svishchev for noticing the bug.
2791
2792 [BA] On solaris, wrong warning message if no ATA support. Warning message
2793 concerns 3ware controller, not ATA.
2794
2795 [SS] Added SCSI support for NetBSD.
2796
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
2800 ROM or DVD reader).
2801
2802 [PW] Removed warning for IBM Deskstar 40GV & 75GXP series drives with
2803 A5AA/A6AA firmware. Thanks to Gerald Schnabel.
2804
2805 [PW] Added Toshiba TOS MK3019GAXB SUN30G to knowndrives table
2806
2807 [PW] Added Western Digital Caviar AC12500, AC24300, AC25100, AC36400,
2808 and AC38400 to knowndrives table
2809
2810 [BA] When printing ATA error log, print the LBA at which READ
2811 or WRITE commands failed.
2812
2813 [BA] Changed syntax of error message in smartctl
2814
2815 [BA] Added versioning info (-V options to smartd/smartctl) for
2816 Solaris ATA module.
2817
2818 smartmontools 5.27
2819
2820 [KS] Added ATA/IDE support for Solaris/SPARC (ATA/IDE not yet for
2821 Solaris/x86).
2822
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.
2826
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
2830
2831 [BA] missing 'pragma pack' on ATA IDENTIFY DEVICE structure may have
2832 caused odd or incorrect results on 64-bit machines.
2833
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.
2838
2839 [BA] Improved porting instructions and documentation in os_generic.c
2840
2841 [PW] Add Western Digital Caviar WD136AA and SAMSUNG SP40A2H (RR100-07
2842 firmware) to knowndrives table.
2843
2844 [EM] FreeBSD: remove extra definition of FreeNonZero
2845
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.
2849
2850 [SS] NetBSD port added.
2851
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.
2855
2856 [BA] smartd: added -n Directive, to prevent disk spin-up depending
2857 upon the power mode (SLEEP, STANDBY, or IDLE).
2858
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.
2862
2863 [BA] many warning messages now give the file name AND VERSION
2864
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.)
2870
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.
2874
2875 [BA] Added all missing IBM/Hitachi Deskstar 180GXP models to knowndrives
2876 table.
2877
2878 [PW] Added some missing IBM/Hitachi Deskstar 120GXP models to knowndrives
2879 table.
2880
2881 [PW] Added IBM Travelstar 14GS to knowndrives table.
2882
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).
2886
2887 [PW] Added some missing Fujitsu MPE series drives to knowndrives table.
2888
2889 [PW] Added TOSHIBA MK4019GAX, TOSHIBA MK6409MAV, and QUANTUM
2890 FIREBALLlct15 20 to knowndrives table.
2891
2892 [EM] Fixup example command output for FreeBSD
2893
2894 [PW] Added Maxtor DiamondMax 80 family to knowndrives table.
2895
2896 [EM] Catch up FreeBSD code to switch PROJECTHOME to PACKAGE_HOMEPAGE
2897 macros.
2898
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.
2902
2903 [BA] smartd: Solaris init script modified to accomodate grep that
2904 lacks '-q' quiet option. Also check for running process to kill
2905 on stop.
2906
2907 [PW] Added some missing Seagate Barracuda 7200.7 and 7200.7 Plus drives
2908 to knowndrives table.
2909
2910 [PW] Added Maxtor DiamondMax Plus 60 family and Seagate U Series 5 20413
2911 to knowndrives table.
2912
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.
2917
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)
2922
2923 [BA] smartd man pages: under Solaris, correct section numbers in the
2924 'See also' section.
2925
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.
2929
2930 [BA] smartd: incorporated Debian startup script submitted by user.
2931
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.
2936
2937 [PW] Added QUANTUM FIREBALL CX10.2A and Western Digital Caviar AC23200L
2938 to knowndrives table.
2939
2940 [PW] Added QUANTUM FIREBALLlct20 20 to knowndrives table.
2941
2942 [PW] Added Maxtor DiamondMax Plus D740X family to knowndrives table.
2943
2944 [PW] Added IBM Travelstar 32GH, 30GT, and 20GN family to knowndrives
2945 table.
2946
2947 [BA] Slackware init script modified to search for /etc/slackware-version
2948 rather than /etc/slackware-release.
2949
2950 [PW] Added Seagate Barracuda ATA II family and TOSHIBA MK4019GAXB to
2951 knowndrives table.
2952
2953 [GG] explain howto use autoreconf in autogen.sh
2954
2955 [KS] Makefile.am/configure.in: changed manual page sections for
2956 Solaris.
2957
2958 [BA] smartd: reduced number of scheduled self-test messages if
2959 test already run in current hour.
2960
2961 [PW] Added Maxtor DiamondMax Plus 8 family to knowndrives table.
2962
2963 [BA] linux: check for linux/hdreg.h. If it's there, use it. If
2964 not, provide the necessary definitions ourselves.
2965
2966 [PW] Removed warning for IBM Deskstar 40GV & 75GXP series drives
2967 with TXAOA5AA firmware
2968
2969 [PW] Added IBM Travelstar 25GS, 18GT, and 12GN family to knowndrives
2970 table.
2971
2972 [PW] Added IBM/Hitachi Travelstar 60GH & 40GN family to knowndrives
2973 table.
2974
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.
2978
2979 [BA] smartd: made memory allocation for device lists completely
2980 dynamic (eliminating compile-time maximum length constants).
2981
2982 [PW] Removed warning for SAMSUNG SP0802N with TK100-23 firmware
2983
2984 [PW] Added Seagate Barracuda ATA IV family to knowndrives table.
2985
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
2990 ever be noticed!)
2991
2992 [DG] smartd: added SCSI scheduled self-tests (Background
2993 short or extended).
2994
2995 [BA] smartd: can now run scheduled offline immediate and
2996 self-tests. See man page and -s Directive for details.
2997
2998 [GG] don't include manpages in make-dist-tarball.
2999
3000 [BA] smartctl: on-line examples given with -h are now correct
3001 for solaris and linux, but wrong for freebsd. Ed?
3002
3003 [BA] smartd: man page now explains device scanning for solaris as
3004 well as linux and freebsd.
3005
3006 [BA] smartd/smartctl: man pages now report correct CVS tag release
3007 date, and executables '-V' options reports more build info.
3008
3009 smartmontools 5.26
3010
3011 [BA] Improved user messages that appear from 'make install'
3012
3013 [PW] Removed warning for SAMSUNG SP1213N with firmware TL100-23
3014
3015 [BA] incorporated SuSE init script from user.
3016
3017 [DG] if SCSI device is read only, then open it read only.
3018
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.
3022
3023 [BA] ./configure script now works correctly on SuSE linux boxes
3024
3025 [BA] minor improvements to man pages
3026
3027 [BA] simplified detection of packet (ATAPI, CD) devices.
3028
3029 [BA] init script (redhat, mandrake, yellowdog) now uses correct
3030 strings for translation and is slightly more standard.
3031
3032 [DG] smartctl: output scsi Seagate vendor pages for disks (not tapes)
3033
3034 smartmontools 5.25
3035
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.
3039
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).
3043
3044 [BA] smartd/smartctl: wired in scsiClearControlGLTSD(). Could still
3045 use a corresponding Set function. Left stubs for this purpose.
3046
3047 [DG] scsicmds: added scsiClearControlGLTSD() [still to be wired in]
3048
3049 [BA] smartctl: make SCSI -T options behave the same way as the
3050 ATA ones.
3051
3052 [DG] smartctl: output scsi transport protocol if available
3053
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].
3057
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.
3061
3062 [PW] Added Maxtor DiamondMax VL 30 family to knowndrives table.
3063
3064 [DG] scsi: add warning (when '-l error' active) if Control mode page
3065 GLTSD bit is set (global disable of saving log counters)
3066
3067 [DG] scsi: remember mode sense cmd length. Output trip temperature
3068 from IE lpage (IBM extension) when unavailable from temp lpage.
3069
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.
3073
3074 [DG] smartctl: output Seagate scsi Cache and Factory log pages (if
3075 available) when vendor attributes chosen
3076
3077 [DG] smartd: add scsiCountFailedSelfTests() function.
3078
3079 [DG] Do more sanity checking of scsi log page responses.
3080
3081 [BA] smartd: now warns user if number of self-test errors has
3082 increased for SCSI devices.
3083
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
3086 error changes.
3087
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
3091 locks them up.
3092
3093 [PW] Added Western Digital Caviar family and Caviar SE family to
3094 knowndrives table.
3095
3096 [BA] smartd: added -l daemon (which is the default value if -l
3097 is not used).
3098
3099 [PW] Added Seagate Barracuda ATA V family to knowndrives table.
3100
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.
3105
3106 [PW] Added Seagate Barracuda 7200.7, Western Digital Protege WD400EB,
3107 and Western Digital Caviar AC38400 to knowndrives table.
3108
3109 [BA] smartd: scanning should now also work correctly for
3110 devfs WITHOUT traditional links /dev/hd[a-t] or /dev/sd[a-z].
3111
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.
3116
3117 [PW] Added remaining Maxtor DiamondMax Plus 9 models to knowndrives
3118 table.
3119
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.
3123
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
3127 die right away.
3128
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.
3132
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
3138 disk.
3139
3140 [BA] Clearer error messages when device scanning finds no suitable
3141 devices.
3142
3143 [EM] FreeBSD: Fixup code to allow for proper compilation under
3144 -STABLE branch.
3145
3146 smartmontools 5.23
3147
3148 [BA] smartd: didn't close file descriptors of ATA packet devices
3149 that are scanned. Fixed.
3150
3151 [BA] Added reload/report targets to the smartmontools init script.
3152 reload: reloads config file
3153 report: send SIGUSR1 to check devices now
3154
3155 smartmontools 5.22
3156
3157 [EM] Fix compile issues for FreeBSD < 5-CURRENT.
3158
3159 [PW] Added Fujitsu MHM2200AT to knowndrives table.
3160
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).
3164
3165 [BA] Documented STATUS/ERROR flags added by [PW] below.
3166
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.
3171
3172 [PW] Added TOSHIBA MK4025GAS to knowndrives table.
3173
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
3178 have seen).
3179
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
3184
3185 [CD] solaris port: added SCSI functionality to solaris
3186 stubs.
3187
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
3192 giving up.
3193
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
3197
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
3201 /dev/hda-l.
3202
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.
3207
3208 [GG] add a note about Debian bug #208964 to WARNINGS.
3209
3210 [BA] smartctl: -T verypermissive option broken. Use
3211 -T verpermissive until the next release, please.
3212
3213 [BA] Syntax mods so that code also compiles on Solaris using
3214 Sun Workshop compiler. Need -xmemalign 1i -xCC flags
3215 for cc.
3216
3217 smartmontools 5.21
3218
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
3222 flag).
3223
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().
3229
3230 [EM] Update MAN pages with notes that 3ware drives are NOT supported
3231 under FreeBSD. Cleanup FreeBSD warning message handling.
3232
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.
3236
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
3240
3241 [EM] Minor autoconf update to include -lcam for FreeBSD
3242
3243 [EM] Add conditional logic to allow FreeBSD to compile pre-ATAng.
3244 -- note, not tested
3245 Add some documentation to INSTALL for FreeBSD.
3246
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.
3250
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.
3254
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.
3257
3258 [EM] Code janitor work on os_freebsd.c.
3259
3260 [EM] Added os_freebsd.[hc] code. Additional code janitor
3261 work.
3262
3263 [BA] Code janitor working, moving OS dependent code into
3264 os_linux.[hc].
3265
3266 [GG] conditionally compile os_{freebsd,linux}.o depending on
3267 host architecture
3268
3269 [PW] Print estimated completion time for tests
3270
3271 [BA] Added -F samsung2 flag to correct firmware byte swap.
3272 All samsung drives with *-23 firmware revision string.
3273
3274 smartmontools 5.20
3275
3276 [GG] Fixed broken Makefile.am (zero length smartd.conf.5
3277 was being created), fix broken uninstall/distcheck targets
3278
3279 [FM] Improved Slackware init script added to /etc/smartd.initd
3280
3281 smartmontools 5.19 [NOTE CHANGE OF RELEASE NUMBERING]
3282
3283 [BA] smartctl: added '-T verypermissive' option which is
3284 equivalent to giving '-T permissive' many times.
3285
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.
3290
3291 [BA] smartctl: it's now possible to override the program's
3292 guess of the device type (ATA or SCSI) with -d option.
3293
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
3297 of Packet device.
3298
3299 [BA] smartctl: Can now use permissive option more
3300 than once, to control how far to go before giving up.
3301
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).
3306
3307 [BA] smartctl: If enable auto offline command given, update auto
3308 offline status before printing capabilities.
3309
3310 [GG] Make autotools build the default, remove autotools.diff
3311
3312 [GG] Add auto{conf,make} support, not enabled by default.
3313
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.
3318
3319 smartmontools 5.1-18
3320
3321 [BA] smartd: fixed serious bug - Attributes not monitored unless
3322 user told smartd to ignore at least one of them!
3323
3324 smartmontools 5.1-17
3325
3326 [BA] Default runlevels for smartd changed from 3 and 5 to
3327 2, 3, 4, and 5.
3328
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.
3332
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.
3337
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.
3342
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.
3348
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.
3353
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
3361 is needed.
3362
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
3366 bad code.
3367
3368 [BA] Added SAMSUNG SV0412H to knowndrives table.
3369
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
3374 introduced again.
3375
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.
3381
3382 smartmontools-5.1-16
3383
3384 [BA] smartd - can now monitor ATA drives behind 3ware controllers.
3385
3386 [BA] smartd - changed some FATAL out of memory error messages from
3387 syslog level LOG_INFO to LOG_CRIT.
3388
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.
3394
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
3400 signals to it.
3401
3402 [GG] add Fujitsu MHN2300AT to vendoropts_9_seconds.
3403
3404 [EB] Fujitsu change in knowndrives ... match the whole MPD and
3405 MPE series for vendoropts_9_seconds.
3406
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.
3414
3415 smartmontools-5.1-15
3416
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.
3420
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.
3425
3426 [PW] Added atacmdnames.[hc], which turn command register &
3427 feature register pairs into ATA command names.
3428
3429 [BA] Added conveyance self-test. Some code added for selective
3430 self-tests, but #ifdefed out.
3431
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
3435
3436 [BA] Added Attribute IDs (Fujitsu) 0xCA - 0xCE. This is decimal
3437 202-206. Added -v switches for interpretation of Attributes
3438 192, 198 and 201.
3439
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
3446 - LOG DIRECTORY
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.
3450
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.
3454
3455 smartmontools-5.1-14
3456
3457 [BA] smartctl: added column to -A output to show if Attributes are
3458 updated only during off-line testing or also during normal
3459 operation.
3460
3461 smartmontools-5.1-13
3462
3463 [BA] smartd: attempt to enable/disable automatic offline testing even
3464 if the disk appears not to support it. Now the same logic
3465 as smartctl.
3466
3467 [BA] Added definition of Attribute 201, soft read error rate.
3468
3469 [BA] Added IBM/Hitachi IC35L120AVV207-1 (GXP-180) and corresponding
3470 8MB Cache GXP-120 to drive database.
3471
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.
3475
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.
3480
3481 [BA] Fixed "spelling" of some Attribute names to replace spaces
3482 in names by underscores. (Fixed field width easier for awk
3483 style parsing.)
3484
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
3489
3490 smartmontools-5.1-12
3491
3492 [BA] Added another entry for Samsung drives to knowndrive table.
3493
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.
3497
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.
3501
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).
3505
3506 smartmontools-5.1-11
3507
3508 [EB] Add another Fujitsu disk to knowndrives.c
3509
3510 [GG] match for scsi/ and ide/ in case of devfs to exclude false postives
3511
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.
3516
3517 [BA] Added automatic recognition of /dev/i* (example: /dev/ide/...)
3518 as an ATA device.
3519
3520 [DG] Add "Device type: [disk | tape | medium changer | ...] line to
3521 smartctl -i output for SCSI devices.
3522
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
3525 once on startup.
3526
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.
3533
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]
3541 ATA Version is: 7
3542 ATA Standard is: 9,minutes
3543 ^^^^^^^^^
3544 Missing commas inserted.
3545
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.
3552
3553 [GG/BA] Fixed bug where if SMART ATA error log not supported,
3554 command was tried anyway. Changed some error printing to use
3555 print handlers.
3556
3557 [GG] Makefile modifications to ease packaging
3558
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.
3564
3565 smartmontools-5.1-10
3566
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.
3571
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.
3575
3576 [PW] Modified the -r/--report option (smartctl and smartd) to allow the
3577 user to specify the debug level as a positive integer.
3578
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.
3584
3585 [PW] Added -P/--presets option to smartctl and -P Directive to smartd.
3586
3587 [GG] Introduce different exit codes indicating the type of problem
3588 encountered for smartd.
3589
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.
3594
3595 [DG] Support -l error for SCSI disks (and tapes). Output error counter
3596 log pages.
3597
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.
3601
3602 [BA] Fixed serious bug: the -v options in smartd.conf were all put
3603 together and used together, not drive-by-drive.
3604
3605 [PW] Added knowndrives.h and knowndrives.c. The knowndrives array
3606 supersedes the drivewarnings array.
3607
3608 [GG] add {-p,--pidfile} option to smartd to write a PID file on
3609 startup. Update the manpage accordingly.
3610
3611 [DG] Fix scsi smartd problem detecting SMART support. More cleaning
3612 and fix (and rename) scsiTestUnitReady(). More scsi renaming.
3613
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.
3618
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.
3627
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).
3631
3632 [BA] Changed crit to info in loglevel of smartd complaint to syslog
3633 if DEVICESCAN enabled and device not found.
3634
3635 [BA] Added -v 194,10xCelsius option/Directive. Raw Attribute number
3636 194 is ten times the disk temperature in Celsius.
3637
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.
3643
3644 smartmontools-5.1-9
3645
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.
3649
3650 [BA] smartd/smartctl: added -v 200,writeerrorcount option/Directive
3651 for Fujitsu disks.
3652
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.
3656
3657 [BA] smartd/smartctl: Added -v N,raw8 -v N,raw16 and -v N,raw48
3658 Directives/Options for printing Raw Attributes in different
3659 Formats.
3660
3661 [BA] smartd: Added -r ID and -R ID for reporting/tracking Raw
3662 values of Attributes.
3663
3664 [BA] smartd/smartctl: Changed printing of spin-up-time attribute
3665 raw value to reflect current/average as per IBM standard.
3666
3667 [BA] smartd/smartctl: Added -v 9,seconds option for disks which
3668 use Attribute 9 for power-on lifetime in seconds.
3669
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...
3675
3676 smartmontools-5.1-7
3677
3678 [BA] smartd: Created a subdirectory examplescripts/ of source
3679 directory that contains executable scripts for the -M exec PATH
3680 Directive of smartd.
3681
3682 smartmontools-5.1-5
3683
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
3687 (for example):
3688 DEVICESCAN -m root@example.com
3689 in the /etc/smartd.conf file.
3690
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
3695 scripters.
3696
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
3700 -m option.
3701
3702 [PW] smartd: Modified -M Directive so that it can be given
3703 multiple times. Added -M exec Directive.
3704
3705 smartmontools-5.1-4
3706
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.
3710
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.
3715
3716 smartmontools-5.1-3
3717
3718 [BA] Modified printing format for 9,minutes to read
3719 Xh+Ym not X h + Y m, so that fields are fixed width.
3720
3721 [BA] Added Attribute 240 "head flying hours"
3722
3723 smartmontools-5.1.1
3724
3725 [BA] As requested, local time/date now printed by smartctl -i
3726
3727 [PW] Added "help" argument to -v for smartctl
3728
3729 [PW] Added -D, --showdirectives option to smartd
3730
3731 [DG] add '-l selftest' capability for SCSI devices (update smartctl.8)
3732
3733 [BA] smartd,smartctl: added additional Attribute modification option
3734 -v 220,temp and -v 9,temp.
3735
3736 [PW] Renamed smartd option -X to -d
3737
3738 START OF SMARTMONTOOLS 5.1 series
3739
3740 smartmontools-5.0.50
3741
3742 [PW] Changed smartd.conf Directives -- see man page
3743
3744 [BA/DG] Fixed uncommented comment in smartd.conf
3745
3746 [DG] Correct 'Recommended start stop count' for SCSI devices
3747
3748 [PW] Replaced smartd.conf directive -C with smartd option -i
3749
3750 [PW] Changed options for smartctl -- see man page.
3751
3752 [BA] Use strerror() to generate system call error messages.
3753
3754 [BA] smartd: fflush() all open streams before fork().
3755
3756 [BA] smartctl, smartd simplified internal handling of checksums
3757 for simpler porting and less code.
3758
3759 smartmontools-5.0.49
3760
3761 [PW] smartd --debugmode changed to --debug
3762
3763 [BA] smartd/smartctl added attribute 230 Head Amplitude from
3764 IBM DPTA-353750.
3765
3766 [PW] Added list of proposed new options for smartctl to README.
3767
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
3770 the Makefile.
3771
3772 [BA] smartd: Fixed a couple of error messages done with perror()
3773 to redirect them as needed.
3774
3775 smartmontools-5.0.48
3776
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.
3784
3785 [BA] smartd/smartctl: Added new attribute (200) Multi_Zone_Error_Rate
3786
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.
3791
3792 [PW] smartd: added support for long options. All short options are still
3793 supported; see manpage for available long options.
3794
3795 [BA] smartctl. When raw Attribute value was 2^31 or larger, did
3796 not print correctly.
3797
3798 smartmontools-5.0.46
3799
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.
3804
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:
3808 kill -USR1 <pid>
3809 where <pid> is the process ID number of smartd.
3810
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.
3814
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.
3818
3819 [BA] smartd: increased size of a continued smartd.conf line to
3820 1023 characters.
3821
3822 [BA] Simplified Directive parsers and improved warning/error
3823 messages.
3824
3825 smartmontools-5.0.45
3826
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
3831 smartd -V
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.
3838
3839 [BA] Added testunitnotready to smartctl for symmetry with smartd.
3840
3841 [SB] added Czech descriptions to .spec file
3842 [SB] corrected comment in smartd.conf example
3843
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.
3847
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].
3851
3852 smartmontools-5.0.43
3853
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).
3857
3858 smartmontools-5.0.42
3859
3860 Modified SCSI device check to also send warning emails if
3861 requested in directives file.
3862
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.
3866
3867 smartmontools-5.0.38
3868
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.
3872
3873 Added Italian descriptions to smartmontools.spec file.
3874
3875 Started impementing send-mail-on-error for smartd; not yet enabled.
3876
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.
3880
3881 Removed charset encodings from smartmontools.spec file for non-English
3882 fields.
3883
3884 smartmontools-5.0.32
3885
3886 Added manual page smartd.conf.5 for configuration file.
3887
3888 smartctl: Missing ANSI prototype in failuretest(); fixed.
3889
3890 smartctl: Checksum warnings now printed on stdout, or are silent,
3891 depending upon -q and -Q settings.
3892
3893 smartmontools-5.0.31
3894
3895 Changed Makefile so that the -V option does not reflect file state
3896 before commit!
3897
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.
3901
3902 modified manual page to break options into slightly more logical
3903 categories.
3904
3905 reformatted 'usage' message order to agree with man page ordering
3906
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.
3910
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
3915
3916 smartmontools-5.0.29
3917 Modified .spec file and Makefile to make them more compliant with
3918 the "right" way of doing things.
3919
3920 smartmontools-5.0.26
3921 Fixed typesetting error in man page smartd.8
3922
3923 Removed redundant variable (harmless) from smartd.c
3924
3925 smartmontools-5.0.25
3926
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.
3931
3932 smartmontools-5.0.24
3933
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
3939
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.
3948
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.
3957
3958 smartmontools-5.0.23
3959
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
3969 appropriate.]
3970
3971 smartmontools-5.0.22
3972
3973 smartd, smartctl now warn if they find an attribute whose ID
3974 number does not match between Data and Threshold structures.
3975
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
3979 future.
3980
3981 smartmontools-5.0.21
3982
3983 Eliminated some global variables out of header files and other
3984 minor cleanup of smartd.
3985
3986 smartmontools-5.0.20
3987
3988 Did some revision of the man page for smartd and made the usage
3989 messages for Directives 100% consistent.
3990
3991 smartmontools-5.0-19
3992
3993 smartd: prints warning message when it gets SIGHUP, saying that it
3994 is NOT re-reading the config file.
3995
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
3998 report?]
3999
4000 smartmontools-5.0-18
4001
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.
4008
4009 smartmontools-5.0-17
4010
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
4014 behavior of smartd.
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
4030
4031 cleaned up functions used for printing CVS IDs. Now use string
4032 library, as it should be.
4033
4034 modified length of device name string in smartd internal structure
4035 to accomodate max length device name strings
4036
4037 removed un-implemented (-e = Email notification) option from
4038 command line arg list. We'll put it back on when implemeneted.
4039
4040 smartd now logs serious (fatal) conditions in its operation at
4041 loglevel LOG_CRIT rather than LOG_INFO before exiting with error.
4042
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.
4051
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.
4055
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.
4058
4059 smartmontools-5.0-16
4060
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.
4064
4065 smartd: close file descriptors of SCSI device if not SMART capable
4066 Closes ALL file descriptors after forking to daemon.
4067
4068 added new temperature attribute (231, temperature)
4069
4070 smartd: now open ATA disks using O_RDONLY
4071
4072 smartmontools-5.0-11
4073
4074 smartd now prints the name of a failed or changed attribute
4075 into logfile, not just ID number
4076
4077 Changed name of -p (print version) option to -V
4078
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
4084 difficulty.
4085
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
4094 smartctl.
4095
4096 smartctl now returns sensible values (bitmask). See smartctl.h
4097 for the values, and the man page for documentation.
4098
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.
4104
4105 Modified function that prints vendor attributes to say if the
4106 attribute has currently failed or has ever failed.
4107
4108 -p option now prints out license info and CVS strings for all
4109 modules in the code, nicely formatted.
4110
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.
4122
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
4125 ID. This is fixed.
4126
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?)
4130
4131 fixed possible error in how to determine ATA standard support
4132 for devices with no ATA minor revision number.
4133
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.
4136
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()
4142 simplified.
4143
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.
4147
4148 Modified Makefile to automatically tag CVS archive on issuance of
4149 a release
4150
4151 Modified drive detection so minor device ID code showing ATA-3 rev
4152 0 (no SMART) is known to not be SMART capable.
4153
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.
4157
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.
4162
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,
4170 apparently!)
4171
4172 Function ataSmartSupport now looks at correct bits in drive
4173 identity structure to verify first that these bits are valid,
4174 before using them.
4175
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.
4179
4180 Function ataDoesSmartWork() guaranteed to work if the device
4181 supports SMART.
4182
4183 Replace some numbers by #define MACROS
4184
4185 Wrote Function TestTime to return test time associated with each
4186 different type of test.
4187
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.
4195
4196
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.
4201
4202 smartmontools-5.0-9
4203
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!)
4208
4209 smartmontools-5.0-8:
4210
4211 For IBM disks whose raw temp data includes three temps. print all
4212 three
4213
4214 print timestamps for error log to msec precision
4215
4216 added -m option for Hitachi disks that store power on life in
4217 minutes
4218
4219 added -L option for printing self-test error logs
4220
4221 in -l option, now print power on lifetime, so that one can see
4222 when the error took place
4223
4224 updated SMART structure definitions to ATA-5 spec
4225
4226 added -p option
4227
4228 added -f and -F options to enable/disable autosave threshold
4229 parameters
4230
4231 changed argv parsing to use getops -- elminate buffer overflow
4232 vulnerability
4233
4234 expanded and corrected documentation
4235
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.
4239
4240 smartd: closed open file descriptors if device does not support
4241 smart. Note: this still needs to be fixed for SCSI devices
4242
4243
4244 smartmontools-5.0-0 STARTED with smartsuite-2.1-2