root/trunk/smartmontools/CHANGELOG @ 3241

Revision 3241, 157.1 KB (checked in by chrfranke, 3 years ago)

configure.in: Remove some no longer used settings.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
Line 
1CHANGELOG for smartmontools
2
3$Id$
4
5The most recent version of this file is:
6http://smartmontools.svn.sourceforge.net/viewvc/smartmontools/trunk/smartmontools/CHANGELOG?view=markup
7
8Maintainers / Developers Key (alphabetic order):
9[AS]  Alex Samorukov
10[BA]  Bruce Allen
11[OB]  Oliver Bock
12[EB]  Erik Inge Bols�]  Stanislav Brabec
13[PC]  Peter Cassidy
14[MC]  Matthieu Castet
15[YD]  Yuri Dario
16[CD]  Casper Dik
17[CF]  Christian Franke
18[GF]  Guilhem Fr�u
19[DG]  Douglas Gilbert
20[GG]  Guido Guenther
21[JPH] Jordan Powell Hargrave
22[JH]  Joerg Hering
23[GK]  Geoff Keating
24[DK]  Dr. David Kirkby
25[DL]  Dan Lukes
26[KM]  Kai M�sara
27[EM]  Eduard Martinescu
28[FM]  Fr�ric L. W. Meunier
29[GP]  Gabriele Pohl
30[AR]  Adam Radford
31[KS]  Keiji Sawada
32[MS]  Manfred Schwarb
33[TS]  Tomas Smetana
34[DS]  David Snyder
35[SS]  Sergey Svishchev
36[PW]  Phil Williams
37[LW]  Leon Woestenberg
38[SZ]  Shengfeng Zhou
39[RZ]  Richard Zybert
40
41<DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE>
42
43  [CF] configure.in: Remove some no longer used settings:
44       -lselinux (duplicate), NEED_SOLARIS_ATA_CODE, OS_FREEBSD.
45
46  [CF] Makefile.am: Remove SUBDIRS. Recursive targets are no longer used.
47
48  [CF] Use log directory to check for old error and self-test log
49       support (ticket #89).
50
51  [CF] drivedb.h USB update:
52       - WD My Book Essential 3TB USB 3.0
53
54  [CF] Fix usb header includes for DragonFly BSD (ticket #141).
55
56  [CF] smartctl: Print physical and logical sector sizes (ticket #62).
57
58  [CF] drivedb.h updates:
59       - Fujitsu MHT: Add AC variant
60       - Fujitsu MHW2 AC
61       - Samsung SpinPoint T166: Needs '-v 197,increasing'
62       - Seagate Barracuda 7200.11: Add firmware SD81 as buggy
63       - WD Scorpio Blue EIDE: Add 320GB
64
65  [CF] drivedb.h USB updates:
66       - Samsung S2 Portable (ticket #136)
67       - Move Verbatim 0x152d:0x2351 to JMicron section
68
69  [AS] drivedb.h updates:
70       - Verbatim Portable Hard Drive eSATA & USB 2.0 Combo 500GB
71
72  [CF] Happy New Year! Update copyright year in version info.
73
74  [CF] drivedb.h updates:
75       - Hitachi Deskstar 7K3000
76       - Hitachi Travelstar 7K320: Add ...362 variant
77       - Seagate Maxtor DiamondMax 21: Add STM3250310AS
78       - Toshiba 2.5" HDD MK..65GSX
79       - WD Caviar Green (Adv. Format): Add 750GB, 2.5TB, 3TB
80
81  [CF] drivedb.h USB updates:
82       - Micron USB SSD (unsupported, ticket #133)
83       - Samsung G2 Portable (ticket #132)
84       - Samsung Story Station 3.0 (ticket #130)
85       - Seagate FreeAgent GoFlex (ticket #131)
86
87  [CF] update-smart-drivedb.in: Add workaround for OpenBSD shell bug:
88       'set -e; if eval false; ...' aborts script (ticket #128).
89
90  [CF] update-smart-drivedb.in: Add platform specific download tools:
91       'fetch' on FreeBSD (ticket #127), 'ftp' on OpenBSD.
92
93  [CF] drivedb.h USB updates:
94       - JMicron 0x152d:0x2509
95       - WD My Passport 0730
96
97  [CF] drivedb.h updates:
98       - Samsung SpinPoint F3 EG: Add 2TB
99       - SandForce Driven SSDs: Add ADATA S599, SuperTalent TeraDrive CT
100       - Seagate Constellation (SATA)
101       - Seagate Constellation ES (SATA)
102       - WDC My Passport: Add WD5000BMVW
103
104  [CF] drivedb.h update:
105       - Samsung SpinPoint F4 EG: Add 1.5TB, update firmware bug warning.
106
107  [DG] [SCSI] Fix log page sanity check problem if the DS bit set
108       in response. Caused '-l background' to fail.
109
110  [CF] drivedb.h updates:
111       - Samsung SpinPoint F4 EG: Warning about bad blocks
112
113  [CF] update-smart-drivedb.in: Replace ERE by BRE.  Script does no
114       longer require GNU sed (Ticket #126).
115
116  [DG] In '-r ioctl' show vendor specific SCSI commands as such rather
117       than 'unknown'.
118
119  [CF] Add check for CompactFlash Signature in ATA IDENTIFY data.
120       This avoids that older CF microdrives are detected as ATAPI
121       devices (Ticket #125).
122
123  [CF] drivedb.h updates:
124       - Apple SSDs TS*
125       - Crucial RealSSD C300 Series
126       - Kingston SSDNow V Series
127       - Indilinx Barefoot based SSDs: Add OCZ-ONYX
128       - SandForce Driven SSDs: Add OCZ VERTEX2-PRO
129       - Transcend CompactFlash Cards: Add TS4GCF133
130
131  [CF] Windows installer: Add missing quotes in smartctl-run.bat
132       and smartd-run.bat (Ticket #124).
133
134  [CF] OpenBSD: Fix DEVICESCAN for OpenBSD >= 4.8 (Ticket #123).
135
136  [CF] daemon_win32.cpp: Remove duplicate assignment (Ticket #120).
137
138  [CF] Makefile.am: Do not overwrite existing smartd.conf file
139       (Ticket #122).  If smartd.conf exists and differs from the
140       default then smartd.conf.sample is installed instead
141       If smartd.conf.sample exists on uninstall then smartd.conf is
142       preserved.
143
144  [CF] Linux megaraid: Fix segfault on non-data commands (Ticket #78).
145       The /dev/megaraid_sas_ioctl_node driver does not allow
146       sge_count = 1 and sgl[0].iov_len = 0.
147
148  [CF] Remove EXPERIMENTAL notes for features already present
149       in 5.39.
150
151  [CF] Rework '-d TYPE' documentation on man pages.
152
153  [CF] drivedb.h updates:
154       - Seagate Maxtor DiamondMax 21: Add 80GB
155       - Western Digital Caviar Black: Add 1TB/64MB
156
157  [CF] drivedb.h USB updates:
158       - iRiver iHP-120/140 (Ticket #119)
159       - ASMedia ASM1051
160
161  [CF] Makefile.am: Handle examplescripts in main Makefile.
162       Remove 'examplescripts/Makefile.am'.
163
164  [CF] configure.in: New option '--with-exampledir' allows to change
165       path of 'DOCDIR/examplescripts' directory.
166       (Debian package uses '/usr/share/doc/smartmontools/examples')
167
168  [CF] Replace global 'con->dont_print/...' variables by 'printing_is_*'.
169       Remove global 'con'trol pointer.  Remove file 'extern.h'.
170
171  [CF] Replace global 'con->reportata/scsiioctl' variables by '*_debugmode'.
172
173  [CF] Replace global 'con->conservative/permissive' variables by
174       'failuretest_*'.  Move failuretest() function to smartctl.cpp.
175
176  [CF] Remove unused CONTROLLER_* defines.
177
178  [CF] Remove unused controller support from dev_legacy adapter module.
179
180  [CF] Make 'debugmode' variable local to smartd.cpp.
181
182smartmontools 5.40 2010-10-16
183
184  [CF] examplescripts/Example3: Use stdin to pass message to 'wall'
185       command (ticket #114).
186
187  [CF] smartd: Fix setting of SMARTD_DEVICE and SMARTD_DEVICETYPE
188       environment variables (ticket #113).
189       Regression was introduced by rework of smartd data structures.
190       SMARTD_DEVICE is now set to the plain device name.
191       SMARTD_DEVICETYPE is now set to 'auto' if no '-d' directive is
192       specified.  Smartctl now accepts '-d auto' for this purpose.
193
194  [CF] Remove "Lifetime" from Min/Max temperature attribute output
195       (ticket #111).  Interval is device specific.
196
197  [CF] configure.in: Print resource/message compiler info for Windows only.
198
199  [CF] FreeBSD: Rework get_dev_names_cam() to support more than 26 devices.
200
201  [CF] drivedb.h updates:
202       - Seagate Barracuda 7200.10: Add 360GB
203       - USB: Iomega MDHD-UE
204       Patch provided by Rob Marissen.
205
206  [DL] Standby mode not detected properly on FreeBSD (ticket #91).
207
208  [MS] os_linux.cpp: fix "gcc -flto" build error by including stddef.h
209
210  [CF] drivedb.h update:
211       - Indilinx Barefoot based SSDs: Add OCZ-VERTEX 1199 and -TURBO
212
213  [CF] TODO file: Move open entries to tickets #106, #107, #108, #109, #110.
214       Remove outdated entries.
215
216  [CF] drivedb.h USB update:
217       - SunPlus 0x04fc:0x0c05
218
219  [CF] drivedb.h update:
220       - SandForce Driven SSDs: Add Corsair Force, fix typo
221
222  [CF] Print hex values of unknown self-test type or status.
223
224  [CF] drivedb.h updates:
225       - SandForce Driven SSDs: Fix regex for Unigen UG99SGC
226       - Seagate Momentus XT series
227       - Quantum Bigfoot: Add 12.7GB
228
229  [CF] drivedb.h updates:
230       - SandForce Driven SSDs: Add 11 attributes of new FW,
231         add Unigen UG99PGC
232       - WD AV ATA family: Add 250GB, 320GB
233       - WD AV SATA family
234
235  [CF] Windows: Build syslogevt.exe with MinGW.  Now possible because
236       binutils provides windmc.
237
238  [CF] Makefile.am: Remove install message about smartd startup.
239       It might be misleading because it is not correct for all platforms.
240
241  [CF] configure.in: Minor fix of '--enable-drivedb' new defaults
242       detection.
243
244  [CF] Update links, configure and OS info in INSTALL file.
245       Replace tabs by spaces.
246
247  [CF] configure.in: Fix '--enable-sample' and '--with-selinux'.
248       Fix obsolete use of AC_DEFINE().
249
250  [CF] drivedb.h updates:
251       - IBM Deskstar 60GXP, 40GV & 75GXP: Update link (ticket #99)
252       - Seagate Barracuda 7200.12: Add ST31000523AS and others
253       - WD Caviar Black: Add 2TB
254       - WD VelociRaptor: Add 6 Gb/s models
255
256  [CF] Windows installer: Fix smartctl-run.bat for drive menu (ticket #31).
257
258  [CF] Windows: Create md5/sha1/sha256 checksums of the binaries.
259       Add checksums.txt file to binary distribution.
260
261  [CF] Windows: Include drivedb.h into binary distribution.
262
263  [CF] drivedb.h updates:
264       - Intel X18-M/X25-M/X25-V G2: Add X25-V 40GB
265       - Transcend CompactFlash Cards
266
267  [CF] drivedb.h updates:
268       - Seagate Momentus 7200 FDE.2: Add ST9160414ASG
269       - Seagate Pipeline HD 5900.1 and 5900.2
270       Based on patch provided by Marcin Falkiewicz.
271
272  [CF] Remove unused variable 'reportbug'.
273
274  [CF] Make function PrintOut() local to smartd.cpp, remove it from
275       smartctl.cpp.
276
277  [CF] Windows: Improve compatibility with MinGW variants.
278       Add configure check for DDK include files.
279       Drop support for '-mno-cygwin' from old Cygwin gcc.
280
281  [AS] smartctl.8.in minor update: adding FreeBSD ahci/scsi device hints
282
283  [CF] Fix build if SVN Id keywords are not expanded (ticket #94).
284
285  [CF] Windows: Remove "." from DLL search path to prevent DLL
286       preloading attacks.
287
288  [CF] drivedb.h USB update:
289       - JMicron 0x152d:0x0551 (ticket #95)
290       Add note about port multipliers to smartctl man page.
291
292  [CF] drivedb.h updates:
293       - SandForce Driven SSDs: Add Unigen drives
294       - Indilinx Barefoot based SSDs: Add ASAX Leopard Hunt II
295
296  [CF] drivedb.h update:
297       - Intel X18-M/X25-M G2: Add names of timed workload attributes.
298       Document attribute clear command '-t vendor,0x40' on smartctl
299       man page.
300
301       Thanks to Artem Danielov from Intel for providing the
302       required information and drives for testing.
303
304  [CF] drivedb.h update:
305       - SandForce Driven SSDs: Add OCZ drives with form factor info.
306
307  [CF] drivedb.h update:
308       - Intel X25-E, X18-M/X25-M (add X18-M, update attributes)
309
310  [CF] configure.in: '--enable-drivedb' is now the default.
311
312  [CF] drivedb.h update:
313       - Indilinx Barefoot based SSDs
314         (combine and update 5 SSD entries using this controller)
315
316  [CF] drivedb.h update:
317       - SandForce Driven SSDs (Demo Drive, OCZ-Agility2/Vertex2/Vertex-LE)
318
319       Thanks to Jeremy Werner (jwerner@sandforce.com) from SandForce for
320       providing the required information and a demo drive for testing.
321
322  [CF] drivedb.h update:
323       - Add 1.5TB drive to SAMSUNG SpinPoint F3 EG series
324
325  [CF] Add print formats '-v ID,msec24hour32' and '-v ID,raw24/raw32'.
326       Used by SSDs with SandForce controller.
327
328  [CF] Allow SMART threshold entries at positions different from
329       attribute table. This fixes attribute output for recent
330       SSDs with SandForce controller.
331
332  [CF] smartctl: Add option '-t vendor,N' to issue ATA
333       command SMART EXECUTE OFF-LINE IMMEDIATE with
334       a vendor specific subcommand.
335
336  [CF] drivedb.h update:
337       - SAMSUNG SpinPoint V80 series (ticket #85)
338
339  [CF] Linux: Support SATA drives on LSI 3ware 9750 controllers.
340       Patch provided by Victor Payno (ticket #86).
341       Modified to avoid duplicate code.
342
343  [CF] drivedb.h update:
344       - SAMSUNG SpinPoint M7 series
345
346  [CF] drivedb.h USB update:
347       - Buffalo JustStore Portable HD-PVU2
348
349  [CF] drivedb.h USB updates:
350       - Iomega LDHD-UP (ticket #83)
351       - WD Elements Desktop 2TB
352       - Maxtor OneTouch (0x0d49:0x7300)
353
354  [MS] drivedb.h updates:
355       - Intel X25-M SSD first Generation
356       - ExcelStor J8160
357       - OCZ Agility2
358
359  [CF] drivedb.h updates:
360       - Transcend Solid State Drives (ticket #80)
361
362  [CF] drivedb.h USB update:
363       - LaCie Rugged Hard Drive
364
365  [CF] smartctl: Add options '--scan, --scan-open'.
366
367  [CF] Windows: Use also VendorId from IOCTL_STORAGE_QUERY_PROPERTY.
368
369  [CF] smartd: Change defaults of '-C' and '-U' directives to 0 (disabled)
370       if attribute name is changed by '-v 19[78],...' directive.
371
372  [CF] configure.in: Fix include path for MinGW.
373
374  [CF] Move 'posix/reg*' to 'regex/reg*'.
375       Add configure check for regex.
376
377  [MS] cciss.cpp: avoid redefining be32toh
378       megaraid.h: replace use of undefined preprocessor macro BITS_PER_LONG
379                   by union construct (thanks to [DL]).
380                   Add assert for sizeof(ptr_t) == 8 (thanks to [CF]).
381
382  [CF] Makefile.am: Add os_qnxnto.* to EXTRA_smart*_SOURCES.
383
384  [MS] drivedb.h update:
385       - WD My Passport Essential SE 1TB variant (USB interface)
386
387  [CF] Use getopt_long() from getopt/getopt* if necessary.
388       Add missing cast to os_qnxnto.cpp.
389       This fixes build on QNX (ticket #1).
390       Thanks to Stefan (stevestereo) for testing.
391
392  [CF] drivedb.h update:
393       - WD Caviar Green (Adv. Format) family
394
395  [CF] drivedb.h USB update:
396       - Verbatim External Hard Drive 47519
397
398  [DL] Fix regression in smartctl option '-t select,M-N' which prevents
399       that more than one test span can be specified (ticket #75).
400
401  [CF] drivedb.h updates:
402       - Add raw64 attributes 1, 210-213 to all SSD drives with
403         64-bit attribute format.
404
405  [CF] Support smartd '-l xerror' also for disks which use reserved
406       byte as log index.
407
408  [CF] Fix initialization of values missing in smartd '.state' files.
409
410  [CF] Add smartd directive '-l xerror' to check error count from
411       the Extended Comprehensive SMART Error Log (ticket #34).
412
413  [CF] Fix max number of cciss devices, 128 devices are supported
414       again (ticket #49). Regression was introduced during migration
415       to new interface.
416
417  [CF] Update man pages (include Debian patch
418       60_remove-redhatism.diff and Debian Bug 570892).
419
420  [CF] Add SVN revision number to man pages.
421
422  [CF] Windows: Read default drivedb.h and smartd.conf from exe
423       directory instead of current directory.
424
425  [CF] drivedb.h update:
426       - SAMSUNG SpinPoint M series
427
428  [CF] Replace runtime check of byte ordering by compile time check.
429
430  [CF] drivedb.h USB updates:
431       - ALi M5621 (unsupported)
432       - LaCie with JMicron (ticket #69)
433       - JMicron (0x2352)
434       - Enable 48-bit commands for Hitachi drive
435
436  [CF] Read USB ID info from drivedb.h (ticket #44).
437
438  [CF] Create branch RELEASE_5_39_DRIVEDB with last drivedb.h file
439       compatible with smartmontools 5.39[.1].
440
441  [MS] drivedb.h updates:
442       - WD Raptor 80GB variant
443       - correct Regex for some WD AV-GP variants
444       - Hitachi Ultrastar A7K2000
445       - Hitachi Travelstar 5K500.B
446       - Hitachi Deskstar 7K1000.C
447       - adjust naming of Hitachi Travelstar and Deskstar drives
448
449  [CF] Move 'posix/getopt*' to 'getopt/getopt*'.  Can be used for
450       platforms with regex() but without getopt_long() (QNX, ticket #1).
451
452  [CF] smartd '-l selftest' directive: Print info if error count
453       decreased.  Avoid misleading warning if error count decreased
454       to zero (ticket #67).
455
456  [CF] smartctl: Rework ataPrintMain().  Issue ATA SMART commands only if
457       necessary.  Improve handling of SMART STATUS command failure when
458       ATA output registers are missing (ticket #27).
459
460  [CF] USB ID updates:
461       - A-DATA SH93
462       - Hitachi/SimpleTech 1TB
463
464  [CF] configure.in: Print configuration summary.
465
466  [CF] smartctl -l xselftest,selftest: Print old log if extended self-test
467       log index is out of range.  Workaround for bad log data from Intel
468       X25-M G2 (ticket #66).
469
470  [CF] USB ID updates:
471       - LaCie Desktop Hard Drive
472       - Prolific PL2507 (unsupported)
473       - Seagate FreeAgent Go FW
474       - WD My Book Essential
475
476  [CF] Linux: Add '/dev/sd[a-c][a-z]' to smartd DEVICESCAN.
477
478  [CF] smartd: Other config entries may precede DEVICESCAN.
479       Very first step towards a more flexible device scanning.
480
481  [CF] Windows: Use '.win64' in names of 64-bit binary packages.
482       Use correct 'strip' program when cross-compiling.
483
484  [CF] Add update script to make targets 'dist' and 'clean',
485       set +x permission, update svn:ignore.
486
487  [CF] Add 'update-smart-drivedb' script (ticket #59).
488       The script updates the drive database from SVN.
489       It is installed if '--enable-drivedb' is configured.
490
491  [MS] drivedb.h updates:
492       - Seagate Medalist 1720
493       - SuperTalent UltraDrive GX SSD
494       - Intel X25-M SSD
495
496  [CF] Makefile.am: Fix unix2dos and makensis parameters to allow
497       to build the Windows installer on Linux also.
498
499  [CF] Makefile.am: Use a separate build rule for each man page to
500       avoid compatibility problems with BSD make.
501
502  [AS] drivedb.h updates:
503       - Fujitsu MHZ2 BK series
504
505  [MS] drivedb.h updates:
506       - SAMSUNG SpinPoint F3 series
507       - SAMSUNG SpinPoint F3 EG series
508       - SAMSUNG SpinPoint M5 series
509       - Western Digital Caviar Green 6400AADS
510       - more Western Digital VelociRaptor variants
511
512  [AS] FreeBSD: disable 48-bit commands in the ata_pass_through interface,
513       there is no 48-bit support in the IOCATAREQUEST ioctl.
514
515  [CF] smartctl: Add option '-l scterc[,READTIME,WRITETIME]' to get/set
516       the SCT Error Recovery Control time limit (ticket #50).
517
518       Patch was provided by Richard Gregory:
519       http://www.csc.liv.ac.uk/~greg/projects/erc/
520       Modified for new ata_pass_through() interface.
521       Linux HPT fixes ommitted for now.
522
523  [CF] Fix SCT temperature table commands on big endian CPUs.
524
525  [MS] drivedb.h updates:
526       - more Seagate Momentus 5400.6 drives
527       - HP 500GB drive MM0500EANCR
528
529  [CF] Windows: Cleanup I/O-control declarations, rely on include
530       files if possible.
531
532  [CF] Windows: Compile fixes for 64-bit exe (EXPERIMENTAL).
533       Update build info in INSTALL file.
534
535  [CF] drivedb.h update:
536       - Patriot Torqx SSD (patch provided by Gianpaolo Cugola)
537
538  [CF] Makefile.am: Avoid duplication of man page filter script.
539
540  [CF] smartd: Add option '-C, --capabilities' if libcap-ng is available
541       (ticket #45).
542       Support is added if libcap-ng is found during build. This can
543       be overridden by configure option '--with-libcap-ng=[auto|yes|no]'.
544
545       Based on Debian patch:
546       http://patch-tracker.debian.org/patch/series/view/smartmontools/5.39-3/62_lowcap.patch
547       Modified to fix regression (ticket #41, Debian bug 564876).
548
549  [CF] Bugfix release 5.39.1.
550
551  [CF] Linux: Fix spin-up of SATA drive if '-n standby' is used
552       (ticket #37).  For some reason, this happens if the SCSI/SAT
553       device is opened with O_RDWR instead of O_RDONLY.
554
555  [CF] Windows: Fix parsing of 'tw_cli' output for 3ware 9.5.x release
556       (ticket #43).
557
558  [CF] Add USB IDs of Seagate FreeAgent Go, Seagate Expansion Portable
559       and WD My Passport (IDE).
560
561  [CF] autogen.sh: Fix version regexp, allow automake 1.11.1.
562
563  [CF] Linux: Allow smartd 'DEVICESCAN -d sat' (ticket #13).
564       Detects (S)ATA devices behind a standard SAT layer
565       (Vendor ID: "ATA     "), but not USB bridges with SAT support.
566       Only added for backward compatibility with 5.38.
567       No longer needed as 'DEVICESCAN' without '-d' includes these devices.
568
569  [CF] Add USB ID of Seagate FreeAgent Desktop.
570
571  [CF] smartd: Fix directive '-l selftest' (ticket #36)
572       Regression was introduced with r2773.
573
574  [CF] smartd: Don't disable attribute tracking if read thresholds fails.
575       Windows: Don't return dummy thresholds if IOCTL_STORAGE_QUERY_PROPERTY
576       or 3ware CLI is used to read SMART data.
577
578  [CF] Windows: Print warning if admin rights are missing.
579
580  [CF] Replace some 'EXIT(status)' calls by 'return status'.
581       Remove unnecessary casts from 'nonempty()' calls.
582
583  [CF] Windows: Set ata_device::ata_identify_is_cached() return value
584       according to I/O-control actually used.
585
586  [CF] Print ATA output registers if SMART status command returns bogus
587       register values.
588
589  [CF] Windows: Don't return false ATA version info if IDENTIFY data
590       is build from IOCTL_STORAGE_QUERY_PROPERTY result or from 3ware CLI
591       output.
592       smartctl: Handle missing info about ATA version in '-i' output.
593
594  [CF] smartctl: Don't print log directory if '-q errorsonly' is specified.
595
596  [CF] smartctl: Fix option '-q, --quietmode' (ticket #11).
597       Regression was introduced with r2807.
598
599  [CF] drivedb.h update:
600       - SAMSUNG SpinPoint F2 EG series
601
602  [CF] Add USB ID of Samsung Story Station.
603
604  [MS] drivedb.h update:
605       - Hitachi Travelstar 5K320: some EA models miss last 2 "0"
606         in model string
607       - Seagate Barracuda LP series
608
609  [CF] drivedb.h update:
610       - Crucial M225 SSD
611
612  [CF] drivedb.h updates:
613       - WDC Scorpio Blue Serial ATA (640GB, 750GB, 1TB)
614       - WDC My Passport Essential SE
615
616  [CF] Add USB ID of Toshiba PX1270E-1G16.
617
618  [CF] Happy New Year! Update copyright year in version info.
619
620  [CF] drivedb.h update:
621       - SAMSUNG SpinPoint M40/60/80 series
622
623  [CF] Add direct access to 48-bit LBA register in 'ata_in/out_regs_48bit'.
624
625  [DL] drivedb.h updates:
626       - WDC My Passport Essential/USB (capacity 250GB, 400GB & 500GB)
627
628  [DL] -r ataioctl,2: print text representation of data also (ticket #32)
629
630  [DL] FreeBSD: freebsd_ata_device::ata_pass_through implemented (part of ticket #18)
631
632  [CF] drivedb.h updates:
633       - Hitachi Travelstar 7K320 (ticket #28)
634       - Hitachi Travelstar 7K500
635
636  [DL] -l gpllog,...: print text representation of data also (ticket #30)
637
638  [DL] FreeBSD: check reallocf() result for failures
639
640  [AS] FreeBSD: fixing crash on kFreeBSD (#29), patch provided by Petr Salinger
641
642  [CF] Makefile.am: 'make check' now tests the syntax of drivedb.h.
643
644  [CF] Cygwin: Open drive database files in text mode.
645
646  [CF] Cygwin: Check for 'syslogd' and 'syslog-ng' in initd script.
647
648  [CF] Windows: Disable Win9x/ME specific code if no longer supported
649       by compiler.
650
651  [CF] Add '-v ID,FORMAT:BYTEORDER[,NAME]' to specify byte order
652       of attribute raw value.
653
654  [CF] configure.in: Change --with-docdir default from
655       'PREFIX/share/doc/smartmontools-VERSION' to
656       'DATADIR/doc/smartmontools' to make it consistent with
657       --docdir option added in autoconf 2.6x (ticket #24).
658       Autoconf 2.5x is still supported.
659
660  [CF] Move drive database entries from 'knowndrives.cpp' to new file
661       'drivedb.h'.  This allows to update the drive database from SVN
662       if installation was configured with '--enable-drivedb'.
663       Remove the Makefile target to create 'drivedb.h'.
664
665  [CF] do_release: Add support to release from a dir below 'branches'.
666       Accept partial checkouts.
667
668smartmontools 5.39.1 2010-01-28
669
670  [CF] Linux: Fix spin-up of SATA drive if '-n standby' is used
671       (ticket #37).  For some reason, this happens if the SCSI/SAT
672       device is opened with O_RDWR instead of O_RDONLY.
673
674  [CF] Windows: Fix parsing of 'tw_cli' output for 3ware 9.5.x release
675       (ticket #43).
676
677  [CF] Linux: Allow smartd 'DEVICESCAN -d sat' (ticket #13).
678       Detects (S)ATA devices behind a standard SAT layer
679       (Vendor ID: "ATA     "), but not USB bridges with SAT support.
680       Only added for backward compatibility with 5.38.
681       No longer needed as 'DEVICESCAN' without '-d' includes these devices.
682
683  [CF] smartd: Fix directive '-l selftest' (ticket #36)
684       Regression was introduced with r2773.
685
686  [CF] smartctl: Don't print log directory if '-q errorsonly' is specified.
687
688  [CF] smartctl: Fix option '-q, --quietmode' (ticket #11).
689       Regression was introduced with r2807.
690
691  [CF] Happy New Year! Update copyright year in version info.
692
693  [DL] FreeBSD: check reallocf() result for failures
694
695  [AS] FreeBSD: fixing crash on kFreeBSD (#29), patch provided by Petr Salinger
696
697  [CF] do_release: Add support to release from a dir below 'branches'.
698       Accept partial checkouts.
699
700smartmontools 5.39 2009-12-09
701
702  [CF] do_release: Commit CHANGELOG and NEWS also. Allow to review changes.
703
704  [CF] Linux: Add workaround for Adaptec series 2, 5 and 5Z controllers
705       with firmware >= 17380.  Patch was provided by Phil Wilson, see:
706       http://linux.adaptec.com/2009/07/24/using-smartmontools-538-with-series-255z-controllers-with-firmware-17380-onwards
707
708  [CF] configure.in: Add '-fno-strict-aliasing' to CXXFLAGS if supported.
709       This suppresses gcc 4.4.1 warnings on Linux and avoids possible
710       unsafe optimizations (ticket #23).
711       Patch was provided by Manfred Schwarb.
712
713  [CF] Avoid truncation of configure arguments in '-V' output.
714
715  [AS] Added USB IDs of WD Passport USB Portable
716
717  [CF] Linux: Fix segfault in 3ware interface (ticket #22).
718
719  [MS] knowndrives.cpp updates:
720       - Hitachi Deskstar 7K2000
721       - Seagate Momentus 7200 FDE.2 series
722
723  [CF] Add USB ID of WD My Passport 070A.
724       knowndrives.cpp update:
725       - WD My Passport hard drive (USB interface)
726
727  [CF] smartd: Write 'worst' attribute value to '.state' file also.
728       This allows to use state persistence with 'raw64' attributes.
729
730  [CF] Rework ATA SMART attribute check in smartctl and smartd.
731       smartd: Ignore normalized attribute value and threshold
732       if 'raw64' or 'hex64' format is selected.
733
734  [CF] Add USB IDs of Iomega LPHD080-0, 2 Genesys Logic bridges and
735       Initio 316000.
736
737  [MS] knowndrives.cpp update: Hitachi Travelstar 5K320 series
738
739  [CF] smartctl: Ignore normalized attribute value and threshold
740       if 'raw64' or 'hex64' format is selected.
741
742  [CF] knowndrives.cpp updates:
743       - add OCZ-Vertex raw64 attributes
744       - add OCZ-Agility
745       Thanks to Marcin Marszalek for the patch.
746
747  [CF] Add '-v ID,hex*' print formats. Fix '-v N,FORMAT,NAME' parsing.
748
749  [CF] Add '-v ID,raw64[,...]' print format based on a patch provided
750       by Marcin Marszalek.
751
752  [CF] Add '-v ID,RAW_FORMAT[,ATTR_NAME]' option. This allows to add new
753       attributes without the need to enhance the '-v' option.
754       Rework attribute name and raw value formatting.
755
756  [CF] Fix auto_ptr initialization in linux_scsi_device::autodetect_open().
757
758  [CF] Remove duplicate function smart_device_list::add().
759       Replace calls with push_back().
760
761  [MS] attribute update:
762       trim attribute names to 23 chars
763
764  [CF] Add smart pointer class template to manage device object pointers.
765       Remove related 'delete' calls and 'try/catch' blocks.
766
767  [CF] do_release: Replace generation of '*.asc' by '*.md5' and '*.sha1'.
768
769  [MS] attribute updates:
770       - change attributes 202,204,205 to the meanings as found in wdidle3.exe
771         retain old entries as comments (possible Fujitsu use)
772       - add attribute 240 as found in Fujitsu MHY2xxxBH
773
774  [MS] attributes updates:
775       - attributes 225, 232 and 233 for Intel X25-E SSD
776       - non-conflicting attributes extracted from wdidle3.exe
777         (thanks to Franc Zabkar and Dan Lukes)
778
779  [CF] Update Windows and ./configure info in INSTALL file.
780
781  [CF] Update 'do_release' script for SVN.
782
783  [MS] knowndrives.cpp updates:
784       - Western Digital MyPassport Essential hard drive (USB interface)
785       - Seagate Momentus 7200.4 series
786       - Western Digital Raptor X
787       - Intel X25-E SSD
788
789  [CF] knowndrives.cpp updates:
790       - New Seagate 7200.11 firmware version
791       - Update IBM link
792
793  [CF] smartctl: Use printf() instead of pout() for exception error
794       messages to avoid access to bogus 'con->dont_print'.
795
796  [CF] smartd: Add missing help texts for '-A', '-B' and '-s'.
797
798  [CF] Add missing check for log page 0x11 support to smartctl
799       '-l sataphy' option.
800
801  [CF] Add USB ID of Freecom Hard Drive XS.
802
803  [AS] Linux: Autodetect DELL PERC and MegaRAID controllers.
804       Hiding debug messages coming from megaraid code.
805
806  [AS] Linux: Fixed SATA drives support on megaraid device (see ticket #15).
807
808  [AS] FreeBSD: Removed all old detection code, moving everything to
809       the objects. Now we are using CAM/ATA enumerators to guess device
810       type.
811
812  [AS] FreeBSD: Added autodetection for the ada disks (untested).
813       Code for USB device detection refactored.
814
815  [AS] FreeBSD: cam_get_umassno rewritten using XPT_PATH_INQ
816
817  [AS] FreeBSD: do not open/close cam device on every request for SCSI
818       disks. Use com->camdev both for SCSI and ATAPICAM.
819
820  [AS] FreeBSD: added support for the ada disks, based on agapon patch
821
822  [CF] Add names for attributes 184 and 188, see ticket #17.
823
824  [CF] configure.in: Change configure date syntax.
825       Add message to '-mno-cygwin' option check.
826
827  [GK] Add names for some attributes used in MLC flash drives:
828       175, 176, 177, 181, 182
829
830  [CF] Windows: Check support of gcc '-mno-cygwin' option in configure.
831       This option has been removed in Cygwin gcc 4.x.  Update INSTALL
832       instructions accordingly.
833
834  [CF] Increase SCSI_TIMEOUT_DEFAULT from 6 to 20 seconds to avoid
835       timeouts when a disk spins up from standby mode.
836
837  [CF] Add USB ID of AcomData 504 (OnSpec USB bridge).
838
839  [AS] Correcting manual pages (FreeBSD related)
840
841  [AS] FreeBSD: fix FTBFS on GNU/kFreeBSD (reported by derevko).
842
843  [AS] FreeBSD: Add USB autodetection to smartd DEVICESCAN directive.
844
845  [CF] Add USB ID of Myson Century CS8818, add some comments.
846
847  [CF] Return info strings from 'smart_interface::get_*()' functions as
848       'std::string' instead of 'const char *'. Static buffers are no
849       longer needed.
850
851  [SZ] FreeBSD: Fix highpoint type detection and ioctl failed for parameter
852       error.
853
854  [CF] Linux: Add USB autodetection to smartd DEVICESCAN directive.
855
856  [CF] Add USB IDs of Maxtor Basics Desktop and ISD-300A1.
857
858  [AS] Use malloc() to ensure that the read buffer lands on a single
859       page.  This avoids some bugs seen on LSI controlers under
860       FreeBSD.
861
862  [CF] Add missing help text for '-d usb*' options.
863
864  [CF] Linux: Dereference '/dev/disk/by-*/*' symlink before device type
865       autodetection.
866
867  [AS] FreeBSD: Support SATA disks attached to a SAS controller (based on
868       patch from freebsd ports tree).
869
870  [AS] FreeBSD: Added FreeBSD 8 libusb2 device autodetecion, new
871       configure check for -lusb.
872
873  [AS] FreeBSD: Added USB device autodetection and fixed -d switch behavior.
874
875  [AS] FreeBSD: Migrate os_freebsd.cpp to new interface.
876
877  [CF] Fix max number of 3ware devices, 128 devices are supported again.
878       Regression was introduced during migration to new interface.
879       Thanks to Michael Holweg for the problem report.
880
881  [CF] Windows installer: Add 'DisplayVersion' to uninstall registry key.
882
883  [MS] knowndrives.cpp updates:
884       - Marvell SSD SD88SA024BA0
885       - Fujitsu MHZ2 BH series
886       - Fujitsu MHZ2 BJ series
887       - Seagate Maxtor DiamondMax 23
888       - WD Caviar Green: Add some 32MB cache variants
889       - relax OCZ-Vertex pattern
890
891  [CF] Add USB ID of Verbatim FW/USB160.
892
893  [CF] Fix data type bug in checksum test for multi sector logs.
894
895  [CF] Add USB ID of Seagate FreeAgent Go.
896
897  [MS] Add experimental feature to log attribute values at each check
898       cycle (ATA only), activated with the smartd option
899       "-A PREFIX" / "--attributelog=PREFIX".
900       Introduce configure options "--enable-attributelog" and
901       "--with-attributelog=PREFIX" to enable feature by default.
902
903  [DG] [SAT] Heads up about a non backwardly compatible change
904       introduced in draft SAT-2 (sat2r8b.pdf) that will break our
905       existing SAT processing code. Action needed if change stands.
906
907  [MS] smartd.cpp: Adjust umask
908
909  [CF] Makefile.am: Remove 'uninstall-docsDATA' target to fix
910       'make distcheck' with automake 1.11. The 'make uninstall'
911       of examplescripts fails if docdir does no longer exist.
912
913  [CF] Remove 'scsiata.h'. The 'scsiata.cpp' module now implements
914       parts of 'dev_interface.h'.
915
916  [CF] smartctl: Don't report an attribute as failed if threshold is 0.
917
918  [CF] Print only one warning on checksum errors in multi sector log.
919       Remove casts from calls of checksum().
920
921  [DG] minor changes to SCSI background scan strings
922
923  [MS] knowndrives.cpp updates:
924       - Fujitsu MHW2 BJ series
925       - WD Caviar Black family
926
927  [MS] Makefile.am: Make creation of svnversion.h independent of
928       locale settings
929
930  [CF] Require to specify PORT parameter of '-d usbjmicron' if two disks
931       are connected.
932
933  [CF] smartctl: Limit default number of printed entries for
934       '-l xerror' to 8, for '-l xselftest' to 25.
935
936  [CF] smartctl: Fix number of entries in '-l xselftest' output.
937
938  [CF] Add USB IDs of a SunplusIT bridge, three WD drives, and an
939       unsupported Iomega drive.
940
941  [CF] Makefile.am: Use 'svnversion' instead of 'svn info' to get
942       the revision number. This also checks for mixed and modified
943       working copies.
944
945  [CF] Remove CVS Id strings from '-V, --version' output.
946
947  [CF] Update CONTRIBUTORS section on man pages.
948
949  [CF] Makefile.am: 'make maintainer-clean' now removes also files
950       generated by './autogen.sh'.
951
952  [CF] Invalidate 'do_release' script, it needs some rework for SVN.
953
954  [CF] Update documentation files for SVN.
955
956  [CF] Rename trunk/sm5 to trunk/smartmontools.
957
958  [CF] Print SVN revision number instead of time in version info line.
959       Get SVN revision number from svn (if available) or guess from
960       Id strings. Rename generated file to svnversion.h.
961
962  [CF] Makefile.am: Modify generation of cvsversion.h for SVN.
963
964  [GP] Convert CVS repository to SVN.
965
966  [CF] smartd: Fix size of monitor flag array from previous commit.
967
968  [CF] Makefile.am: Add missing 'megaraid.h'.
969
970  [CF] smartd: Add '!' flag to '-r' and '-R' directives. If specified,
971       message is logged as LOG_CRIT and warning mail is sent if
972       attribute normalized or raw value changes.
973
974  [CF] Replace global 'con->...' variables used for selective self-tests
975       by local variables.
976
977  [GK] Add names for some attributes used in Samsung MLC drives:
978       178-180 & 183
979
980  [CF] smartctl: Add option '-x, --xall' to print all info including
981       extended SMART logs and non-SMART info.
982
983  [CF] smartctl: Add '-l xerror,error' and '-l xselftest,selftest' to print
984       the old logs if the extended logs are not supported.
985
986  [MS] knowndrives.cpp updates:
987       - Western Digital AV-GP series
988       - Transcend Solid-State Drive and Transcend Solid-State Drive V series
989       - Seagate Momentus 5400.5 series
990
991  [CF] Disable 48-bit ATA commands for JMicron USB bridges by default
992       because these commands do not work with all devices.
993       Add '-d usbjmicron,x' to enable 48-bit commands.
994       Thanks to Alexander Shaduri for the problem report.
995
996  [CF] smartd: Don't ignore the '-n' directive when a self-test is
997       scheduled. Start the self-test later when the disk is active
998       again.
999
1000  [DG] SCSI (SAS): implement '-l sasphy,reset' (reset part was stub
1001       prior to this)
1002
1003  [DG] add 'ATA, SCSI command sets and SAT' section to smartctl.8 .
1004       [SCSI] add 'number of background medium scans' field
1005
1006  [DG] SCSI (SAS): add '-l sasphy' and '-l sasphy,reset' into smartctl
1007       to output SAS device phy information (from the Protocol specific
1008       log page)
1009
1010  [CF] autogen.sh: Remove 'CYGWIN=check_case:strict', this does no
1011       longer work on Cygwin 1.7.  Print warning if Automake version
1012       cannot handle case insensitive filesystems.
1013
1014  [CF] Remove '#define TRUE/FALSE', use 'bool' and 'true/false'.
1015
1016  [CF] Add 'options' parameter to SCSI printing routine. Move global
1017       'con->...' smartctl variables to 'options' parameters of
1018       printing routines.
1019
1020  [CF] Windows: Remove outdated entry about undocumented system calls
1021       from WARNINGS file.
1022
1023  [CF] Print General Purpose Logs even if GPL feature bit is missing.
1024       Needed for some older disks which implement READ LOG EXT but
1025       do not report the GPL feature set.
1026       Change order of the extended log outputs ('-l xerror',
1027       '-l xselftest', '-l sataphy'). Extended logs are now printed
1028       before their old versions.
1029
1030  [CF] autogen.sh: automake 1.10.2 and 1.11 are OK.
1031
1032  [CF] Fix syntax error in prototype of 'safe_snprintf()'.
1033       Thanks to Alexander Shaduri for bug report and patch.
1034
1035  [DG] SCSI: Fetch load-unload cycle counts.
1036
1037  [CF] Windows: Add Win-7 and Win2008 to get_os_version_str().
1038
1039  [CF] smartd: Fix '-M test' directive in conjunction with '-s' option.
1040       Thanks to Matthias Becher for the problem report.
1041
1042  [MS] knowndrives.cpp updates:
1043       - Add Seagate Barracuda 7200.12 series
1044       - Add Seagate Momentus 5400.4 series
1045       - Add Hitachi Deskstar 7K1000.B series
1046       - Add Transcend SSD TS32GSSD25-M
1047       - Add OCZ Vertex 1199
1048
1049  [CF] knowndrives.cpp updates:
1050       Add Samsung S250 series.
1051       Add '-v 198,increasing' to Samsung P80.
1052       Replace '#if/#endif' by comment to fix configure option
1053       '--enable-drivedb'.
1054
1055  [CF] knowndrives.cpp update:
1056       Add Seagate 7200.11 with 'CC' firmware which is unaffected
1057       by the bug. Thanks to Bas Mevissen for the patch.
1058
1059  [CF] Replace global 'con->...' variables used for drive presets
1060       by local variables.
1061
1062  [CF] Simplify '-v' vendor attribute option parsing.
1063       Add '-v 197,increasing' and '-v 198,increasing' options
1064       to specifiy that an uncorrectable count is never reset.
1065       This modifies the printed attribute names and smartd's
1066       default setting of '-C' and '-U' directives.
1067       Both '-v' options can also be preset in the drive database.
1068
1069  [CF] Add '+' modifier to smartd '-C' and '-U' directives.
1070       If specified, a warning is only printed if the raw value
1071       increases.
1072
1073  [CF] Add smartctl option '-l xselftest[,NUM]' to print
1074       ATA SMART Extended Self-test Log (GP Log 0x07).
1075
1076  [CF] Add experimental option '-d usbsunplus' for drives behind
1077       SunplusIT USB bridges. Tested on WinXP with SPIF215(?) in
1078       TrekStor DataStation maxi m.u.. Many thanks to SunplusIT
1079       tech support for providing the required information.
1080
1081  [CF] Windows: Provide a non-console version of smartctl.exe
1082       as smartctl-nc.exe. This prevents that a new console is
1083       opened when smartctl is run from a GUI program with
1084       stdio redirected.
1085       Used by GSmartControl (http://gsmartcontrol.berlios.de/).
1086
1087  [CF] Remove support for platforms without getopt_long() in
1088       smartctl.cpp and smartd.cpp. If getopt_long() is missing,
1089       ./configure aborts with an explanatory message.
1090       For now, short option help texts are only removed from
1091       os_linux.cpp and os_win32.cpp. HAVE_GETOPT_LONG is still
1092       defined in config.h.
1093
1094  [CF] Add smartctl '-d test' option to print the result of the
1095       device type detection.
1096
1097  [CF] Enhance USB device type autodetection, use bcdDevice if known.
1098       Add Cypress CY7C68300B/C (AT2LP) to the table.
1099
1100  [CF] Linux: Add experimental USB device type autodetection.
1101       Uses USB ID info found through symlink "/sys/block/sdX/device".
1102
1103  [CF] Windows: Add experimental USB device type autodetection.
1104       Uses WMI command line tool 'wmic' to query USB ID.
1105
1106  [CF] Add function smart_interface::get_usb_dev_type_by_id() to map
1107       USB vendor:product IDs to '-d type' names. Can be used by
1108       platform dependent layer to autodetect USB devices if ID of
1109       USB bridge is known.
1110
1111  [CF] smartd: Log changes of self-test execution status if
1112       '-l selftest'is specified.
1113
1114  [CF] knowndrives.cpp update:
1115       Samsung SpinPoint F1 RE series
1116
1117  [MS] knowndrives.cpp update:
1118       Seagate Momentus 5400.6 series
1119
1120  [CF] Add forgotten SCSI sense checks to class usbjmicron_device.
1121
1122  [CF] Add new SMART STATUS check command for JMicron USB bridges.
1123       Should support also older chip versions and prevents a race
1124       condition.
1125
1126  [CF] Windows: Fix win_scsi_device::scsi_pass_through() for single byte
1127       data transfers. Required for JMicron SMART STATUS check.
1128
1129  [MS] knowndrives.cpp update:
1130       Add Hitachi Travelstar C4K60 family (1.8" slim drives)
1131
1132  [MS] Workaround for huge raw values of attribute 9, needed
1133       for Hitachi Travelstar C4K60. For the Power_On_Minutes case,
1134       clip the display to 4 bytes and show the remaining part,
1135       if existent, in parens.
1136
1137  [CF] Add experimental option '-d usbjmicron[,PORT]' for drives
1138       behind JMicron USB bridges. Tested on WinXP with JM20336 in
1139       AixCase AIX-ESU35CD. Many thanks to JMicron tech support
1140       for providing the required information.
1141
1142  [MS] knowndrives.cpp update:
1143       Add WD Caviar Green 8MB and 32MB cache variants, stretch to 2TB.
1144 
1145  [CF] knowndrives.cpp updates: Add more entries for Samsung P80 disks
1146       with old and unknown firmware. Remove old entries which would
1147       match any new Samsung model reusing old firmware version number.
1148
1149  [CF] Windows: Add a workaround for missing multi-sector support
1150       for ATA READ LOG EXT command.
1151
1152  [CF] Fix Extended Comprehensive Error Log index base.
1153       Add workaround for Samsung disks using reserved byte as index.
1154
1155  [CF] knowndrives.cpp updates: Update bug warnings for
1156       Seagate 7200.11, ES.2 and DiamondMax 22. Add new entries
1157       for fixed firmware versions.
1158
1159  [CF] Add smartctl option '-l xerror[,NUM]' to print
1160       ATA SMART Extended Comprehensive Error Log (GP Log 0x03).
1161
1162  [MS] knowndrives.cpp update:
1163       Added remaining WD Scorpio Blue SATA II drives
1164
1165  [CF] Minor fix to remove ID 0 from 'smartctl -l sataphy ...' output.
1166
1167  [CF] knowndrives.cpp updates: Add warnings about possible firmware
1168       bugs to Seagate 7200.11, ES.2 and DiamondMax 22 entries.
1169
1170  [CF] knowndrives.cpp updates: Add Samsung SpinPoint F1 series.
1171
1172  [CF] Windows: Fix return value of scsi_pass_through(). Regression
1173       was introduced during migration to new interface. SAT over USB
1174       now works on XP (both '-d sat,12' and '-d sat,16').
1175
1176  [MS] knowndrives.cpp updates:
1177       - Added Western Digital RE2-GP family
1178       - Added Hitachi Travelstar E5K160 family
1179       - Allow uppercase variants of Hitachi 5K160 drives
1180
1181  [CF] Fix smartctl crash on '-l directory,[gs]'. Allow to override
1182       missing GPL feature bit or missing log dir entry with
1183       '-T permissive' option.
1184
1185  [SZ] os_freebsd.cpp, os_freebsd.h updates:
1186       Support HighPoint RocketRAID controller under FreeBSD
1187
1188  [MS] knowndrives.cpp updates:
1189       - Added Western Digital RE3 32MB cache variants
1190       - Added WD Caviar Green 32MB cache variant (WD10EADS)
1191       - Added WD Scorpio Black family
1192
1193  [DG] Accept half healthy (and half unhealthy) indication from the
1194       SMART RETURN STATUS. This makes allowance for SAT implementations
1195       (e.g. via USB) that truncate the SCSI sense buffer to 18 bytes.
1196       This truncation causes the SMART RETURN STATUS indication to be
1197       half health or unhealthy. If the half indication is used, then
1198       warn if '-r ioctl' is given.
1199
1200  [MS] knowndrives.cpp updates:
1201       - Added Apple SSD
1202       - Added Seagate U8 family
1203
1204  [DL] os_freebsd.cpp:
1205       Added support for CHECK_POWER_MODE and WRITE_LOG commands
1206
1207  [MS] knowndrives.cpp update:
1208       There seem to exist WD Raptors with SATA II interface, add them.
1209
1210  [MS] knowndrives.cpp updates:
1211       - Added remaining Seagate Barracuda 7200.11 drives
1212       - Added HP 1TB SATA disk
1213
1214  [MS] knowndrives.cpp updates:
1215       - Added Maxtor 92040U6 (DiamondMax Plus 6800)
1216       - Added Seagate Maxtor DiamondMax 21 500GB version
1217       - Added QUANTUM FIREBALLlct15 22
1218       - Added QUANTUM FIREBALL CR6.4A
1219       - Added QUANTUM FIREBALLP LM20.4
1220       - Added SUN branded Toshiba MK4019GAX
1221       - Added TOSHIBA MK1016GAP and relatives: MK1[05]1[67]GAP
1222       - Added Western Digital WD800AB and WD2500AB
1223       - Some Hitachi 7K160 drives have garbage at end of name: permit it
1224
1225  [CF] Add smartd '-n powermode,N' directive parameter to limit the
1226       number of skipped checks. Thanks to Michal Hlavinka for the patch.
1227
1228  [MS] knowndrives.cpp updates:
1229       - Added Hitachi Endurastar J4K30/N4K30
1230       - Added Hitachi Travelstar 4K120 series
1231       - Some Hitachi 7K80 drives have garbage at end of name: permit it
1232       - IBM Travelstar 6GN series
1233
1234  [MS] knowndrives.cpp updates:
1235       - Added Quantum Fireball ST4300A
1236       - Added Asus-Phison SSD (solid state disk)
1237       - Added Seagate DB35.3 Series
1238       - Added remaining disks of the Seagate SV35.2 Series
1239
1240  [MS] Fix trivial compile error with "-pedantic"
1241
1242  [MS] Workaround for huge raw values of Reallocated_Sector_Ct and
1243       Reallocated_Event_Ct for newer Fujitsu disks (only the lower
1244       16 bits seem to be meaningful). Clip the display to 16 bits
1245       and show the remaining part, if existent, in parens. Patch by [CF].
1246
1247  [CF] smartd DEVICESCAN: Fix autodetection of SAT devices.
1248       Thanks to Stanislav Brabec for bug report and testing.
1249
1250  [MS] knowndrives.cpp update:
1251       Convert file to full string regex: remove "^$" from pattern
1252
1253  [MS] knowndrives.cpp updates:
1254       - Added Seagate Momentus 5400 PSD series (hybrid drives)
1255       - Added Seagate Momentus 7200.3 series
1256       - Added Hitachi Deskstar 7K250 (SUN branded)
1257       - There are Hitachi Travelstar 5K250 drives with capital "HITACHI"
1258       - Correct regex for Maxtor VL 30 drives
1259
1260  [CF] Add configure options '--enable-savestates' and
1261       '--with-savestates=PREFIX' to enable smartd persistence
1262       ('-s' option) by default.
1263
1264  [CF] smartd: Add '-s ([cnr]/../.././..)' directive to run scheduled
1265       selective self-tests. Useful to perform full tests of large disks
1266       not running 24x7.
1267
1268  [CF] Allow to read local drive database entries from optional file
1269       '${sysconfdir}/smart_drivedb.h'.
1270       Add configure options '--enable-drivedb' and '--with-drivedbdir=DIR'.
1271       If specified, drive database is read from '${drivedbdir}/drivedb.h'.
1272       (default '${prefix}/share/smartmontools/drivedb.h'). This file
1273       is build from knowndrives.cpp.
1274
1275  [MS] knowndrives.cpp updates:
1276       - Added 640GB variants of Western Digital AAKS and AACS drives
1277       - Added Western Digital AV ATA family
1278       - Added 160GB variant of Hitachi P7K500
1279       - Added 500GB variant of Hitachi 7K1000
1280       - Some cleanup for Quantum disks
1281       - Added Seagate Maxtor DiamondMax 22 family
1282
1283  [CF] Use full string match for regexp in drive database.
1284
1285  [CF] Add option '-d sat+TYPE' to use SAT with controllers which
1286       require option '-d TYPE'. Should work with '-d sat+megaraid,N'.
1287       As a side effect, '-d usbcypress+TYPE' is also supported.
1288
1289  [CF] Add parser to read drive database from a file. Add '-B' option
1290       to smartctl and smartd to specify database file name. File syntax
1291       is identical to the C/C++ syntax used to inialize the internal
1292       database array.
1293
1294  [CF] New syntax for drive database: Specify presets by strings
1295       with '-v' and '-F' options. Use empty strings instead of NULL.
1296
1297  [JPH] Added Linux support for viewing disks behind MegaRAID
1298        controllers
1299
1300  [CF] smartd: Improve min/max temperature recording in conjunction
1301       with '-s' option.
1302
1303  [CF] Add a wrapper class for FILE *.
1304
1305  [CF] smartd: Add experimental support for state persistence (ATA only).
1306       Add option '-s' to specify path prefix for state files.
1307       Rework scheduled self-test detection to support persistence.
1308       If any test schedules are within downtime, the highest priority
1309       test is run after next startup.
1310
1311  [CF] Remove casts from 'format_ata_string()' calls.
1312
1313  [CF] Minor changes to fix errors and warnings from Cygwin gcc 4.3.0.
1314
1315  [CF] smartd: Remove SCSITIMEOUT code. According to smartd.h 1.54 CVS log
1316       from 2003-10-27, it did never work.
1317
1318  [CF] Remove dependencies ataprint.cpp and scsiprint.cpp from smartd.
1319       Move common ATA functions from ataprint.cpp to atacmds.cpp.
1320       Module scsiprint.cpp was apparently never used in smartd.
1321
1322  [CF] Move smartd local declarations from smartd.h and utility.h to
1323       smartd.cpp. Remove smartd.h.
1324
1325  [CF] Fixed extra '\n' in "Offline data collection status" output.
1326       Thanks to Alexander Shaduri for the patch.
1327
1328  [CF] smartd: Separate device configuration data from device state data.
1329       Use references instead of pointers for configuration and state data.
1330
1331  [CF] Add const-correctness and static to ATA support functions.
1332
1333  [CF] Add a wrapper class for regex.
1334
1335  [CF] Simplify 'create_vendor_attribute_arg_list()'.
1336
1337  [CF] smartd: Rework of main data structures. Remove explicit memory
1338       allocations, use STL containers and structs with value semantics
1339       instead. Remove old malloc/free based memory management helper
1340       functions unless old interface is still in use.
1341
1342  [CF] Linux: Cleanup device scan, remove name list, create objects directly.
1343
1344  [CF] Linux: Cleanup smart_device::open(), type strings are no longer used.
1345
1346  [CF] Remove CONTROLLER_* defines and variables unless old interface
1347       is still in use.
1348
1349  [CF] Linux: Migrate 3ware interface to 'ata_pass_through()'.
1350       Multi-sector support is not complete yet. 48-bit commands
1351       possibly work.
1352       WARNING: Not tested, please review code before first test!
1353
1354  [CF] Linux: Migrate os_linux.cpp to new interface.
1355
1356  [CF] Add direct access to 16-bit registers in 'ata_in/out_regs_48bit'.
1357
1358  [CF] Add 'ata_cmd_is_ok()' parameter check,
1359       remove 'ata_pass_through_28/48bit()' functions.
1360
1361  [CF] Add CVS date/time from cvsversion.h to man pages also.
1362
1363  [CF] Add configure option '--with-os-deps='os_module.o ...' to specify
1364       alternate OS interface modules. Useful for testing during migration.
1365
1366  [CF] Remove declarations of 'optarg', 'optind', ..., include <unistd.h>
1367       instead. This fixes 'auto-importing' linker warnings on Cygwin.
1368
1369  [CF] Add '-l sataphy[,reset]' to print SATA Phy Event Counters.
1370
1371  [CF] Add '-l gplog,ADDR[,FIRST[-LAST|+SIZE]]' and '-l smartlog,...'
1372       to dump any log page accessible via GP or SMART read log commands.
1373
1374  [CF] Enhance '-l directory' to print both GP and SMART Log directories.
1375       Add '-l directory[,gs]' modifiers to select GP or SMART log.
1376       Enhance 'ata_cmd_in' parameter struct for 48-bit commands.
1377
1378  [CF] Windows: Add full ATA pass through support including 48-bit commands.
1379
1380  [CF] Windows: Migrate os_win32.cpp to new interface.
1381
1382  [CF] SAT: Add full ATA pass through support including 48-bit commands.
1383
1384  [MS] knowndrives.cpp update
1385       - Added FUJITSU MHZ2250BS G2 and family
1386
1387  [MS] knowndrives.cpp updates
1388       - Added Maxtor DiamondMax 60 94098H6
1389       - Added Maxtor DiamondMax 1280 84000A6 and family
1390       - Added Maxtor DiamondMax VL 30 31536H2 (ATA100) and family
1391       - Some Seagate Barracuda 7200.9 have garbage at end of name: permit it
1392       - Added Seagate Barracuda ATA ST320430A and family
1393       - Regression from previous checkin: add WD RE2 WD...0ABYS again
1394       - Added WD RE3 WD5002ABYS and family
1395       - Added Quantum Fireball CR13.0A
1396       - Added Hitachi Travelstar 5K250 HTS542525K9SA00 and family
1397       - Added WD AC420400D and add whole range of AC.... which
1398           have 5400rpm or higher (i.e. PIO-only drives omitted)
1399
1400  [MS] knowndrives.cpp updates
1401       - WD: Separated entries for EIDE and SATA
1402       - WD: Separated entries for Caviar SE, SE16, RE, RE2
1403       - WD Named: WD Caviar AC series
1404       - WD Renamed: WD Caviar RE/RE2 -> WD RE/RE2
1405       - WD Renamed: WD Caviar SE/SE16 WD....AA[A-Z][A-Z] -> WD Caviar Blue
1406       - WD Renamed: WD Scorpio WD....BEV[A-Z] -> WD Scorpio Blue
1407       - Added WD Scorpio Blue WD3200BEVT
1408       - Added WD RE2 WD5001ABYS and family
1409       - Added WD Caviar Green WD5000AACS and family
1410       - Added WD VelociRaptor WD3000GLFS and family
1411       - Added Seagate Barracuda ES.2 ST31000340NS and family
1412       - Added Samsung SP80A4H
1413       - Added Maxtor DiamondMax 21 STM3160215AS and STM3320620AS
1414       - Added Seagate Barracuda 7200.7 ST380819AS
1415       - Added Maxtor DiamondMax 10 6B100P0
1416       - Added Seagate SV35.2 Series
1417       - Added Fujitsu MHY2120BH and family
1418       - Added Fujitsu MHW2080BH PL (PL variant)
1419       - Added Toshiba MK3252GSX and family
1420
1421  [BA] Fix smartctl bug: when running in silent mode '-q errorsonly'
1422       do not print the Selective Self-test log.  Any errors will
1423       ALREADY appear in the SMART Self-test log.
1424
1425  [CF] Add missing 'const' and other minor fixes to prevent gcc warnings.
1426
1427  [OB] Added information message about supported Areca firmware versions.
1428       It's displayed in case the ATA device identification fails.
1429
1430  [CF] Add configuration file for Doxygen.
1431
1432  [CF] Add new object oriented interface to access ATA and SCSI devices.
1433       smartctl and smartd are modified to use the new classes in
1434       'dev_interface.{h,cpp}'. The template class in 'dev_tunnelled.h'
1435       is used in 'scsiata.cpp'. The code in 'dev_ata_cmd_set.{h,cpp}'
1436       supports migration from old function 'ata_command_interface()'.
1437       All existing 'os_*.cpp' modules should still work without any changes.
1438       The required adapter classes from 'dev_legacy.cpp' are automatically
1439       added by configure if necessary.
1440
1441  [BA] Updated smartd and smartctl and smartd.conf man-page documentation
1442       to reflect support for Areca SATA RAID controller cards.
1443
1444  [OB] Added support for Areca controllers to smartd. Extensive tests
1445       as well as documentation are still pending however.
1446
1447  [OB] Implemented device locking for Areca controllers in smartctl
1448
1449  [BA] Fixed selective self-test code.  Data structure revision number
1450       may be != 1 if no selective self-test has ever been run.  Host
1451       MUST set this value (at least at the first selective self-test
1452       instance).  Thanks to Curtis Stevens of WDC for clarification.
1453
1454  [MC] usbcypress autodetection
1455
1456  [BA] Starting to commit Areca code.  For now just smartctl.
1457       More changes and documentation coming soon.
1458       Need Areca firmware version 1.45 dated 10 June 2008 or later.
1459       May need changes in opening /dev/sg and file locking.
1460       Many thanks to Hank Wu!
1461
1462  [CF] smartd: Fix too small name buffer for 3ware with >100 devices.
1463
1464  [JH] now C++ Support for QNX Target
1465       already tested for QNX 6.3.2 on x86 and armle target
1466   
1467  [CF] Allow to set BUILD_INFO from make command line.
1468
1469  [CF] Windows: Add MSVC8 support, remove MSVC6 project files.
1470
1471  [MC] Add usbcypress device support for smartd.
1472
1473  [CF] Add output of latest CVS date/time stamp to version info.
1474       New file cvsversion.h is generated by Makefile.
1475       Move formatting of version info to utility.cpp.
1476
1477  [AR] Fix bug in 3ware node creation where nodes would be created
1478       then deleted, then recreated.
1479
1480  [BA] Add missing CCISS cvs version tags to '-V' printouts.
1481
1482  [TS] Linux: Ensure the 3ware device nodes are created with a correct
1483       SELinux security context.
1484
1485  [AR] Add support for up to 128 devices on 3ware controllers.
1486
1487  [CF] C++: Added new main() with exception handlers, replaced
1488       exit(x) with throw(x), removed global variable 'exitstatus'.
1489       Necessary for future changes, because exit() does not call
1490       any destructors.
1491
1492  [SS] FreeBSD: plug file descriptor leak in smartd (only happens with
1493       CISS devices).  Reported by Vadim Ostranitsyn.
1494
1495  [SS] FreeBSD: allow smartctl to interact with SCSI /dev/pass devices,
1496       thus enabling it to work with RAID controllers that expose disks
1497       via these devices.  From scottl@ via FreeBSD ports.
1498
1499  [MC] Add usbcypress device support for smartctl.
1500
1501  [KS] INSTALL on Solaris: updated description to use C++ compiler.
1502
1503  [KS] configure.in on Solaris: added options for Sun's compiler to
1504       suppress trivial warnings.
1505
1506  [KS] configure.in on Solaris: added direction to search suitable
1507       libraries for getaddrinfo().
1508
1509  [TS] smartd on Linux: remove forgotten return from deviceopen();
1510       SCSI device descriptors had the FD_CLOEXEC flag unset.
1511
1512  [CF] Added 'const' to avoid warning on depreciated string constant
1513       to 'char *' conversion.
1514
1515  [CF] autogen.sh: automake 1.10.1 is OK. Updated message texts.
1516
1517  [BA] removed smartmontools.spec file (now in CVS Attic).  This
1518       was not being used by RH or FC anyhow, and was out of
1519       date and not maintained.
1520
1521  [BA] smartd on Linux: sets FD_CLOEXEC on the opened device file
1522       descriptor.  The descriptor is otherwise leaked to other
1523       applications (mail sender) which may be considered a security
1524       risk and may result in AVC messages on SELinux-enabled systems.
1525       Thanks to: Tom�metana" <tsmetana@redhat.com>.
1526
1527  [BA] smartd: when sending email, to gather information about the
1528       host for the body of the email, eliminate gethostbyname()
1529       in favor of the IPv6-friendly function getaddrinfo() if the
1530       latter is available.  Info may be found here
1531       http://udrepper.livejournal.com/16116.html
1532       and here
1533       http://people.redhat.com/drepper/userapi-ipv6.html
1534       Thanks to: Tom�metana" <tsmetana@redhat.com>.
1535
1536       Smartmontools developers: please check that smartd still LINKS
1537       properly on your systems.
1538
1539  [BA] Fix ugly syntax bug in os_freebsd.cpp.  How did this go
1540       undetected for so long??
1541
1542SMARTMONTOOLS STABLE RELEASE 5.38 2008/03/10
1543
1544  [KS] Solaris/x86: modified configure.in for Sun's compiler.
1545
1546  [BA] smartd.initd.in addition from Erwan Velu <erwan@seanodes.com>
1547
1548  [BA] smartd fixes:
1549
1550       - On Linux, DEVICESCAN now automatically recognizes SATA devices
1551         behind libata, and SATA devices behind the Marvell driver, and
1552         treats them correctly.
1553
1554       - On Linux, a '-d sat' or '-d marvell' is automatically added
1555         if libata or the marvell driver are recognized behind a SCSI
1556         device type
1557
1558  [SS] (Maybe) fix attribute autosave in FreeBSD.
1559
1560  [SS] Major NetBSD-specific bugfixes:
1561       - handle actual SCSI and ATA errors and not only ioctl() errors;
1562       - set up I/O request properly for AUTO_OFFLINE and AUTOSAVE commands (inspired by
1563         similar change in os_freebsd.cpp);
1564       - handle AUTO_OFFLINE and AUTOSAVE like STATUS_CHECK (like os_linux.cpp does).
1565
1566  [GG] add kfreebsd gnu support to configure.in
1567
1568  [BA] Fix auto-offline support in FreeBSD.  Thanks to
1569       Cyrus Rahman <crahman@gmail.com> for the patch, and
1570       Eduard Martinescu for blessing it.
1571
1572  [DG] smartd re-opens "SCSI" devices as ATA devices if a SAT layer is
1573       detected (smartd bug IMO). In Linux this upsets scsi generic
1574       device nodes (e.g. /dev/sg0). Detect the re-open in os_linux.cpp
1575       and set the O_RDWR flag (ATA uses the O_RDONLY flag).
1576
1577  [CF] Drive database: Added Fujitsu MHW2 BH, Maxtor DiamondMax 17, 20, 21,
1578       Hitachi Travelstar 4K40, 5K120, 7K200, Deskstar 7K160, T7K500,
1579       T7K1000, Toshiba 1.8", Seagate Momentus 5400.3, 5400.3 ED, 7200.2,
1580       Barracuda 7200.11 and ES.
1581       Updated Toshiba 2.5", Seagate Barracuda 7200.9 and 7200.10.
1582       Added missing "(Hitachi )?" to Travelstar entries.
1583
1584  [CF] Drive database: Added several Western Digital Caviar and Scorpio
1585       drives, added Caviar RE EIDE family.
1586
1587  [CF] Drive database: Added Samsung P80 series with *-25 firmware.
1588
1589  [CF] Replaced 'head [-n] -1' by 'sed 1...' in autogen.sh to avoid
1590       portability issues.
1591
1592  [BA] Fixed autogen.sh script so that it uses 'grep -n 1' if 'grep -1'
1593       fails.  Needed for Mac OS X 10.4. Uck.
1594 
1595  [CF] Windows: Added IOCTL_STORAGE_PREDICT_FAILURE. This allows access
1596       to ATA SMART status and data if other calls do not work.
1597       Thanks to Jaroslaw Kowalski for pointing this out.
1598       Added support to use this function without admin rights.
1599
1600  [CF] Added ATA-8 revision 4c message text.
1601
1602  [CF] Added compiler.h to cciss_ioctl.h header check to prevent
1603       configure warning.
1604
1605  [SS] DragonFly support added (using os_freebsd code; untested).
1606
1607  [CF] smartctl: Fixed ATA identify byte swapping issue on big-endian
1608       platforms. This regression was introduced by the change for
1609       '-F swapid'. Thanks to Matthew Butch for bug report and testing.
1610
1611  [DG] SAT/SCSI: Improve SAT error processing code. Aborted commands from
1612       ATA devices (typically because SMART was disabled) were not being
1613       properly detected.
1614
1615  [GG] smartd: wait for the pid file to show up, return an error if it doesn't
1616
1617  [JH] fix bad return code (get STATUS) for QNX Part
1618
1619  [JH] initial porting to QNX Neutrino 6.3.2
1620       need at this time a prerelease devb-eide driver and libcam.so.2
1621       only tested for X86 Target, but devb-eide and lobcam.so.2 available for X86/ARM
1622       the officional driver coming soon with the next QNX release
1623       create two new source files os_qnxnto.[c..h]
1624
1625  [CF] smartd: Added option '-n, --no-fork' so that smartd works
1626       better with modern init methods. Thanks to Enrico Scholz
1627       for the patch from 2005-12-24.
1628
1629  [CF] Windows: Improved ATA/SCSI device type detection and
1630       DEVICESCAN. This also fixes a regression in 3ware DEVICESCAN.
1631
1632  [CF] smartd: Don't start self tests in first pass to avoid
1633       performance problems during boot.
1634       https://bugzilla.novell.com/show_bug.cgi?id=192591
1635
1636  [CF] Fixed regression in SMART STATUS command on Win9x/ME.
1637
1638  [BA] Fixed 3ware issue with new controllers.  Documentation said
1639       that one could address up to 24 disks on a single controller,
1640       but in fact one was limited to 16 disks.  This is now fixed:
1641       up to 32 disks can be addressed.  Thanks to Adam Radford.
1642
1643       NOTE1: I have patched the Linux and FreeBSD code but not
1644       modified the Win32 code (it already supports up to 32 disks).
1645
1646       NOTE2: NOT TESTED ON LINUX.  Do not use this on a production box!
1647       I will remove this NOTE2 as soon as some positive test
1648       reports are recieved.
1649
1650       NOTE3: NOT TESTED ON FREEBSD. Do not use this on a production box!
1651       I will remove this NOTE3 as soon as some positive test
1652       reports are recieved.
1653
1654  [CF] Windows installer: Added explorer drive menu, CMD window,
1655       UBCD4Win plugin, smartd service update and other minor
1656       improvements.
1657
1658  [CF] Windows: Modified drive letter handling for explorer drive
1659       context menu: try SCSI if type is unknown, allow 'X:\.' syntax.
1660
1661  [CF] Windows: Added automatic ATA/SCSI device type detection and
1662       SCSI device scanning. The device names '/dev/sdX' and
1663       '/dev/pd<n>' now work for both ATA and SCSI disks.
1664
1665  [CF] smartctl: Added ability to parse '-r ataioctl,2' output from
1666       stdin ('-') and simulate the ATA commands for testing purposes.
1667
1668  [BA] SMART Attributes: added 187, 189, more accurate name for 190.
1669
1670  [CF] Windows: Added drive letters 'X:' as alternate disk device names.
1671
1672  [CF] smartctl: Added '-F swapid' to fix ATA identify string byte
1673       ordering. Added '-q noserial' to suppress serial number output.
1674
1675  [CF] Windows: Added '/dev/n?st<n>' as alternate device names for SCSI
1676       tapes. These names are also used by Cygwin's /dev emulation layer.
1677       Thanks to Corinna Vinschen (Cygwin project lead) for pointing this
1678       out.
1679
1680  [CF] Windows: Added IOCTL_SCSI_MINIPORT_*SMART* for commands not handled
1681       properly by SMART_IOCTL in disk class driver. This allows to use
1682       READ_LOG, WRITE_LOG and ABORT_SELFTEST even if the driver does not
1683       support ATA_PASS_THROUGH.
1684
1685  [CF] Added ATA-8 revision 4, fixed WRITE LOG '-r ioctl' output.
1686
1687  [BA] Updated smartctl and smartd so that they can be used with the latest
1688       3ware controllers which have 24 ports.  Also updated docs.
1689       Thanks to Tim Bell at CERN.
1690
1691  [GG] bit 4 in smartctl's return code might be set even when the dist check
1692       didn't return "DISK OK"
1693
1694  [CF] Drive database: added '-F samsung3' for Samsung P80 firmware
1695       BH100-35.
1696
1697  [SS] Applied patch from Dean Bennett to fix scheduled tests on
1698       Highpoint RAID controllers.
1699
1700  [BA] Added patch from Tejun Heo http://thread.gmane.org/gmane.linux.ide/13222/focus=13235
1701       to fix broken auto-offline and auto-save via libata.  Very clean fix: does it
1702       "the right way".  Thanks Tejun!
1703
1704  [CF] Added message text for ATA-7 self-test execution status 8
1705       ("... handling damage").
1706
1707  [GG] cciss: support more than 16 disks (patch taken from
1708       http://cciss.sourceforge.net/smartmontools_cciss_more_than_16_drives.patch
1709       and adjusted for smartd)
1710
1711  [DG] Solaris: [SCSI] add USCSI_RQENABLE flag to uscsi pass-through so
1712       sense buffer is made available. Expand reporting at this level.
1713
1714  [GK] Darwin: Improve handling of powered-down drives.
1715
1716  [SS] CCISS physical drive enumeration method changed (incompatibly).
1717
1718  [CF] Fixed smartd crash on missing '-s' directive argument.
1719
1720  [SS] Support CCISS on FreeBSD (kernel source is required until FreeBSD PR 109813
1721       is fixed).
1722
1723  [DG] SCSI/TAPE: some IBM tape drives don't react properly to a LOG
1724       SENSE with an allocation length of 4; work around for that case.
1725
1726  [CF] Applied Guido's patch to fix CCISS LUN array bounds check
1727       (openSUSE bug #239956) and remove trailing spaces in
1728       os_linux.cpp.
1729
1730  [CF] Fixed 64-bit compilation issue in SCT status struct.
1731
1732  [DG] SAT/SCSI: make real SCSI disks visible to DEVICESCAN in
1733       smartd again.
1734
1735  [CF] Fixed check of SCT temperature table size.
1736
1737  [CF] Added ATA-8 draft revisions, added SCT status format 3.
1738
1739  [CF] Drive database: added Samsung T166 series.
1740
1741  [CF] ATA: Added ',p' option for '-t scttempint,N' to make
1742       setting persistent.
1743
1744  [CF] ATA: Added '-t scttempint,N' option to set SCT temperature
1745       logging interval.
1746
1747  [CF] ATA: Added '-l scttemp[sts,hist]' options to print disk
1748       temperature information and history table provided by
1749       SMART Command Transport (SCT) Feature Set.
1750
1751  [CF] ATA: Added '-t selective,{redo,next,cont}' commands to
1752       perform tests based on the last ranges still stored on
1753       disk. Added 'N+SIZE' and 'N-max' format for LBA range
1754       specification.
1755
1756  [CF] Added Min/Max Temperature format used in attribute 190 of
1757       recent Maxtor disks (DiamondMax 20).
1758
1759  [CF] Linux: Added check for <linux/cciss_ioctl.h> to allow build
1760       (without CCISS support) also when this file is missing.
1761
1762  [CF] Added -F samsung3 option to correct firmware bug reporting
1763       completed self-tests as still in progress. Thanks to Manfred
1764       Schwarb for the patch.
1765
1766  [CF] Added missing const specifiers (undetected by gcc 3.4 and 4.X)
1767       to fix compilation with gcc 2.X.
1768
1769  [CF] Linux: compile fix for SuSE, config.h must be included first.
1770
1771smartmontools 5.37 Experimental Release
1772
1773  [CF] Windows: Added alternate method for (limited) monitoring of
1774       3ware controllers by parsing the output of CLI or 3DM.
1775       Either "tw_cli" can be run internally ("/dev/tw_cli/cx/py"),
1776       or data can be read from standard input ("/dev/tw_cli/stdin")
1777       or clipboard ("/dev/tw_cli/clip").
1778
1779  [DG] Remove linux specific libata detect code; rely on general SAT
1780       code. smartd should now generate a sensible log message for
1781       ATA devices behind a SAT layer on all architectures.
1782
1783  [BA] Increased max line length MAXLINELEN for /etc/smartd.conf from
1784       128 to 256 characters to handle long strings in
1785       /dev/disk/by-id.  Thanks to Martin Krafft.
1786
1787  [PW] Drive database: added missing drives from Seagate Momentus 5400.2
1788       family
1789
1790  [BA] Finished Christian's fix (next item below) by removing
1791       LINUX_86_64 hack from configure.in.
1792
1793  [CF] Fixed inclusion of PRI?64 macros from inttypes.h.
1794
1795  [CF] Windows: Added WRITE LOG to support selective self tests.
1796
1797  [CF] Fix selective self test log revision number if '-T permissive'
1798       is specified (Tested with Samsung HD401LJ).
1799
1800  [CF] Windows: Fixed int64 printf format for MinGW runtime.
1801
1802  [PW] Drive database: added Seagate Barracuda 7200.10 family, Seagate
1803       Momentus 42 family, Maxtor DiamondMax 60 ATA 66 family, Maxtor
1804       DiamondMax 60 ATA 100 family, and Western Digital Caviar Serial
1805       ATA family
1806
1807  [PW] Drive database: added missing drives from Seagate Barracuda
1808       7200.9 family, Seagate Barracuda 7200.7 family, Seagate Momentus
1809       7200.1 family, Toshiba 2.5" HDD family (80 GB and above), Western
1810       Digital Caviar RE Serial ATA family, Hitachi Deskstar 7K80 family,
1811       and Maxtor DiamondMax 4320 Ultra ATA family
1812
1813  [BA] Linux: compile fix for SuSE.  Check for existence
1814       of linux/compiler.h and include in os_linux.h if
1815       present.  Thanks to SB.
1816
1817  [BA] smartd: DEVICESCAN will now pick up SATA/SAT devices
1818       attached to a SCSI device tree via SAT translation.
1819       Note: this is a bit of a hack.  I will document it once
1820       I know if this needs to be Linux only or can have more
1821       general application.
1822
1823  [BA] Added a couple SATA commands to the tables -- thanks DG!
1824       Phil -- how about going through and systematically adding
1825       these new commands to atacmdnames.cpp?
1826
1827  [BA] Linux s86_64: get rid of some compiler warnings on
1828       x86_64 Linux systems.
1829
1830  [CF] Windows: Added missing support for READ_LOG, ABORT_SELFTEST
1831       and CHECK_POWER_STATE for 3ware 9000 controllers. Thanks to
1832       Greg de Valois for implementing this new ioctl in the driver.
1833
1834  [PW] Drive database: added Seagate NL35 SATA family.  Thanks to Kai
1835       Harrekilde-Petersen for providing a patch.
1836
1837  [DG] [SCSI, Windows] add SPT interface for NT and later. New device
1838       names are "pd<n>", "sd<l>" and "tape<n>".
1839
1840  [PW] Drive database: added Western Digital Scorpio family, Fujitsu MHV
1841       family, Maxtor MaXLine Pro 500 family, and Maxtor DiamondMax 11
1842       family
1843
1844  [PW] Drive database: added missing drives from Toshiba 2.5" HDD
1845       (30-60 GB) family, Maxtor DiamondMax 10 family, Seagate Barracuda
1846       7200.8 family, Fujitsu MHT family, and Maxtor DiamondMax Plus 8
1847       family
1848
1849  [SB] Added examplescripts/Example4 using powersave-notify.
1850
1851  [SB] More temperature monitoring examples in smartd.conf with DEVICESCAN.
1852
1853  [SB] Minor improvements of SuSE part of init script.
1854
1855  [CF] Drive database: added Samsung P80 series, P120 series, SP8004H
1856       and T series.
1857
1858  [GG] Add CCISS (Compaq Smart Array Controller) support with contributions
1859       from Praveen Chidambaram, Douglas Gilbert, Guido Guenther and Fr�ric
1860       BOITEUX
1861
1862  [PW] Drive database: added Hitachi Deskstar T7K250 and Hitachi
1863       Deskstar 7K500 series.  Thanks to L. J. Wu for providing a
1864       patch
1865
1866  [PW] Drive database: added Maxtor MaXLine III family, Seagate U7
1867       family, Seagate ST34321A, FUJITSU MHM2060AT, FUJITSU MHT2040AS,
1868       Western Digital Caviar SE16 family, IBM Travelstar 4GT family,
1869       QUANTUM FIREBALLP KA9.1, QUANTUM FIREBALL SE4.3A, TOSHIBA
1870       MK1032GAX, TOSHIBA MK4026GAX
1871
1872  [PW] Drive database: added missing drives from Western Digital Caviar
1873       SE (Serial ATA) and WD Raptor families
1874
1875  [CF] Windows: Added support for 3ware 9000 controllers using extended
1876       SMART functionality in new 3ware driver. This includes DEVICESCAN
1877       support for at most 2 controllers. Thanks to Greg de Valois from
1878       AMCC/3ware for new driver features, development support and
1879       hardware for testing.
1880
1881  [SZ] smartd: Support HighPoint RocketRAID controller under GNU/linux
1882
1883  [DG] [SCSI] First cut for '-l background' to show background scan
1884       results log
1885
1886  [SZ] smartctl: Support HighPoint RocketRAID controller under GNU/linux
1887
1888  [KS] C++ compile fixes for Solaris with a few cleanups.
1889
1890  [BA] C++ compile fixes for Darwin (thanks to CF)
1891
1892  [CF] Removed old *.c files (now in CVS Attic).
1893
1894  [CF] Added changes for C++ to platform independent and Windows
1895       related files.
1896
1897  [BA] Tagged last .c Version with PRE_MOVE_TO_CPP. Copied *.c,v
1898       to *.cpp,v in CVS repository to preserve history of source
1899       files. Removed sm5_Darwin repository.
1900
1901  [CF] smartctl: Added -n option to skip checks when disk is in
1902       low-power mode.
1903
1904  [CF] Windows: Added alternate system call for power state check
1905       because the PASS THROUGH calls may spin up the disk.
1906
1907  [CF] smartd: Modified power state logging to report state changes
1908       instead of standby condition.
1909
1910  [CF] smartd: Ignore -n directive on scheduled self tests.
1911
1912  [DG] [SCSI] Make start stop cycle counter log page decoding
1913       more robust
1914
1915  [DG] Modify smartctl (but not smartd) to detect probable ATA
1916       devices behind a SAT layer. In the absence of an explicit
1917       device type, change to device type 'sat'.
1918
1919  [DG] Add indication that controller (device) type has been
1920       explicitly set. Preparation for automatic detection of
1921       'sat' device type unless user specifies a device type.
1922
1923  [SS] NetBSD: Deliver strings from ata_identify_device properly
1924       on little- and big-endian platforms.
1925
1926  [BA] Added published ANSI ATA-7 spec to list of recognized ATA
1927       versions.
1928
1929  [BA] Code janitor: added missing header strings for '-V' option.
1930
1931  [DG] [SATA] Extend 'sat' device type to allow either 12 or 16 byte
1932       variant of the SAT ATA PASS THROUGH SCSI command. Syntax is
1933       '-d sat,<n>' where <n> can be 0, 12 or 16 . The ',<n>' part
1934       is optional. Currently defaults to 16 byte variant but that
1935       could be made platform or even device dependent.
1936
1937  [DG] [SATA] Add new 'sat' device type for SATA disks behind a
1938       SCSI to ATA Translation (SAT) Layer (SATL). Uses the ATA
1939       PASS THROUGH (16) SCSI command thence the generic SCSI
1940       passthrough for each platform.
1941
1942  [CF] Windows: Added script and make targets to create installer
1943       with NSIS (http://nsis.sourceforge.net/)
1944
1945  [CF] Updated hostname and links for new SourceForge CVS service.
1946
1947  [CF] smartd: Added '-W' directive to track temperature changes
1948       and warn if temperature limits are reached.
1949
1950  [CF] Windows: Added IOCTL_ATA_PASS_THROUGH (Win2003, XP SP2)
1951       for commands unsupported by SMART_IOCTL. Added device
1952       specific options to select subset and ordering of the ATA
1953       IOCTLs actually used. These options are specified as
1954       modifiers of the device name (/dev/hd[a-j]:[saic]+)
1955
1956  [CF] Windows: Added support for drives 4-7 (/dev/hd[e-h]) via
1957       SMARTVSE.VXD on Win9x/ME. Thanks to Dariusz Rzonca for
1958       patch and testing.
1959
1960  [DG] [SCSI/SATA linux] from lk 2.6.17 SATA disk identification in
1961       libata will change. Expand LibAta detection to see old
1962       identifier and new variant (VPD page 0x83).
1963
1964  [BA] Identified Attribute 190 for Western Digital disks.  This
1965       stores temperature in Celsius, just like Attribute 194.
1966       But it has a failure threshold set to correspond to the
1967       maximum design operating temperature of the disk, which
1968       is 55 Celsius on the WD800JD drives that I studied.
1969       So if this Attribute has 'failed
1970       in the past' this means that the maximum disk operating
1971       temperature has been exceeded.
1972
1973  [GK] Darwin: Add support for AHCI drivers found in Intel-based Macs.
1974
1975smartmontools 5.36 Stable Release
1976
1977  [BA] Linux: smartd/smartctl issue syntax hints to user if 3ware
1978       disk controller present with EITHER 3ware OR AMCC vendor
1979       name, and user syntax incorrect.
1980
1981  [BA] Update copyright dates to 2006.
1982
1983  [DG] [SCSI] Loosen sanity check on Seagate/Hitachi factory information
1984       log page so it is not skipped on recent Seagate SCSI disks.
1985
1986  [CF] Added command 'smartd -q showtests' to list test schedules.
1987
1988  [CF] Added command 'smartctl -P showall MODEL [FIRMWARE]' to list
1989       database entries for specific drives and firmware.
1990
1991  [PW] Automatically set -v 9,minutes and -v 194,unknown for Maxtor
1992       DiamondMax D540X-4G drives.
1993
1994  [DG] [SCSI] suppress various outputs when data fails sanity checks.
1995       Correct 'last n error events' log page indexing.
1996
1997  [DG] [SCSI] changed smartctl exit status to reflect any problems in
1998       the most recent 20 self test logs [Leandro Santi]
1999
2000  [DG] [SCSI] Fix process return value when scsiGetSmartData() fails
2001       in smartctl [Leandro Santi]
2002
2003  [BA] Updated docs and error message to reflect Linux libata
2004       support for smartmontools starting with the 2.6.15 kernel
2005       series. Also init script support for the 'tinysofa' release.
2006
2007  [DG] [SCSI] Mask dpofua bit when changing mode pages. Fix failure
2008       of 'smartctl -l error'.
2009
2010  [EM] Fixed a problem with FreeBSD and 3Ware 'twe' devices
2011
2012  [CF] Fixed a regexp in knowndrives table, added regexp syntax check
2013       via 'smartctl -P showall'.
2014
2015  [CF] Cygwin & Windows: Fixed memory leak in function calling
2016       IOCTL_IDE_PASS_THROUGH. Thanks to Fred Schmidt for the problem
2017       report.
2018
2019  [CF] Cygwin: added cygrunsrv support and commands "install", "remove"
2020       and "status" to smartd.initd.
2021
2022  [SS] Fix runtime problems on big-engian NetBSD platforms (patch provided
2023       by Martin Husemann)
2024
2025  [CF] Cygwin smartd: Open smartd.conf in textmode to allow use of
2026       Windows editors.
2027
2028  [CF] Cygwin smartd: Added option '--service' to allow smartd running
2029       as windows service via cygrunsrv. Useful in conjunction with new
2030       syslogd support added in Cygwin 1.5.15.
2031
2032  [CF] Windows: Added patch to avoid output of non-ascii timezone names.
2033
2034  [EM] Incorporate various patches to provide TWE support and support for
2035       multiple 3Ware cards, Power Check Support, and FreeBSD 6.x support.
2036       Thanks to Rudolf Cejka, Frank Behrens, and Jung-uk Kim.
2037
2038  [DG] Silence gcc 4.0.1 compile warning concerning the difference in
2039       "signedness" in pointer assignments. Changes to SCSI code
2040       and os_linux.c .
2041
2042  [PW] Additions to knowndrives table: added missing drive from Quantum
2043       Fireball Plus LM series, added QUANTUM BIGFOOT TS10.0A, added
2044       ExcelStor J680 and J880, added Western Digital Caviar RE Serial ATA
2045       series, added missing drives from Western Digital Caviar SE series,
2046       added Seagate Momentus 4200.2 series, added missing drives from
2047       Maxtor DiamondMax 10 series, added Fujitsu MHG and MHH series, and
2048       added Hitachi Travelstar 5K100 series.
2049
2050  [PW] Additions to knowndrives table: added Fujitsu MHU2100AT, added
2051       Fujitsu M1623TAU, added missing drives from Seagate Barracuda
2052       7200.8 series, added Seagate Momentus 5400.2 series, and added
2053       QUANTUM FIREBALL CR8.4A.
2054
2055  [PW] Additions to knowndrives table: added missing drive from Maxtor
2056       MaxLine II series, added Maxtor DiamondMax 2880 Ultra ATA series,
2057       added Maxtor DiamondMax 17 VL series, added Hitachi Deskstar 7K80
2058       series, and added Hitachi Deskstar 7K400 series.
2059
2060  [CF] Windows: Fixed unsupported 'smartctl -X' on Win2000/XP by using
2061       IOCTL_IDE_PASS_THROUGH instead.
2062
2063smartmontools 5.34 Stable Release [NOTE: never officially released]
2064
2065  [CF] Cygwin & Windows smartd: Increased SCSI DEVICESCAN range
2066       from ASPI adapter 0-3 to 0-9. Added diagnostic messages.
2067
2068  [CF] Windows smartd: Added ability to run .bat files via '-M exec'
2069       directive.
2070
2071  [CF] Cygwin smartd: Added FreeConsole() after fork() to avoid hang
2072       of terminated shell console window.
2073
2074  [DG] [SCSI] Add code so 'smartctl -A' outputs the number of elements
2075       in the grown defect list. When this number is increasing a
2076       disk has problems. N.B. Similar logic should be added to smartd.
2077
2078  [CF] Windows smartd: Fixed event handling to allow start of another
2079       smartd process when service is already running. Useful for testing
2080       service configuration changes in debug mode.
2081
2082  [PW] Added following drives to knowndrives table: Western Digital Raptor
2083       family, Seagate Barracuda 7200.8 family, Maxtor DiamondMax 2160
2084       Ultra ATA and DiamondMax 10 families, Hitachi Travelstar E7K60
2085       family, Seagate Medalist 17240, 13030, 10231, 8420, and 4310,
2086       TOSHIBA MK4018GAP and MK6022GAX, ExcelStor Technology J360, and
2087       Western Digital Caviar AC14300.
2088
2089  [PW] Added missing Fujitsu MHTxxxxAT and Seagate Barracuda 7200.7 drives
2090       to knowndrives table.
2091
2092  [PW] Added QUANTUM FIREBALLP LM10.2 to knowndrives table.  Thanks to
2093       Mike Fleetwood for submitting the patch.
2094
2095  [KS] Solaris/SPARC: fixed not to disable automatic offline test and
2096       automatic save attributes incorrectly.  Thanks to Roy Badami.
2097
2098  [BA] Linux: smartd init script now recognizes 'trustix' distro.
2099
2100  [DG] [SCSI] Medium and hardware errors were slipping through
2101       unreported. Fix linux SCSI sense reporting via SG_IO ioctl.
2102
2103  [DG] [SCSI] Change lba of first failure in selftest output to
2104       decimal (was hex) to conform with ATA output.
2105
2106  [GK] smartd: Detect most self-test failures even if the hour counter
2107       has wrapped.
2108
2109  [BA] smartctl: list 'marvell' as option if user give invalid
2110       -d argument
2111
2112  [CF] Windows: fixed SCSI timeout handling to allow long timeouts
2113       for selftests.
2114
2115  [CF] Fixed buffer overflow issues in printone() and safe_vsnprintf()
2116       which results in crash on -V option (at least on Windows).
2117
2118  [DG] [SCSI] Add explicit timeouts to INQUIRY and REQUEST SENSE (that
2119       were missed in an earlier patch). Could have impacted freebsd.
2120
2121  [DG] When linux detects a sata_via_libata disk suggest that user try
2122       '-d ata' (rather then '-d libata). Anticipate kernel change.
2123
2124  [YD] Added OS/2 and eComStation platform support.
2125
2126  [PW] Added Seagate U4 family, Fujitsu MHJ and MHK families, Seagate
2127       Barracuda 5400.1, QUANTUM FIREBALLP KX27.3, QUANTUM FIREBALLP KA10.1,
2128       and ExcelStor J340 to knowndrives table.
2129
2130  [DG] [SCSI] After report of Hitachi IC35L073UCDY10 disks locking up
2131       on log page 0x7 (last n error events), check log page (and some
2132       others) is supported (via log page 0x0) before probing.
2133
2134  [CF] Added safe_v?snprintf() for platforms using v?snprintf()
2135       with non standard behaviour on overflow (Windows, old Linux)
2136
2137  [CF] smartd: Added message if check power mode spins up disk.
2138
2139  [CF] Windows: Added support for READ_LOG on WinNT4 using undocumented
2140       pseudo SCSI command via IOCTL_SCSI_PASS_THROUGH.
2141
2142  [CF] smartd: Added ',q' option for '-n' directive to suppress 'skipping
2143       checks' log message. This prevents a laptop disk from spinning up
2144       due to this message. Thanks to Rob MacLachlan and Manfred Schwarb
2145       for pointing out problem & solution.
2146
2147  [CF] Windows: Added function get_os_version_str() to show OS flavor in
2148       copyright message.
2149
2150  [CF] Windows: Added function ata_identify_is_cached() to check for outdated
2151       SMART enabled bit in identify data.
2152
2153  [CF] Windows: Added fix to prevent linkage of smartd specific win32 modules
2154       to smartctl.
2155
2156  [PW] Added Fujitsu MPG3153AH, Hitachi Endurastar J4K20/N4K20 (formerly
2157       DK23FA-20J), Seagate Momentus family, and Maxtor Fireball 3 family
2158       to knowndrives table.
2159
2160  [PW] Added missing Maxtor DiamondMax 16, Seagate Barracuda ATA IV, and
2161       Western Digital Caviar WDxxxAA/WDxxxBA drives to knowndrives table.
2162
2163  [CF] Windows: Added ATA check power mode for smartd -n directive.
2164
2165  [CF] Windows: Fixed use of new service status flag which causes hang
2166       of smartd service on WinNT4.
2167
2168  [CF] Windows: Fixed error checking of IOCTL_IDE_PASS_THROUGH (used
2169       for READ_LOG on 2000/XP). Added some diagnostic messages on
2170       -r ataioctl[,2]. Thanks to Manfred Schwarb for bug report and testing.
2171
2172  [BA] Fixed code bug that made it impossible to enable SMART on
2173       disks with failing health status.  This would happen if the
2174       os_*.c author made STATUS and STATUS_CHECK work the same way.
2175       I have corrected this at a higher level; we now handle the
2176       case where STATUS and STATUS_CHECK are identical without
2177       issues.
2178
2179  [LW] Make os_linux.c/marvell_command_interface() always return 0 on STATUS.
2180       Needed for a disk having bad SMART status.
2181
2182  [CF] smartctl: Added drive family printing.
2183
2184  [CF] autogen.sh: Allow automake 1.9, added message if automake
2185       version is unknown.
2186
2187  [BA] smartctl: use locale-specific separators for printing disk
2188       capacity.  Also use AC_CHECK_HEADERS not AC_CHECK_HEADER in
2189       configure.in.
2190
2191  [BA] clean-up of #include structure so that -V options to smartd
2192       and smartctl work correctly.  Please, don't #include header
2193       files into other header files.
2194
2195smartmontools 5.33 Experimental Release
2196
2197  [BA] smartctl: ATA disks, if SMART ATTRIBUTE THRESHOLDS page has ID
2198       errors with some Attributes having NULL IDs, print Attribute
2199       info anyway (but issuing a warning to the user).
2200
2201  [DG] [SCSI] Decode Last n error events log page; decode track following
2202       and positioning errors [Hitachi]
2203
2204  [EM] FreeBSD: another tweak, __packed__ introduced in Version 5.0040
2205
2206  [EM] Cleaner tweak of fixes for FreeBSD 4.x.
2207
2208  [EM] Fix compilation errors under FreeBSD 4.x, as it is still using
2209       and old GCC
2210
2211  [EM] Remove 3ware/FreeBSD specific files and just include pieces we need
2212
2213  [DG] Add logic in smartd to detect 3ware, Marvell controllers and SATA
2214       disks behind an ATA-SCSI simulator (in Linux). If specific device
2215       types are not given and they are picked in a general SCSI device
2216       scan then warn and skip.
2217
2218  [GG] insert correct path to smartd into smartd's init script
2219
2220  [BA] Changed all default paths in documentation to reflect /usr/local as
2221       default path prefix.  This affects on-line man pages, primarily.
2222 
2223  [DS] Added support for OpenBSD
2224
2225  [BA] Added another environment variable SMART_FULLMESSAGE set by
2226       the smartd mailing feature, and modified examplescripts/Example1
2227       to illustrate it.
2228
2229  [BA] Fixed potentially misleading messages of the form:
2230       XXX failed: success
2231
2232  [DG] emit warning if SATA disk detected using libata in Linux; then exit
2233
2234  [PW] Added Seagate U10 family, Hitachi Travelstar 7K60, Fujitsu MHR2020AT,
2235       and QUANTUM FIREBALLP AS20.5 to knowndrives table.
2236
2237  [DG] Detect 3ware and Marvell controllers from SCSI INQUIRY vendor string
2238       and suggest usage of appropriate '-d' argument in smartctl.
2239
2240  [LW] Tested the RELEASE_5_33_WITH_MARVELL_SUPPORT branch on
2241       actual Marvell 88SX5041 hardware, with success.
2242       Merged into HEAD.
2243
2244  [BA] Fixed nasty DEVICESCAN bug
2245
2246  [BA] Checked in RELEASE_5_33_WITH_MARVELL_SUPPORT branch with
2247       some Marvell support.
2248
2249  [BA] Additional modifications of Ed's controller scheme.  Fixed
2250       broken 3ware support under linux, problems with scanning
2251       devices in smartd, and other small problems.
2252
2253  [CF] Added make targets to build formatted man pages (htmlman, txtman),
2254       Windows distribution (dist-win32) and MSVC6 config.h (config-vc6).
2255
2256  [EM] Minor change to FreeBSD inclusion of 'twe' include files.  Add
2257       code to check if they exising in /usr/include/sys to use those
2258       in preference to ones added here
2259
2260  [EM] Very preliminary support attempt for 3Ware controllers under
2261       FreeBSD. Also, switched 'escalade_type/escalade_port' to
2262       'controler_type/controller_port' and moved away from
2263       'tryata/tryscsi' to using new 'controller*' variables to
2264       determine which controller type (ATA/SCSI/3Ware) to use.
2265
2266  [GK] Added initscript support for Darwin.
2267
2268  [CF] Windows smartd: Added ability to run smartd as a windows service,
2269       including new commands "smartd install ..." and "smartd remove"
2270       to install and remove the service registry entry.
2271
2272  [BA] smartd: warn user if -s regexp regular expression contains
2273       characters other than 0123456789.*()|+?[-]{}:=SLCO since such
2274       characters are 'suspicous' and may indicate a poorly formed
2275       regexp.  Extended regular expression gurus: can this list be
2276       reduced somewhat?
2277
2278  [CF] Fixed bug in Windows smartd: Missing close of config file when
2279       configuration is reloaded by smartd daemon.
2280
2281  [CF] Windows smartd: Added mail warning feature using the "Blat"
2282       (http://blat.sourceforge.net/) mailer as a default.
2283
2284  [PW] Added Maxtor DiamondMax Plus 5120 Ultra ATA 33 series and TOSHIBA
2285       MK3017GAP to knowndrives table.
2286
2287  [CF] Added fixes to build smartmontools on old Linux systems
2288       (libc < 6, Kernel 2.0.x).
2289
2290  [BA] Added ATA minor version identity strings for latest ATA specification
2291       updates: ATA/ATAPI-7 T13 1532D revision 4a and ATA/ATAPI-6 published,
2292       ANSI INCITS 361-2002
2293
2294  [PW] Added Hitachi Travelstar 5K80 family and Fujitsu MHTxxxxAH family to
2295       knowndrives table.
2296
2297  [EM] Fix up compilation under FreeBSD < 5.x
2298
2299  [PW] Added QUANTUM FIREBALL EX3.2A and missing Western Digital Caviar SE
2300       drives to knowndrives table.
2301
2302  [BA] Modified Hitachi Travelstar 80GN family regexp in drive database.
2303       Thanks to [GK/CF] for problem & solution.
2304
2305  [GK] Added os_darwin.[ch]
2306
2307  [PW] Added the following drives to the knowndrives table: IBM Travelstar
2308       48GH, 30GN, and 15GN family; IBM Deskstar 37GP and 34GXP family;
2309       Western Digital WDC WD272AA; Maxtor DiamondMax D540X-4D family;
2310       TOSHIBA MK2016GAP, MK2018GAP, MK2018GAS, MK2023GAS; and
2311       QUANTUM FIREBALL ST3.2A
2312
2313  [BA] smartd/smarctl now print build HOST/OS information as part
2314       of startup slogan.  This should make it slightly easier to
2315       read bug reports from users.
2316
2317  [RZ] Fixed the DEVICESCAN to do what it was supposed to do - give
2318       error message unless scanning is in progress. 
2319
2320  [BA] Update documentation to describe 3ware character devices. Better
2321       error detection for missing/malfunctioning devices behind 3ware
2322       controllers. Now pack 3ware ioctl structures explicitly.
2323
2324  [BA] For ATA devices that support LBA mode, print capacity as part
2325       of smartctl --info
2326
2327  [RZ] Made DEVICESCAN quiet about non-existing devices unless debug
2328       is on.
2329
2330  [DG] treat "unit attention" SCSI warning as try again in some contexts
2331       (test unit ready and mode sense)
2332
2333  [BA] on drives that store max/min rather than min/max, get order
2334       correct in printing temp.
2335
2336  [BA] fixed typo in 'smartctl -h' output.  Thanks to Gabor Z. Papp.
2337
2338  [BA] linux: clean-up to 3ware/AMCC support; dynamically create
2339       or fix /dev/tw[ae][0-15] device node entries if they don't
2340       exist or are incorrect. One can now use the character devices
2341       /dev/twe[0-15] OR /dev/sd? for 3ware 6000/7000/8000 series
2342       cards.  One must use /dev/twa[0-15] for 3ware 9000 series cards.
2343       Note that selective self-tests now work via /dev/tw[ae] devices.
2344       Next step: documentation.
2345
2346  [BA] linux: experimental "support" for 3ware/AMCC 9000 series
2347       controllers that use the 3w-9xxx driver.  This will be in a
2348       state of flux for a few days.  Note that this requires the
2349       character interface /dev/twa[0-15].
2350
2351  [DG] linux: extend general SCSI OS interface to use the SG_IO ioctl. If
2352       not available, use the older SCSI_IOCTL_SEND_COMMAND ioctl.
2353
2354  [KS] Solaris/x86: fixed system identification problem in configure
2355       script.  Thanks to Stuart Swales.
2356
2357smartmontools 5.32
2358
2359  [BA] Update link to revised/updated IBM Deskstar Firmware
2360
2361  [CF] Cygwin & Windows: Added missing ASPI manager initialization
2362       with GetASPI32SupportInfo(). Thanks to Nikolai SAOUKH for pointing
2363       this out and providing a patch.
2364
2365  [BA] modified smartd init script to work on whitebox (thanks to
2366       Michael Falzon)
2367
2368  [BA] removed (reverted) additional Attribute definitions from
2369       http://smart.friko.pl/attributes.php.  All (or most?) of these
2370       appear to be return code values for the WD Digital Life Guard Utility.
2371
2372  [PW] Added Seagate Medalist 17242, 13032, 10232, 8422, and 4312 to
2373       knowndrives table.  Added missing Seagate U Series 5 drives.
2374
2375  [PW] Added the following QUANTUM models to knowndrives table:
2376       FIREBALL EX6.4A, FIREBALLP AS10.2, FIREBALLP AS40.0, FIREBALL CR4.3A,
2377       FIREBALLP LM15, FIREBALLP LM30, and FIREBALLlct20 30
2378
2379  [PW] Added missing Western Digital Protege drives to knowndrives table.
2380
2381  [PW] Added Maxtor DiamondMax 40 ATA 66 series and DiamondMax 40 VL Ultra
2382       ATA 100 series to knowndrives table.
2383
2384  [PW] Added the following Hitachi/IBM drives to knowndrives table:
2385       HITACHI_DK14FA-20B, Travelstar 40GNX series, Travelstar 4LP series,
2386       and Travelstar DK23XXB series.  Added the missing Travelstar 80GN
2387       drives.
2388
2389  [PW] Added Fujitsu MPB series and MPG series to knowndrives table.  Added
2390       the missing Fujitsu MHSxxxxAT drives.
2391
2392  [KS] Solaris: added workaround for dynamic change of time-zone.
2393
2394  [KS] Solaris: fixed problem that autogen.sh cannot detect absence of
2395       auto* tools.
2396
2397  [BA] smartd: added time-zone bug information to man page.
2398       Reverted CF code for _WIN32 case.
2399
2400  [CF] Cygwin & Windows: Added better error messages on IDE/ATA device
2401       open error.
2402
2403  [BA] added additional Attribute definitions from
2404       http://smart.friko.pl/attributes.php
2405
2406  [BA] smartd: reworked TimeZone bug workaround so it is only invoked
2407       for glibc.  Note: this might not be right -- a similar bug may
2408       exist in other platform's libcs.
2409
2410  [DG] SCSI smartmontools documentation updated [2004/5/6]. See:
2411       http://smartmontools.sourceforge.net/smartmontools_scsi.html
2412
2413  [CF] Windows: Fixed reset of TZ=GMT in glibc timezone bug workaround.
2414
2415smartmontools 5.31
2416
2417  [DG] move SCSI device temperature and start-stop log page output
2418       (smartctl) into --attributes section (was in --info section).
2419
2420  [GG] change default installation location to /usr/local
2421
2422  [CF] Cygwin smartd: Fixed crash on access of SCSI devices after fork().
2423
2424  [PW] Added TOSHIBA MK4018GAS and the following Maxtor drive families
2425       to knowndrives table: DiamondMax D540X-4G, Fireball 541DX,
2426       DiamondMax 3400 Ultra ATA, DiamondMax Plus 6800 Ultra ATA 66.
2427
2428  [PW] Added missing Maxtor DiamondMax 16, DiamondMax D540X-4K, and
2429       DiamondMax Plus 45 Ulta ATA 100 drives to knowndrives table.
2430
2431  [PW] Added ExcelStor J240, Hitachi Travelstar 80GN family, Fujitsu
2432       MHTxxxxAT family, and IBM Deskstar 25GP and 22GXP families to
2433       knowndrives table.
2434
2435  [CF] Cygwin smartd: Added workaround for missing SIGQUIT via keyboard:
2436       To exit smartd in debug mode, type CONTROL-C twice.
2437
2438  [BA] smartctl: printing of the selective self-test log is now
2439       controlled by a new option: -l selective
2440
2441  [BA] Added entries for Samsung firmware versions -25 to -39 based
2442       on latest info about firmware bug fixes.
2443
2444  [PW] Added Seagate U Series X family, Seagate U8 family, and Seagate
2445       Medalist 8641 family to knowndrives table.
2446
2447  [CF] smartd: Added exit values 5/6 for missing/unreadable config file.
2448
2449  [BA] smartd: now monitor the Current Pending Sector count (Attribute 197)
2450       and the Offline Pending Sector Count (Attribute 198).  Log a
2451       warning (and send an email, if so configured) if the raw count
2452       is nonzero.  These are controlled by new Directives: -C and -U.
2453       Currently they are enabled by default.
2454
2455  [CF] Added option -c FILE, --configfile=FILE to smartd to specify
2456       an alternate configuration FILE or '-' for standard input.
2457
2458  [KS] configure.in now searches for -lnsl and -lsocket for Solaris.
2459
2460  [CF] Win32/native smartd: Added thread to combine several syslog output
2461       lines into one single event log entry.
2462
2463  [CF] Win32 smartd: Added DEVICESCAN for SCSI/ASPI devices.
2464
2465  [GG] Use gethostbyname() the get the DNS domain since getdomainname()
2466       returns the NIS domain when sending mails from smartd.
2467
2468  [GG] smartd.init.in: pass smartd_opts to smartd on startup, read distribution
2469       specific configuration files if found
2470
2471  [SS] smartctl: added NetBSD support for Selective Self-tests.
2472
2473  [BA] smartd.conf example configuration file now has all examples
2474       commented out except for 'DEVICESCAN'.
2475
2476  [CF] Win32/native smartd: Added ability to display warning "emails"
2477       as message box by "-m msgbox" directive. With "-m sysmsgbox",
2478       a system modal (always on top) message box is shown.
2479
2480  [BA] smartctl: printing of self-test log for disks that support
2481       Selective self-testing now shows the status of the (optional)
2482       read-scan after the selective self test.  Also, changed format
2483       in printing self-test log to print failing LBA in base 10 not
2484       base 16 (more compatible with kernel error messages).  Also,
2485       in printing SMART error log, print timestamps in format
2486       days+hours+minutes+seconds.
2487
2488  [CF] Win32 smartd: Added ability to log to stdout/stderr
2489       (-l local1/2). Toggling debug console still works
2490       if stdout is redirected.
2491
2492  [BA] smartctl: selective self-test log, print current status
2493       in a  more detailed way.  Allow writing of selective self-test
2494       log provided that no other self-test is underway.
2495
2496  [BA] Linux: eliminated dependency on kernel tree hdreg.h.
2497
2498  [BA] smartctl: -l selftest option now prints Selective self-test
2499       log in addition to the normal self-test log.
2500       Added additional options (-t pending, -t afterselect) to
2501       control remaining Selective Self-test capabilities.  Tested
2502       with several Maxtor disks. Modified error message printing
2503       so that munged option messages print at the end not the
2504       start of output.
2505
2506  [CF] Added daemon support to Win32 native version of smartd.
2507       The daemon can be controlled by commands similar to initd
2508       scripts: "smartd status|stop|reload|restart|sigusr1|sigusr2".
2509
2510  [CF] Added minor support for option "-l local[0-7]" to Win32 native
2511       (not Cygwin) version of smartd. If specified, the log output
2512       is written to file "./smartd[1-7]?.log" instead of event log.
2513
2514  [BA] Added Selective Self-test to smartctl (-t selective,M-N).
2515       Currently only supported under Linux; Solaris, NetBSD, FreeBSD
2516       and Windows developers must add WRITE LOG functionality to
2517       os_*.c
2518
2519  [BA] Added workaround for an annoying glibc bug: if you change
2520       timezones, (eg, flying with a laptop from USA to Europe)
2521       localtime() does not notice this in a running
2522       executable, so time that appears in the system log (syslog!)
2523       will be incorrect.  See
2524       http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=48184
2525       for additional examples of this bug.
2526
2527  [DG] Set explicit timeouts for SCSI commands (most default to 6 seconds).
2528       Previously a 0 second timeout was meant to be interpreted as a
2529       default timeout but the FreeBSD port had a problem in this area.
2530
2531  [CF] Fixed un-thread-safe exit signal handler for Win32
2532
2533  [BA] Fixed un-thread-safe exit signal handler pointed out
2534       by CF.
2535
2536  [BA] Changed configure script to eliminate warnings under
2537       Solaris from sys/int_type.h conflicts with int64.h
2538       Added header files for umask to smartd.c.
2539
2540  [BA] Man page format change from Werner LEMBERG.  " " changed to \&
2541
2542  [CF] Added os_win32/syslogevt.* event message file tool for Win32
2543       smartd (native+cygwin). May also be useful for other cygwin
2544       programs writing to syslog().
2545
2546  [CF] Added Win32 version of smartd
2547
2548  [CF] Merged RELEASE_5_26_WIN32_BRANCH
2549
2550  [BA] Made some changes to man page markup suggested by
2551       Richard Verhoeven to work around bugs in man2html.
2552       Tested not to break anything under Linux and Solaris.
2553
2554  [CF] Moved PrintOut() from utility.c to smart{ctl,d}.c to avoid
2555       syslog() output of smartctl.
2556
2557  [BA] Grew worried that some time-zone names could be very long (eg,
2558       Mitteleuropaische Zeit) and put date string lengths into a
2559       single macro in utility.c
2560
2561  [EM] Updated os_freebsd.c to handle older versions of FreeBSD in a
2562       more appropriate/obvious fashion.
2563
2564  [EM] Modified autogen.sh as FreeBSD installs automake 1.7 as
2565       'automake17' and NOT 'automake-1.7'
2566
2567smartmontools 5.30
2568
2569  [PW] Added QUANTUM FIREBALLlct15 30, QUANTUM FIREBALLlct20 40, and
2570       Maxtor 6Y060P0 (DiamondMax Plus 9 60GB) to knowndrives table.
2571
2572  [PW] Added Maxtor MaXLine II family to knowndrives table (thanks to
2573       Brett Russ for submitting the patch).
2574
2575  [BA] Added remaining read/write commands to detailed list of
2576       error log commands that have text descriptions of problem
2577       printed.  For commands that support it, print number of failed
2578       sectors at problem LBA.
2579
2580  [BA] Made SuSE section of smartd init script more SuSE 9 compatible.
2581       Thanks to Hans-Peter Jansen.
2582
2583  [CF] Windows smartd: Added IDE/ATA device scan
2584       Added windows device names to smartctl.8.in, smartd.8.in
2585   
2586  [BA] smartctl/smartd: user-provided '-F samsung' and '-F samsung2'
2587       command line options/Directives did NOT over-ride preset values
2588       unless user specified '-P ignore'.  Now they will always over-ride
2589       preset values from the database.
2590
2591  [BA] Added error decoding for a few more READ and WRITE commands.
2592
2593  [PW] Added Maxtor MaXLine Plus II, Western Digital Caviar SE (Serial ATA)
2594       series, Hitachi Deskstar 7K250 series, and Ultra ATA 66 models of
2595       the Maxtor DiamondMax Plus 40 series to knowndrives table.
2596
2597  [BA] Added Maxtor Diamondmax 250 GB drives to database.  Note that
2598       these model numbers are not listed in Maxtor documentation, but
2599       they exist.
2600
2601  [BA] Removed the 'contact developers' phrase from the Samsung disk
2602       warning messages.
2603
2604  [PW] Added TOSHIBA MK2017GAP, IBM Deskstar 14GXP and 16GP series,
2605       Fujitsu MPC series, Seagate Barracuda ATA III family, and missing
2606       Seagate Barracuda U Series drives to knowndrives table
2607
2608  [BA] smartd: wrong loglevel for message: Configuration file
2609       /etc/smartd.conf parsed.  Changed to LOG_INFO from LOG_CRIT.
2610       Thanks to  Emmanuel CHANTREAU for the report.
2611
2612  [CF] Checked in development version of windows code base.
2613
2614smartmontools 5.29 (note: there was NO 5.28 release)
2615
2616  [BA] smartd: configure script did not set correct directory to search for
2617       smartd.conf based on --prefix argument to ./configure.  Thanks to
2618       GG for identifying the problem and fix.
2619
2620  [BA] make clean now removes man pages (generated from *.in) files as well
2621       as object files.
2622
2623  [EM] Correct copying of sense data in FreeBSD SCSI implementation. Thanks
2624       to Sergey Svishchev for noticing the bug.
2625
2626  [BA] On solaris, wrong warning message if no ATA support.  Warning message
2627       concerns 3ware controller, not ATA.
2628
2629  [SS] Added SCSI support for NetBSD.
2630
2631  [BA] on big-endian linux machines, fixed interpretation of HDIO_GET_IDENTITY
2632       to correctly identify ATAPI bit (was byte swapped).  This should
2633       eliminate some SYSLOG noise if user queries a packet device (eg, CD
2634       ROM or DVD reader).
2635
2636  [PW] Removed warning for IBM Deskstar 40GV & 75GXP series drives with
2637       A5AA/A6AA firmware.  Thanks to Gerald Schnabel.
2638
2639  [PW] Added Toshiba TOS MK3019GAXB SUN30G to knowndrives table
2640
2641  [PW] Added Western Digital Caviar AC12500, AC24300, AC25100, AC36400,
2642       and AC38400 to knowndrives table
2643
2644  [BA] When printing ATA error log, print the LBA at which READ
2645       or WRITE commands failed.
2646
2647  [BA] Changed syntax of error message in smartctl
2648
2649  [BA] Added versioning info (-V options to smartd/smartctl) for
2650       Solaris ATA module.
2651
2652smartmontools 5.27
2653
2654  [KS] Added ATA/IDE support for Solaris/SPARC (ATA/IDE not yet for
2655       Solaris/x86).
2656
2657  [BA] 3ware controllers: documented that one can monitor any of the
2658       physical disks from any of the 3ware /dev/sd? logical devices.
2659       Better warnings if querying a disk that does not exist.
2660
2661  [PW] Added Hitachi Travelstar DK23DA series, Maxtor DiamondMax Plus 40
2662       series, Western Digital Caviar WDxxxAA, WDxxxBA, and WDxxxAB series
2663       to knowndrives table
2664
2665  [BA] missing 'pragma pack' on ATA IDENTIFY DEVICE structure may have
2666       caused odd or incorrect results on 64-bit machines.
2667
2668  [BA] smartctl/smartd allow inspection of self-test and error logs even
2669       if disk firmware claims that these don't exist.  This is needed
2670       for some Maxtor disks whose firmware does not indicate log support
2671       even though the disk DOES support it.
2672
2673  [BA] Improved porting instructions and documentation in os_generic.c
2674
2675  [PW] Add Western Digital Caviar WD136AA and SAMSUNG SP40A2H (RR100-07
2676       firmware) to knowndrives table.
2677
2678  [EM] FreeBSD: remove extra definition of FreeNonZero
2679
2680  [BA] smartctl: the -q silent option was printing output for some
2681       error conditions.  Fixed.  Will rename relevant variables to help
2682       avoid these errors in the future.
2683
2684  [SS] NetBSD port added.
2685
2686  [BA] more sensible error messages for devfs and devfs-like systems.
2687       Instead of saying that the DIRECTORY does not exist, say that
2688       the DEVICE does not exist.
2689
2690  [BA] smartd: added -n Directive, to prevent disk spin-up depending
2691       upon the power mode (SLEEP, STANDBY, or IDLE).
2692
2693  [PW] Added Maxtor DiamondMax 20 VL series, Fujitsu MPF series,
2694       Maxtor DiamondMax 36 series, Maxtor DiamondMax 4320 series, and
2695       Maxtor DiamondMax 536DX series to knowndrives table.
2696
2697  [BA] many warning messages now give the file name AND VERSION
2698
2699  [BA] smartd: when the user provides multiple address recipients
2700       to the '-m' Directive in a comma-delineated list, the commas
2701       are stripped out before passing the list of addresses to the
2702       mailer program. (Thanks to Calin A. Culianu for pointing this out
2703       and providing a patch.)
2704
2705  [BA] smartd: when the '-M exec path' Directive is used, any stdout OR
2706       stderr output from the executable "path" is assumed to indicate a
2707       problem, and is echoed to SYSLOG.
2708
2709  [BA] Added all missing IBM/Hitachi Deskstar 180GXP models to knowndrives
2710       table.
2711
2712  [PW] Added some missing IBM/Hitachi Deskstar 120GXP models to knowndrives
2713       table.
2714
2715  [PW] Added IBM Travelstar 14GS to knowndrives table.
2716
2717  [PW] Modified knowndrives table to match entire Hitachi Travelstar
2718       DK23BA and DK23EA series of drives (thanks to Norikatsu Shigemura
2719       for submitting the patch).
2720
2721  [PW] Added some missing Fujitsu MPE series drives to knowndrives table.
2722
2723  [PW] Added TOSHIBA MK4019GAX, TOSHIBA MK6409MAV, and QUANTUM
2724       FIREBALLlct15 20 to knowndrives table.
2725
2726  [EM] Fixup example command output for FreeBSD
2727
2728  [PW] Added Maxtor DiamondMax 80 family to knowndrives table.
2729
2730  [EM] Catch up FreeBSD code to switch PROJECTHOME to PACKAGE_HOMEPAGE
2731       macros.
2732
2733  [BA] smartd: now watches stdout/stderr when trying to run mail, mailx
2734       or mail warning script, and reports any output to SYSLOG.  This
2735       gives a clearer error message if something is wrong.
2736
2737  [BA] smartd: Solaris init script modified to accomodate grep that
2738       lacks '-q' quiet option.  Also check for running process to kill
2739       on stop.
2740
2741  [PW] Added some missing Seagate Barracuda 7200.7 and 7200.7 Plus drives
2742       to knowndrives table.
2743
2744  [PW] Added Maxtor DiamondMax Plus 60 family and Seagate U Series 5 20413
2745       to knowndrives table.
2746
2747  [BA] smartd: under Solaris, made default mailer be 'mailx' not
2748       'mail', since Solaris 'mail' does not accept a '-s' argument.
2749       A workaround for Solaris users of earlier versions is to
2750       have '-M exec /bin/mailx' in their smartd.conf config file.
2751
2752  [DG] some SCSI controllers don't like odd length transfers so make
2753       sure LOG SENSE transfers are rounded up to an even number when
2754       and odd length is reported (i.e. there is a double fetch, the
2755       first to find the length, the second gets the data)
2756
2757  [BA] smartd man pages: under Solaris, correct section numbers in the
2758       'See also' section.
2759
2760  [KS/BA] smartd man page: describe how to set Solaris syslog.conf
2761       file to catch all messages.  Give correct Solaris SYSLOG default
2762       path /var/adm/messages in man pages.
2763
2764  [BA] smartd: incorporated Debian startup script submitted by user.
2765
2766  [BA] smartctl: modified printing of self-test log entry number.  Seagate
2767       firmware can leave 'holes' in the self-test log while a test is
2768       actually running.  We now print entry numbers consistently in this
2769       case, not assuming that entries are contiguous.
2770
2771  [PW] Added QUANTUM FIREBALL CX10.2A and Western Digital Caviar AC23200L
2772       to knowndrives table.
2773
2774  [PW] Added QUANTUM FIREBALLlct20 20 to knowndrives table.
2775
2776  [PW] Added Maxtor DiamondMax Plus D740X family to knowndrives table.
2777
2778  [PW] Added IBM Travelstar 32GH, 30GT, and 20GN family to knowndrives
2779       table.
2780
2781  [BA] Slackware init script modified to search for /etc/slackware-version
2782       rather than /etc/slackware-release.
2783
2784  [PW] Added Seagate Barracuda ATA II family and TOSHIBA MK4019GAXB to
2785       knowndrives table.
2786
2787  [GG] explain howto use autoreconf in autogen.sh
2788
2789  [KS] Makefile.am/configure.in: changed manual page sections for
2790       Solaris.
2791
2792  [BA] smartd: reduced number of scheduled self-test messages if
2793       test already run in current hour.
2794
2795  [PW] Added Maxtor DiamondMax Plus 8 family to knowndrives table.
2796
2797  [BA] linux: check for linux/hdreg.h.  If it's there, use it. If
2798       not, provide the necessary definitions ourselves.
2799
2800  [PW] Removed warning for IBM Deskstar 40GV & 75GXP series drives
2801       with TXAOA5AA firmware
2802
2803  [PW] Added IBM Travelstar 25GS, 18GT, and 12GN family to knowndrives
2804       table.
2805
2806  [PW] Added IBM/Hitachi Travelstar 60GH & 40GN family to knowndrives
2807       table.
2808
2809  [BA] smartd: made '-s' Directive more efficient.  Now store
2810       compiled regex, and re-use.  If device lacks certain self-test
2811       capabilities, track it and don't try again.
2812
2813  [BA] smartd: made memory allocation for device lists completely
2814       dynamic (eliminating compile-time maximum length constants).
2815
2816  [PW] Removed warning for SAMSUNG SP0802N with TK100-23 firmware
2817
2818  [PW] Added Seagate Barracuda ATA IV family to knowndrives table.
2819
2820  [BA] smartd: reduce per-device memory footprint by making
2821       mail-warning info dynamically allocated.  Also remove
2822       potential memory leak if use has -m Directive twice and
2823       keeps reloading the config file (highly unlikely this would
2824       ever be noticed!) 
2825
2826  [DG] smartd: added SCSI scheduled self-tests (Background
2827       short or extended).
2828
2829  [BA] smartd: can now run scheduled offline immediate and
2830       self-tests.  See man page and -s Directive for details.
2831
2832  [GG] don't include manpages in make-dist-tarball.
2833
2834  [BA] smartctl: on-line examples given with -h are now correct
2835       for solaris and linux, but wrong for freebsd.  Ed?
2836
2837  [BA] smartd: man page now explains device scanning for solaris as
2838       well as linux and freebsd.
2839
2840  [BA] smartd/smartctl: man pages now report correct CVS tag release
2841       date, and executables '-V' options reports more build info.
2842
2843smartmontools 5.26
2844
2845  [BA] Improved user messages that appear from 'make install'
2846
2847  [PW] Removed warning for SAMSUNG SP1213N with firmware TL100-23
2848
2849  [BA] incorporated SuSE init script from user.
2850
2851  [DG] if SCSI device is read only, then open it read only.
2852
2853  [BA] when compiled on non-supported system (NOT linux, freebsd or solaris) then
2854       the run-time error messages now clearly say 'your system is not supported'
2855       and give clear directions.
2856
2857  [BA] ./configure script now works correctly on SuSE linux boxes
2858
2859  [BA] minor improvements to man pages
2860
2861  [BA] simplified detection of packet (ATAPI, CD) devices.
2862
2863  [BA] init script (redhat, mandrake, yellowdog) now uses correct
2864       strings for translation and is slightly more standard.
2865
2866  [DG] smartctl: output scsi Seagate vendor pages for disks (not tapes)
2867
2868smartmontools 5.25
2869
2870Note: there was no '5.24' release. From this point on, even numbered
2871releases will be 'stable' ones and odd numbered releases will be
2872unstable/testing/development ones.
2873
2874  [DG] smartd/smartctl: changed scsiClearControlGLTSD() to
2875       scsiSetControlGLTSD() with an 'enabled' argument so '-S on'
2876       and '-S off' work for SCSI devices (if changing GLTSD supported).
2877
2878  [BA] smartd/smartctl: wired in scsiClearControlGLTSD(). Could still
2879       use a corresponding Set function.  Left stubs for this purpose.
2880
2881  [DG] scsicmds: added scsiClearControlGLTSD() [still to be wired in]
2882
2883  [BA] smartctl: make SCSI -T options behave the same way as the
2884       ATA ones.
2885
2886  [DG] smartctl: output scsi transport protocol if available
2887
2888  [DG] scsi: stop device scan in smartd and smartctl if badly formed
2889       mode response [heuristic to filter out USB devices before we
2890       (potentially) lock them up].
2891
2892  [BA] smartd: deviceclose()->CloseDevice(). Got rid of SCSIDEVELOPMENT
2893       macro-enabled code.  Added -W to list of gcc specific options to
2894       always enable. Made code clean for -W warnings.
2895
2896  [PW] Added Maxtor DiamondMax VL 30 family to knowndrives table.
2897
2898  [DG] scsi: add warning (when '-l error' active) if Control mode page
2899       GLTSD bit is set (global disable of saving log counters)
2900
2901  [DG] scsi: remember mode sense cmd length. Output trip temperature
2902       from IE lpage (IBM extension) when unavailable from temp lpage.
2903
2904  [BA] smartd: for both SCSI and ATA now warns user if either
2905       the number of self-test errors OR timestamp of most
2906       recent self-test error have increased.
2907
2908  [DG] smartctl: output Seagate scsi Cache and Factory log pages (if
2909       available) when vendor attributes chosen
2910
2911  [DG] smartd: add scsiCountFailedSelfTests() function.
2912
2913  [DG] Do more sanity checking of scsi log page responses.
2914
2915  [BA] smartd: now warns user if number of self-test errors has
2916       increased for SCSI devices.
2917
2918  [BA] smartd: warn user if number of ATA self-test errors increases
2919       (as before) OR if hour time stamp of most recent self-test
2920       error changes.
2921
2922  [DG] More checks for well formed mode page responses. This has the side
2923       effect of stopping scans on bad SCSI implementations (e.g. some
2924       USB disks) prior to sending commands (typically log sense) that
2925       locks them up.
2926
2927  [PW] Added Western Digital Caviar family and Caviar SE family to
2928       knowndrives table.
2929
2930  [BA] smartd: added -l daemon (which is the default value if -l
2931       is not used).
2932
2933  [PW] Added Seagate Barracuda ATA V family to knowndrives table.
2934
2935  [BA] smartd: added additional command line argument -l FACILITY
2936       or --logfacility FACILITY.  This can be used to redirect
2937       messages from smartd to a different file than the one used
2938       by other system daemons.
2939
2940  [PW] Added Seagate Barracuda 7200.7, Western Digital Protege WD400EB,
2941       and Western Digital Caviar AC38400 to knowndrives table.
2942
2943  [BA] smartd: scanning should now also work correctly for
2944       devfs WITHOUT traditional links /dev/hd[a-t] or /dev/sd[a-z].
2945 
2946  [PW] Added Maxtor 4W040H3, Seagate Barracuda 7200.7 Plus,
2947       IBM Deskstar 120GXP (40GB), Seagate U Series 20410,
2948       Fujitsu MHM2100AT, MHL2300AT, MHM2150AT, and IBM-DARA-212000
2949       to knowndrives table.
2950
2951  [PW] Added remaining Maxtor DiamondMax Plus 9 models to knowndrives
2952       table.
2953
2954  [EM] smartd: If no matches found, then return 0, rather than an error
2955       indication, as it just means no devices of the given type exist.
2956       Adjust FreeBSD scan code to mirror Linux version.
2957
2958  [BA] smartd: made device scan code simpler and more robust. If
2959       too many devices detected, warn user but scan as many
2960       as possible.  If error in scanning, warn user but don't
2961       die right away.
2962
2963  [EM] smartd: To keep as consistent as possible, migrate FreeBSD
2964       devicescan code to also use glob(3). Also verified clean
2965       compile on a 4.7 FreeBSD system.
2966
2967  [BA] smartd: Modified device scan code to use glob(3). Previously
2968       it appeared to have trouble when scanning devices on an XFS
2969       file system, and used non-public interface to directory
2970       entries. Problems were also reported when /dev/ was on an
2971       ext2/3 file system, but there was a JFS partition on the same
2972       disk.
2973
2974  [BA] Clearer error messages when device scanning finds no suitable
2975       devices.
2976
2977  [EM] FreeBSD: Fixup code to allow for proper compilation under
2978       -STABLE branch.
2979
2980smartmontools 5.23
2981
2982  [BA] smartd: didn't close file descriptors of ATA packet devices
2983       that are scanned. Fixed.
2984
2985  [BA] Added reload/report targets to the smartmontools init script.
2986       reload: reloads config file
2987       report: send SIGUSR1 to check devices now
2988
2989smartmontools 5.22
2990
2991  [EM] Fix compile issues for FreeBSD < 5-CURRENT.
2992
2993  [PW] Added Fujitsu MHM2200AT to knowndrives table.
2994
2995  [BA] To help catch bugs, clear ATA error structures before all
2996       ioctl calls.  Disable code that attempted to time-out on SCSI
2997       devices when they hung (doesn't work).
2998 
2999  [BA] Documented STATUS/ERROR flags added by [PW] below.
3000
3001  [BA] Improved algorithm to recognize ATA packet devices. Should
3002       no longer generate SYSLOG kernel noise when user tries either
3003       smartd or smartctl on packet device (CD-ROM or DVD).  Clearer
3004       warning messages from smartd when scanning ATA packet device.
3005
3006  [PW] Added TOSHIBA MK4025GAS to knowndrives table.
3007
3008  [PW] Added a textual interpretation of the status and error registers
3009       in the SMART error log (ATA).  The interpretation is
3010       command-dependent and currently only eight commands are supported
3011       (those which produced errors in the error logs that I happen to
3012       have seen).
3013
3014  [BA] added memory allocation tracking to solaris code.
3015       Fixed solaris signal handling (reset handler to default
3016       after first call to handler) by using sigset. Added
3017       HAVE_SIGSET to configure.in
3018
3019  [CD] solaris port: added SCSI functionality to solaris
3020       stubs.
3021
3022  [BA] smartd: attempt to address bug report about smartd
3023       hanging on USB devices when scanning:
3024       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=107615
3025       Set a timeout of SCSITIMEOUT (nominally 7 seconds) before
3026       giving up.
3027
3028  [EM] smartd: DEVICESCAN will follow links in a devfs filesystem and
3029       make sure the end point is a disc.  Update documentation, added
3030       note about FreeBSD scanning
3031
3032  [BA] smartd: DEVICESCAN also looks for block devices in
3033       /dev.  Updated documentation.  Now scans for up to
3034       20 ATA devices /dev/hda-t rather than previous 12
3035       /dev/hda-l.
3036
3037  [EM] smartd: mirror the FreeBSD DEVICESCAN logic for Linux,
3038       so that smartd now scans only devices found in /dev/. Also,
3039       make utility memory functions take a line number and file so
3040       that we report errors with the correct location.
3041 
3042  [GG] add a note about Debian bug #208964 to WARNINGS.
3043
3044  [BA] smartctl: -T verypermissive option broken.  Use
3045       -T verpermissive until the next release, please.
3046
3047  [BA] Syntax mods so that code also compiles on Solaris using
3048       Sun Workshop compiler.  Need -xmemalign 1i -xCC flags
3049       for cc.
3050
3051smartmontools 5.21
3052
3053  [DK] Changed configure.in so -Wall is only included if gcc
3054       is used (this is a gcc specific flag) and -fsignedchar
3055       is not used at all (this is a gcc specific compiler
3056       flag).
3057
3058  [BA] Modifications so that code now compiles under solaris. Now
3059       all that's needed (:-) is to fill in os_solaris.[hc].  Added
3060       os_generic.[hc] as guide to future ports.  Fixed -D option
3061       of smartd (no file name).  Modified -h opt of smartd/smartctl
3062       to work properly with solaris getopt().
3063
3064  [EM] Update MAN pages with notes that 3ware drives are NOT supported
3065        under FreeBSD. Cleanup FreeBSD warning message handling.
3066
3067  [EM] FreeBSD only: Fix first user found bug....I guess I was making
3068       the wrong assumption on how to convert ATA devnames to
3069       channel/unit numbers.
3070 
3071  [EM] Allow for option --enable-sample to append '.sample' to installed
3072        smartd.conf and rc script files. Also, let rc script shell setting
3073        be determined by configure
3074
3075  [EM] Minor autoconf update to include -lcam for FreeBSD
3076
3077  [EM] Add conditional logic to allow FreeBSD to compile pre-ATAng.
3078        -- note, not tested
3079        Add some documentation to INSTALL for FreeBSD.
3080
3081  [EM] Implement SCSI CAM support for FreeBSD.  NOTE: I am not an expert
3082        in the use of CAM.  It seems to work for me, but I may be doing
3083        something horribly wrong, so please exercise caution.
3084
3085  [EM] Switch over to using 'atexit' rather than 'on_exit' routine. This also
3086        meant we needed to save the exit status elsewhere so our 'Goodbye'
3087        routine could examine it.
3088
3089  [EM] Move the DEVICESCAN code to os specific files. Also moved some of the
3090        smartd Memory functions to utility.c to make available to smartctl.
3091
3092  [EM] Code janitor work on os_freebsd.c.
3093
3094  [EM] Added os_freebsd.[hc] code.  Additional code janitor
3095       work.
3096
3097  [BA] Code janitor working, moving OS dependent code into
3098       os_linux.[hc].
3099
3100  [GG] conditionally compile os_{freebsd,linux}.o depending on
3101       host architecture
3102
3103  [PW] Print estimated completion time for tests
3104
3105  [BA] Added -F samsung2 flag to correct firmware byte swap.
3106       All samsung drives with *-23 firmware revision string.
3107
3108smartmontools 5.20
3109
3110  [GG] Fixed broken Makefile.am (zero length smartd.conf.5
3111       was being created), fix broken uninstall/distcheck targets
3112
3113  [FM] Improved Slackware init script added to /etc/smartd.initd
3114
3115smartmontools 5.19 [NOTE CHANGE OF RELEASE NUMBERING]
3116
3117  [BA] smartctl: added '-T verypermissive' option which is
3118       equivalent to giving '-T permissive' many times.
3119
3120  [BA] Try harder to identify from IDENTIFY DEVICE structure
3121       if SMART supported/enabled.  smartd now does a more
3122       thorough job of trying to assess this before sending
3123       a SMART status command to find out for sure.
3124
3125  [BA] smartctl: it's now possible to override the program's
3126       guess of the device type (ATA or SCSI) with -d option.
3127
3128  [BA] try hard to avoid sending IDENTIFY DEVICE to packet
3129       devices (CDROMS).  They can't do SMART, and this generates
3130       annoying syslog messages. At the same time, identify type
3131       of Packet device.
3132
3133  [BA] smartctl: Can now use permissive option more
3134       than once, to control how far to go before giving up.
3135
3136  [BA] smartd: if user asked to monitor either error or self-test
3137       logs (-l error or -l selftest) WITHOUT monitoring any of the
3138       Attribute values, code will SEGV.  For 5.1-18 and earlier,
3139       a good workaround is to enable Auto offline (-o on).
3140
3141  [BA] smartctl: If enable auto offline command given, update auto
3142       offline status before printing capabilities.
3143
3144  [GG] Make autotools build the default, remove autotools.diff
3145
3146  [GG] Add auto{conf,make} support, not enabled by default.
3147
3148  [BA] Eliminated #include <linux/hdreg.h> from code. This
3149       should simplify porting to solaris, FreeBSD, etc. The
3150       only linux-specific code is now isolated to three routines,
3151       one for SCSI, one for Escalade, one for ATA.
3152
3153smartmontools 5.1-18
3154
3155  [BA] smartd: fixed serious bug - Attributes not monitored unless
3156       user told smartd to ignore at least one of them!
3157
3158smartmontools 5.1-17
3159
3160  [BA] Default runlevels for smartd changed from 3 and 5 to
3161       2, 3, 4, and 5.
3162
3163  [BA] Removed as much dynamic memory allocation as possible from
3164       configuration file parsing. Reloading config file, even in
3165       presence of syntax errors etc. should not cause memory leaks.
3166
3167  [PW] It is no longer permissible for the integer part (if any) of
3168       arguments to --report and --device to be followed by non-digits.
3169       For example, the "foo" in --report=ioctl,2foo was previously
3170       ignored, but now causes an error.
3171
3172  [BA] smartd: added -q/--quit command line option to specify
3173       under what circumstances smartd should exit.  The old
3174       -c/--checkonce option is now obsoleted by this more
3175       general-purpose option.
3176
3177  [BA] smartd now responds to a HUP signal by re-reading its
3178       configuration file /etc/smartd.conf.  If there are
3179       errors in this file, then the configuration file is
3180       ignored and smartd continues to monitor the devices that
3181       it was monitoring prior to receiving the HUP signal.
3182
3183  [BA] Now correctly get SMART status from disks behind 3ware
3184       controllers, thanks to Adam Radford. Need 3w-xxxx driver
3185       version 1.02.00.037 or later. Previously the smartmontools
3186       SMART status always returned "OK" for 3ware controllers.
3187
3188  [BA] Additional work on dynamic memory allocation/deallocation.
3189       This should have no effect on smartctl, but clears that way
3190       for smartd to dynamically add and remove entries.  It should
3191       also now be easier to modify smartd to re-read its config
3192       file on HUP (which is easy) without leaking memory (which is
3193       harder). The philosophy is that memory for data structures in
3194       smartd is now allocated only on demand, the first time it
3195       is needed.
3196
3197  [BA] smartd: finished cleanup.  Now use create/rm functions for
3198       cfgentries and dynamic memory allocation almost everywhere.
3199       Philosophy: aggresively try and provoke SEGV to help find
3200       bad code.
3201
3202  [BA] Added SAMSUNG SV0412H to knowndrives table.
3203
3204  [BA] smartd: if DEVICESCAN used then knowndrives table might not set
3205       the -v attributes correctly -- may have been the same for all
3206       the drives.  Cleaned up some data structures and memory
3207       allocation to try and ensure segvs if such problems are
3208       introduced again.
3209
3210  [BA] Now allow -S on and -o on for the 3ware device type.  For these
3211       commands to be passed through, the stock 3ware 3w-xxxx driver
3212       must be patched (8 lines).  I'll post a patch on the smartmontools
3213       home page after it's been tested by a few other people and 3ware
3214       have had a chance to look it over.
3215
3216smartmontools-5.1-16
3217
3218  [BA] smartd - can now monitor ATA drives behind 3ware controllers.
3219
3220  [BA] smartd - changed some FATAL out of memory error messages from
3221       syslog level LOG_INFO to LOG_CRIT.
3222
3223  [BA] smartctl - added code to look at ATA drives behind 3ware RAID
3224       controllers using the 3w-xxxx driver.  Note that for technical
3225       reasons related to the 3w-xxxx driver, the "Enable Autosave",
3226       "Enable Automatic Offline" commands are not implemented.
3227       I will add this to smartd shortly.
3228
3229  [BA] smartd - modified sleep loop, so that smartd no longer comes
3230       on the run queue every second.  Instead, unless interrupted,
3231       it sleeps until the next polling time, when it wakes up. Now
3232       smartd also tries to wake up at exactly the right
3233       intervals (nominally 30 min) even if the user has been sending
3234       signals to it.
3235
3236  [GG] add Fujitsu MHN2300AT to vendoropts_9_seconds.
3237
3238  [EB] Fujitsu change in knowndrives ... match the whole MPD and
3239       MPE series for vendoropts_9_seconds.
3240
3241  [BA] smartd bug, might cause segv if a device can not be opened. Was
3242       due to missing comma in char* list.  Consequence is that email
3243       failure messages might have had the wrong Subject: heading for
3244       errorcount, FAILEDhealthcheck, FAILEDreadsmartdata, FAILEDreadsmarterrorlog,
3245       FAILEDreadsmartsefltestlog, FAILEDopendevice were all displaced by
3246       one.  And FAILEDopendevice might have caused a segv if -m was being
3247       used as a smartd Directive.
3248
3249smartmontools-5.1-15
3250
3251  [BA] Cleaned up smartmontools.spec so that upgrading, removing
3252       and other such operations correctly preserve running behavior
3253       and booting behavior of smartd.
3254
3255  [BA] Improved formatting of ATA Error Log printout, and added
3256       listing of names of commands that caused the error. Added
3257       obsolete ATA-4 SMART feature commands to table, along with
3258       obsolete SFF-8035i SMART feature command.
3259
3260  [PW] Added atacmdnames.[hc], which turn command register &
3261       feature register pairs into ATA command names.
3262
3263  [BA] Added conveyance self-test.  Some code added for selective
3264       self-tests, but #ifdefed out.
3265
3266  [BA] Modified smartd exit status and log levels.  If smartd is
3267       "cleanly" terminated, for example with SIGTERM, then its
3268       exit messages are now logged at LOG_INFO not LOG_CRIT
3269
3270  [BA] Added Attribute IDs  (Fujitsu) 0xCA - 0xCE.  This is decimal
3271       202-206. Added -v switches for interpretation of Attributes
3272       192, 198 and 201.
3273
3274  [BA] Made smartmontools work with any endian order machine for:
3275       - SMART selftest log
3276       - SMART ATA error log
3277       - SMART Attributes values
3278       - SMART Attributes thesholds
3279       - IDENTIFY DEVICE information
3280       - LOG DIRECTORY
3281       Smartmontools is now free of endian bias and works correctly
3282       on both little- and big-endian hardware.  This has been tested by
3283       three independent PPC users on a variety of ATA and SCSI hardware.
3284
3285  [DG] Check that certain SCSI command responses are well formed. If
3286       IEC mode page response is not well formed exit smartctl. This
3287       is to protect aacraid. smartd should ignore a aacraid device.
3288
3289smartmontools-5.1-14
3290
3291  [BA] smartctl: added column to -A output to show if Attributes are
3292       updated only during off-line testing or also during normal
3293       operation.
3294
3295smartmontools-5.1-13
3296
3297  [BA] smartd: attempt to enable/disable automatic offline testing even
3298       if the disk appears not to support it.  Now the same logic
3299       as smartctl.
3300
3301  [BA] Added definition of Attribute 201, soft read error rate.
3302
3303  [BA] Added IBM/Hitachi IC35L120AVV207-1 (GXP-180) and corresponding
3304       8MB Cache GXP-120 to drive database.
3305
3306  [BA] smartd: if DEVICESCAN Directive used in smartd.conf, and
3307       -I, -R or -r Directives used in conjunction with this, got
3308       segv errors.  Fixed by correcting memory allocation calls.
3309
3310  [BA] smartd: enable automatic offline testing was broken due
3311       to cut-and-paste error that disabled it instead of
3312       enabling it.  Thanks to Maciej W. Rozycki for pointing
3313       out the problem and solution.
3314
3315  [BA] Fixed "spelling" of some Attribute names to replace spaces
3316       in names by underscores. (Fixed field width easier for awk
3317       style parsing.)
3318
3319  [BA,GF] Added mods submitted by [GF] to support Attribute 193 being
3320       load/unload cycles. Add -v 193,loadunload option, useful for
3321       Hitachi drive DK23EA-30, and add this drive to knowndrive.c
3322       Add meaning of attribute 250 : Read error retry rate
3323
3324smartmontools-5.1-12
3325
3326  [BA] Added another entry for Samsung drives to knowndrive table.
3327
3328  [DG] Refine SCSI log sense command to do a double fetch in most cases
3329       (but not for the TapeAlert log page). Fix TapeAlert and Self Test
3330       log page response truncation.
3331
3332  [PW] Added 'removable' argument to -d Directive for smartd.  This indicates
3333       that smartd should continue (rather than exit) if the device does not
3334       appear to be present.
3335
3336  [BA] Modified smartmontools.spec [Man pages location] and
3337       smartd.initd [Extra space kills chkconfig!] for Redhat 6.x
3338       compatibility (thanks to Gerald Schnabel).
3339
3340smartmontools-5.1-11
3341
3342  [EB] Add another Fujitsu disk to knowndrives.c
3343
3344  [GG] match for scsi/ and ide/ in case of devfs to exclude false postives
3345
3346  [BA] If SCSI device listed in /etc/smartd.conf fails to open or do
3347       SMART stuff correctly, or not enough space
3348       to list all SCSI devices, fail with error unless
3349       -DSCSIDEVELOPMENT set during compile-time.
3350
3351  [BA] Added automatic recognition of /dev/i* (example: /dev/ide/...)
3352       as an ATA device.
3353
3354  [DG] Add "Device type: [disk | tape | medium changer | ...] line to
3355       smartctl -i output for SCSI devices.
3356
3357  [PW] Fixed bug in smartd where test email would be sent regularly (for
3358       example, daily if the user had specified -M daily) instead of just
3359       once on startup.
3360
3361  [KM] More TapeAlert work. Added translations for media changer
3362       alerts. TapeAlert support reported according to the log page
3363       presence. ModeSense not attempted for non-ready tapes (all
3364       drives do not support this after all). Get peripheral type from
3365       Inquiry even if drive info is not printed. Add QUIETON()
3366       QUIETOFF() to TapeAlert log check.
3367
3368  [BA] Stupid bug in atacmds.c minor_str[] affected ataVersionInfo().
3369       Two missing commas meant that minor_str[] had two few elements,
3370       leading to output like this:
3371       Device Model:     Maxtor 6Y120L0
3372       Serial Number:    Y40BF74E
3373       Firmware Version: YAR41VW0
3374       Device is:        Not in smartctl database [for details use: -P showall]
3375       ATA Version is:   7
3376       ATA Standard is:  9,minutes
3377                         ^^^^^^^^^
3378       Missing commas inserted.
3379
3380  [BA] Fixed smartd bug.  On device registration, if ATA device did
3381       not support SMART error or self-test logs but user had asked to
3382       monitor them, an attempt would be made to read them anyway,
3383       possibly generating "Drive Seek" errors.  We now check that
3384       the self-test and error logs are supported before trying to
3385       access them the first time.
3386
3387  [GG/BA] Fixed bug where if SMART ATA error log not supported,
3388       command was tried anyway. Changed some error printing to use
3389       print handlers.
3390
3391  [GG] Makefile modifications to ease packaging
3392
3393  [DG] Did work for TapeAlerts (SCSI). Now can detect /dev/nst0 as a
3394       SCSI device. Also open SCSI devices O_NONBLOCK so they don't
3395       hang on open awaiting media. The ATA side should worry about
3396       this also: during a DEVICESCAN a cd/dvd device without media
3397       will hang. Added some TapeAlert code suggested by Kai Makisara.
3398
3399smartmontools-5.1-10
3400
3401  [PW] Extended the -F option/Directive to potentially fix other firmware
3402       bugs in addition to the Samsung byte-order bug.  Long option name is
3403       now --firmwarebug and the option/Directive accepts an argument
3404       indicating the type of firmware bug to fix.
3405
3406  [BA] Fixed a bug that prevented the enable automatic off-line
3407       test feature from enabling.  It also prevented the enable Attribute
3408       autosave from working.  See CVS entry for additional details.
3409
3410  [PW] Modified the -r/--report option (smartctl and smartd) to allow the
3411       user to specify the debug level as a positive integer.
3412
3413  [BA] Added --log directory option to smartctl.  If the disk
3414       supports the general-purpose logging feature set (ATA-6/7)
3415       then this option enables the Log Directory to be printed.
3416       This Log Directory shows which device logs are available, and
3417       their lengths in sectors.
3418
3419  [PW] Added -P/--presets option to smartctl and -P Directive to smartd.
3420
3421  [GG] Introduce different exit codes indicating the type of problem
3422       encountered for smartd.
3423
3424  [DG] Add non-medium error count to '-l error' and extended self test
3425       duration to '-l selftest'. Get scsi IEs and temperature changes
3426       working in smartd. Step over various scsi disk problems rather
3427       than abort smartd startup.
3428
3429  [DG] Support -l error for SCSI disks (and tapes). Output error counter
3430       log pages.
3431
3432  [BA] Added -F/--fixbyteorder option to smartctl.  This allows us to read
3433       SMART data from some disks that have byte-reversed two- and four-
3434       byte quantities in their SMART data structures.
3435
3436  [BA] Fixed serious bug: the -v options in smartd.conf were all put
3437       together and used together, not drive-by-drive.
3438
3439  [PW] Added knowndrives.h and knowndrives.c.  The knowndrives array
3440       supersedes the drivewarnings array.
3441
3442  [GG] add {-p,--pidfile} option to smartd to write a PID file on
3443       startup. Update the manpage accordingly.
3444
3445  [DG] Fix scsi smartd problem detecting SMART support. More cleaning
3446       and fix (and rename) scsiTestUnitReady(). More scsi renaming.
3447
3448  [BA] Fixed smartd so that if a disk that is explictily listed is not
3449       found, then smartd will exit with nonzero status BEFORE forking.
3450       If a disk can't be registered, this will also be detected before
3451       forking, so that init scripts can react correctly.
3452
3453  [BA] Replaced all linux-specific ioctl() calls in atacmds.c with
3454       a generic handler smartcommandhandler().  Now the only routine
3455       that needs to be implemented for a given OS is os_specific_handler().
3456       Also implemented the --report ataioctl. This provides
3457       two levels of reporting.  Using the option once gives a summary
3458       report of device IOCTL transactions.  Using the option twice give
3459       additional info (a printout of ALL device raw 512 byte SMART
3460       data structures).  This is useful for debugging.
3461
3462  [DG] more scsi cleanup. Output scsi device serial number (VPD page
3463       0x80) if available as part of '-i'. Implement '-t offline' as
3464       default self test (only self test older disks support).
3465
3466  [BA] Changed crit to info in loglevel of smartd complaint to syslog
3467       if DEVICESCAN enabled and device not found.
3468
3469  [BA] Added -v 194,10xCelsius option/Directive. Raw Attribute number
3470       194 is ten times the disk temperature in Celsius.
3471
3472  [DG] scsicmds.[hc] + scsiprint.c: clean up indentation, remove tabs.
3473       Introduce new intermediate interface based on "struct scsi_cmnd_io"
3474       to isolate SCSI generic commands + responses from Linux details;
3475       should help port to FreeBSD of SCSI part of smartmontools.
3476       Make SCSI command builders more parametric.
3477
3478smartmontools-5.1-9
3479 
3480  [BA] smartctl: if HDIO_DRIVE_TASK ioctl() is not implemented (no
3481       kernel support, then try to assess drive health by examining
3482       Attribute values/thresholds directly.
3483
3484  [BA] smartd/smartctl: added -v 200,writeerrorcount option/Directive
3485       for Fujitsu disks.
3486
3487  [BA] smartd: Now send email if any of the SMART commands fails,
3488       or if open()ing the device fails.  This is often noted
3489       as a common disk failure mode.
3490
3491  [BA] smartd/smartctl: Added -v N,raw8 -v N,raw16 and -v N,raw48
3492       Directives/Options for printing Raw Attributes in different
3493       Formats.
3494
3495  [BA] smartd: Added -r ID and -R ID for reporting/tracking Raw
3496       values of Attributes.
3497
3498  [BA] smartd/smartctl: Changed printing of spin-up-time attribute
3499       raw value to reflect current/average as per IBM standard.
3500
3501  [BA] smartd/smartctl: Added -v 9,seconds option for disks which
3502       use Attribute 9 for power-on lifetime in seconds.
3503
3504  [BA] smartctl: Added a warning message so that users of some IBM
3505       disks are warned to update their firmware.  Note: we may want
3506       to add a command-line flag to disable the warning messages.
3507       I have done this in a general way, using regexp, so that we
3508       can add warnings about any type of disk that we wish...
3509
3510smartmontools-5.1-7
3511
3512  [BA] smartd: Created a subdirectory examplescripts/ of source
3513       directory that contains executable scripts for the -M exec PATH
3514       Directive of smartd.
3515
3516smartmontools-5.1-5
3517
3518  [BA] smartd: DEVICESCAN in /etc/smartd.conf
3519       can now be followed by all the same Directives as a regular
3520       device name like /dev/hda takes.  This allows one to use
3521       (for example):
3522       DEVICESCAN -m root@example.com
3523       in the /etc/smartd.conf file.
3524
3525  [BA] smartd: Added -c (--checkonce) command-line option. This checks
3526       all devices once, then exits.  The exit status can be
3527       used to learn if devices were detected, and if smartd is
3528       functioning correctly. This is primarily for Distribution
3529       scripters.
3530
3531  [BA] smartd: Implemented -M exec Directive for
3532       smartd.conf.  This makes it possible to run an
3533       arbitrary script or mailing program with the
3534       -m option.
3535
3536  [PW] smartd: Modified -M Directive so that it can be given
3537       multiple times.  Added -M exec Directive.
3538
3539smartmontools-5.1-4
3540
3541  [BA] Fixed bug in smartctl pointed out by Pierre Gentile.
3542       -d scsi didn't work because tryata and tryscsi were
3543       reversed -- now works on /devfs SCSI devices.
3544
3545  [BA] Fixed bug in smartctl pointed out by Gregory Goddard
3546       <ggoddard@ufl.edu>.  Manual says that bit 6 of return
3547       value turned on if errors found in smart error log.  But
3548       this wasn't implemented.
3549
3550smartmontools-5.1-3
3551
3552  [BA] Modified printing format for 9,minutes to read
3553       Xh+Ym not X h + Y m, so that fields are fixed width.
3554
3555  [BA] Added Attribute 240 "head flying hours"
3556
3557smartmontools-5.1.1
3558
3559  [BA] As requested, local time/date now printed by smartctl -i
3560
3561  [PW] Added "help" argument to -v for smartctl
3562
3563  [PW] Added -D, --showdirectives option to smartd
3564
3565  [DG] add '-l selftest' capability for SCSI devices (update smartctl.8)
3566
3567  [BA] smartd,smartctl: added additional Attribute modification option
3568       -v 220,temp and -v 9,temp.
3569
3570  [PW] Renamed smartd option -X to -d
3571
3572START OF SMARTMONTOOLS 5.1 series
3573
3574smartmontools-5.0.50
3575
3576  [PW] Changed smartd.conf Directives -- see man page
3577
3578  [BA/DG] Fixed uncommented comment in smartd.conf
3579
3580  [DG] Correct 'Recommended start stop count' for SCSI devices
3581
3582  [PW] Replaced smartd.conf directive -C with smartd option -i
3583
3584  [PW] Changed options for smartctl -- see man page.
3585
3586  [BA] Use strerror() to generate system call error messages.
3587
3588  [BA] smartd: fflush() all open streams before fork().
3589
3590  [BA] smartctl, smartd simplified internal handling of checksums
3591  for simpler porting and less code.
3592
3593smartmontools-5.0.49
3594
3595  [PW] smartd --debugmode changed to --debug
3596
3597  [BA] smartd/smartctl added attribute 230 Head Amplitude from
3598  IBM DPTA-353750.
3599
3600  [PW] Added list of proposed new options for smartctl to README.
3601
3602  [PW] smartd: ParseOpts() now uses getopt_long() if HAVE_GETOPT_LONG is
3603  defined and uses getopt() otherwise.  This is controlled by CPPFLAGS in
3604  the Makefile.
3605
3606  [BA] smartd: Fixed a couple of error messages done with perror()
3607  to redirect them as needed.
3608
3609smartmontools-5.0.48
3610
3611  [BA] smartctl: The -O option to enable an Immediate off-line test
3612  did not print out the correct time that the test would take to
3613  complete.  This is because the test timer is volatile and not
3614  fixed.  This has been fixed, and the smartctl.8 man page has been
3615  updated to explain how to track the Immediate offline test as it
3616  progresses, and to further emphasize the differences between the
3617  off-line immediate test and the self-tests.
3618
3619  [BA] smartd/smartctl: Added new attribute (200) Multi_Zone_Error_Rate
3620
3621  [BA] smartctl: modified so that arguments could have either a single -
3622  as in -ea or multiple ones as in -e -a.  Improved warning message for
3623  device not opened, and fixed error in redirection of error output of
3624  HD identity command.
3625
3626  [PW] smartd: added support for long options.  All short options are still
3627  supported; see manpage for available long options.
3628
3629  [BA] smartctl.  When raw Attribute value was 2^31 or larger, did
3630  not print correctly.
3631
3632smartmontools-5.0.46
3633
3634  [BA] smartd: added smartd.conf Directives -T and -s.  The -T Directive
3635  enables/disables Automatic Offline Testing.  The -s Directive
3636  enables/disables Attribute Autosave. Documentation and
3637  example configuration file updated to agree.
3638
3639  [BA] smartd: user can make smartd check the disks at any time
3640  (ie, interrupt sleep) by sending signal SIGUSR1 to smartd.  This
3641  can be done for example with:
3642  kill -USR1 <pid>
3643  where <pid> is the process ID number of smartd.
3644
3645  [EB] scsi: don't trust the data we receive from the drive too
3646  much. It very well might have errors (like zero response length).
3647  Seen on Megaraid logical drive, and verified in the driver source.
3648
3649  [BA] smartd: added Directive -m for sending test email and
3650  for modifying email reminder behavior.  Updated manual, and sample
3651  configuration file to illustrate & explain this.
3652
3653  [BA] smartd: increased size of a continued smartd.conf line to
3654  1023 characters.
3655
3656  [BA] Simplified Directive parsers and improved warning/error
3657  messages.
3658
3659smartmontools-5.0.45
3660
3661  [EB] Fixed bug in smartd where testunitready logic inverted
3662  prevented functioning on scsi devices.
3663  The bug in question only affects smartd users with scsi devices.
3664  To see if your version of smartd has the testunitready() bug, do
3665     smartd -V
3666  If the version of the module smartd.c in a line like:
3667     Module: smartd.c      revision: 1.66   date: 2002/11/17
3668  has a revision greater than or equal to 1.30, and less than or equal to
3669  1.64, then your version of the code has this problem.
3670  This problem affected releases starting with RELEASE_5_0_16 up to and
3671  including RELEASE_5_0_43.
3672
3673  [BA] Added testunitnotready to smartctl for symmetry with smartd.
3674
3675  [SB] added Czech descriptions to .spec file
3676  [SB]  corrected comment in smartd.conf example
3677
3678  [BA] Changed way that entries in the ATA error log are printed,
3679  to make it clearer which is the most recent error and
3680  which is the oldest one.
3681
3682  NOTE: All changes made prior to this point were done by Bruce Allen
3683  [BA] although several of them had been suggested by earlier postings
3684  by Stanislav Brabec [SB].
3685
3686smartmontools-5.0.43
3687
3688  Changed Temperature_Centigrade to Temperature_Celsius.
3689  The term "Centigrade" ceased to exist in 1948.  (c.f
3690  http://www.bartleby.com/64/C004/016.html).
3691
3692smartmontools-5.0.42
3693
3694  Modified SCSI device check to also send warning emails if
3695  requested in directives file.
3696
3697  Added a new smartd configuration file Directive: -M ADDRESS.
3698  This sends a single warning email to ADDRESS for failures or
3699  errors detected with the -c, -L, -l, or -f Directives.
3700
3701smartmontools-5.0.38
3702
3703  Modified perror() statements in atacmds.c so that printout for SMART
3704  commands errors is properly suppressed or queued depending upon users
3705  choices for error reporting modes.
3706
3707  Added Italian descriptions to smartmontools.spec file.
3708
3709  Started impementing send-mail-on-error for smartd; not yet enabled.
3710
3711  Added -P (Permissive) Directive to smartd.conf file to allow SMART
3712  monitoring of pre-ATA-3 Rev 4 disks that have SMART but do not have
3713  a SMART capability bit.
3714 
3715  Removed charset encodings from smartmontools.spec file for non-English
3716  fields.
3717
3718smartmontools-5.0.32
3719
3720  Added manual page smartd.conf.5 for configuration file.
3721
3722  smartctl: Missing ANSI prototype in failuretest(); fixed.
3723
3724  smartctl: Checksum warnings now printed on stdout, or are silent,
3725  depending upon -q and -Q settings.
3726
3727smartmontools-5.0.31
3728
3729  Changed Makefile so that the -V option does not reflect file state
3730  before commit!
3731
3732  smartctl: added new options -W, -U, and -P to control if and how the
3733  smartctl exits if an error is detected in either a SMART data
3734  structure checksum, or a SMART command returns an error.
3735
3736  modified manual page to break options into slightly more logical
3737  categories.
3738
3739  reformatted 'usage' message order to agree with man page ordering
3740
3741  modified .spec file so that locale information now contains
3742  character set definition.   Changed pt_BR to pt since we do not use any
3743  aspect other than language.  See man setlocale.
3744
3745smartmontools-5.0.30
3746  smartctl: added new options -n and -N to force device to be ATA or SCSI
3747  smartctl: no longer dies silently if device path does not start/dev/X
3748  smartctl: now handles arbitrary device paths
3749
3750smartmontools-5.0.29
3751  Modified .spec file and Makefile to make them more compliant with
3752  the "right" way of doing things.
3753
3754smartmontools-5.0.26
3755  Fixed typesetting error in man page smartd.8
3756
3757  Removed redundant variable (harmless) from smartd.c
3758
3759smartmontools-5.0.25
3760
3761  Added a new directive for the configuration file.  If the word
3762  DEVICESCAN appears before any non-commented material in the
3763  configuration file, then the confi file will be ignored and the
3764  devices wil be scanned.
3765
3766smartmontools-5.0.24
3767
3768    Note: it has now been confirmed that the code modifications between
3769    5.0.23 and 5.0.24 have eliminated the GCC 3.2 problems.  Note that
3770    there is a GCC bug howerver, see #8404 at
3771    http://gcc.gnu.org/cgi-bin/gnatsweb.pl?database=gcc&cmd=query
3772    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8404
3773
3774      Added new Directive for Configuration file:
3775      -C <N> This sets the time in between disk checks to be <N>
3776      seconds apart.  Note that  although  you  can  give
3777       this Directive multiple times on different lines of
3778       the configuration file, only the final  value  that
3779       is  given  has  an  effect,  and applies to all the
3780       disks.  The default value of <N> is 1800  sec,  and
3781       the minimum allowed value is ten seconds.
3782
3783    Problem wasn't the print format. F.L.W. Meunier <0@pervalidus.net>
3784    sent me a gcc 3.2 build and I ran it under a debugger.  The
3785    problem seems to be with passing the very large (2x512+4) byte
3786    data structures as arguments.  I never liked this anyway; it was
3787    inherited from smartsuite.  So I've changed all the heavyweight
3788    functions (ATA ones, anyone) to just passing pointers, not hideous
3789    kB size structures on the stack.  Hopefully this will now build OK
3790    under gcc 3.2 with any sensible compilation options.
3791
3792smartmontools-5.0.23
3793
3794    Because of reported problems with GCC 3.2 compile, I have gone
3795    thorough the code and explicitly changed all print format
3796    parameters to correspond EXACTLY to int unless they have to be
3797    promoted to long longs.  To quote from the glibc bible: [From
3798    GLIBC Manual: Since the prototype doesn't specify types for
3799    optional arguments, in a call to a variadic function the default
3800    argument promotions are performed on the optional argument
3801    values. This means the objects of type char or short int (whether
3802    signed or not) are promoted to either int or unsigned int, as
3803    appropriate.]
3804
3805smartmontools-5.0.22
3806
3807    smartd, smartctl now warn if they find an attribute whose ID
3808    number does not match between Data and Threshold structures.
3809
3810    Fixed nasty bug which led to wrong number of arguments for a
3811    varargs statement, with attendent stack corruption.  Sheesh!
3812    Have added script to CVS attic to help find such nasties in the
3813    future.
3814
3815smartmontools-5.0.21
3816
3817    Eliminated some global variables out of header files and other
3818    minor cleanup of smartd.
3819
3820smartmontools-5.0.20
3821
3822    Did some revision of the man page for smartd and made the usage
3823    messages for Directives 100% consistent.
3824
3825smartmontools-5.0-19
3826
3827    smartd: prints warning message when it gets SIGHUP, saying that it
3828    is NOT re-reading the config file.
3829
3830    smartctl: updated man page to say self-test commands -O,x,X,s,S,A
3831    appear to be supported in the code.  [I can't test these,  can anyone
3832    report?]
3833
3834smartmontools-5.0-18
3835
3836    smartctl: smartctl would previously print the LBA of a self-test
3837    if it completed, and the LBA was not 0 or 0xff...f However
3838    according to the specs this is not correct.  According to the
3839    specs, if the self-test completed without error then LBA is
3840    undefined.  This version fixes that.  LBA value only printed if
3841    self-test encountered an error.
3842
3843smartmontools-5.0-17
3844
3845    smartd has changed significantly. This is the first CVS checkin of
3846    code that extends the options available for smartd.  The following
3847    options can be placed into the /etc/smartd.conf file, and control the
3848    behavior of smartd.
3849    Configuration file Directives (following device name):
3850    -A     Device is an ATA device
3851    -S     Device is a SCSI device
3852    -c     Monitor SMART Health Status
3853    -l     Monitor SMART Error Log for changes
3854    -L     Monitor SMART Self-Test Log for new errors
3855    -f     Monitor for failure of any 'Usage' Attributes
3856    -p     Report changes in 'Prefailure' Attributes
3857    -u     Report changes in 'Usage' Attributes
3858    -t     Equivalent to -p and -u Directives
3859    -a     Equivalent to -c -l -L -f -t Directives
3860    -i ID  Ignore Attribute ID for -f Directive
3861    -I ID  Ignore Attribute ID for -p, -u or -t Directive
3862    #      Comment: text after a hash sign is ignored
3863    \      Line continuation character
3864
3865    cleaned up functions used for printing CVS IDs.  Now use string
3866    library, as it should be.
3867
3868    modified length of device name string in smartd internal structure
3869    to accomodate max length device name strings
3870
3871    removed un-implemented (-e = Email notification) option from
3872    command line arg list.  We'll put it back on when implemeneted.
3873
3874    smartd now logs serious (fatal) conditions in its operation at
3875    loglevel LOG_CRIT rather than LOG_INFO before exiting with error.
3876
3877    smartd used to open a file descriptor for each SMART enabled
3878    device, and then keep it open the entire time smartd was running.
3879    This meant that some commands, like IOREADBLKPART did not work,
3880    since the fd to the device was open.  smartd now opens the device
3881    when it needs to read values, then closes it.  Also, if one time
3882    around it can't open the device, it simply prints a warning
3883    message but does not give up.  Have eliminated the .fd field from
3884    data structures -- no longer gets used.
3885
3886    smartd now opens SCSI devices as well using O_RDONLY rather than
3887    O_RDWR.  If someone can no longer monitor a SCSI device that used
3888    to be readable, this may well be the reason why.
3889
3890    smartd never checked if the number of ata or scsi devices detected
3891    was greater than the max number it could monitor.  Now it does.
3892
3893smartmontools-5.0-16
3894
3895    smartd on startup now looks in the configuration file /etc/smartd.conf for
3896    a list of devices which to include in its monitoring list.  See man page
3897    (man smartd) for syntax.
3898
3899    smartd: close file descriptors of SCSI device if not SMART capable
3900    Closes ALL file descriptors after forking to daemon.
3901
3902    added new temperature attribute (231, temperature)
3903
3904    smartd: now open ATA disks using O_RDONLY
3905
3906smartmontools-5.0-11
3907
3908    smartd now prints the name of a failed or changed attribute
3909    into logfile, not just ID number
3910
3911    Changed name of -p (print version) option to -V
3912
3913    Minor change in philosophy: if a SMART command fails or the device
3914    appears incapable of a SMART command that the user has asked for,
3915    complain by printing an error message, but go ahead and try
3916    anyway.  Since unimplemented SMART commands should just return an
3917    error but not cause disk problems, this should't cause any
3918    difficulty.
3919
3920    Added two new flags: q and Q.  q is quiet mode - only print: For
3921    the -l option, errors recorded in the SMART error log; For the -L
3922    option, errors recorded in the device self-test log; For the -c
3923    SMART "disk failing" status or device attributes (pre-failure or
3924    usage) which failed either now or in the past; For the -v option
3925    device attributes (pre-failure or usage) which failed either now
3926    or in the past.  Q is Very Quiet mode: Print no ouput.  The only
3927    way to learn about what was found is to use the exit status of
3928    smartctl.
3929
3930    smartctl now returns sensible values (bitmask).  See smartctl.h
3931    for the values, and the man page for documentation.
3932
3933    The SMART status check now uses the correct ATA call.  If failure
3934    is detected we search through attributes to list the failed ones.
3935    If the SMART status check shows GOOD, we then look to see if their
3936    are any usage attributes or prefail attributes have failed at any
3937    time.  If so we print them.
3938
3939    Modified function that prints vendor attributes to say if the
3940    attribute has currently failed or has ever failed.
3941
3942    -p option now prints out license info and CVS strings for all
3943    modules in the code, nicely formatted.
3944
3945    Previous versions of this code (and Smartsuite) only generate
3946    SMART failure errors if the value of an attribute is below the
3947    threshold and the prefailure bit is set.  However the ATA Spec
3948    (ATA4 <=Rev 4) says that it is a SMART failure if the value of an
3949    attribute is LESS THAN OR EQUAL to the threshold and the
3950    prefailure bit is set.  This is now fixed in both smartctl and
3951    smartd.  Note that this is a troubled subject -- the original
3952    SFF 8035i specification defining SMART was inconsistent about
3953    this.  One section says that Attribute==Threshold is pass,
3954    and another section says it is fail.  However the ATA specs are
3955    consistent and say Attribute==Threshold is a fail.
3956
3957    smartd did not print the correct value of any failing SMART attribute.  It
3958    printed the index in the attribute table, not the attribute
3959    ID. This is fixed.
3960
3961    when starting self-tests in captive mode ioctl returns EIO because
3962    the drive has been busied out.  Detect this and don't return an eror
3963    in this case.  Check this this is correct (or how to fix it?)
3964 
3965    fixed possible error in how to determine ATA standard support
3966    for devices with no ATA minor revision number.
3967
3968    device opened only in read-only not read-write mode.  Don't need R/W
3969    access to get smart data. Check this with Andre.
3970
3971    smartctl now handles all possible choices of "multiple options"
3972    gracefully.  It goes through the following phases of operation,
3973    in order: INFORMATION, ENABLE/DISABLE, DISPLAY DATA, RUN/ABORT TESTS.
3974    Documentation has bee updated to explain the different phases of
3975    operation.  Control flow through ataPrintMain()
3976    simplified.
3977
3978    If reading device identity information fails, try seeing if the info
3979    can be accessed using a "DEVICE PACKET" command.  This way we can
3980    at least get device info.
3981
3982    Modified Makefile to automatically tag CVS archive on issuance of
3983    a release
3984
3985    Modified drive detection so minor device ID code showing ATA-3 rev
3986    0 (no SMART) is known to not be SMART capable.
3987
3988    Now verify the checksum of the device ID data structure, and of the
3989    attributes threshold structure.  Before neither of these
3990    structures had their checksums verified.
3991
3992    New behavior vis-a-vis checksums.  If they are wrong, we log
3993    warning messages to stdout, stderr, and syslog, but carry on
3994    anyway.  All functions now call a checksumwarning routine if the
3995    checksum doesn't vanish as it should.
3996
3997    Changed Read Hard Disk Identity function to get fresh info from
3998    the disk on each call rather than to use the values that were read
3999    upon boot-up into the BIOS.  This is the biggest change in this
4000    release.  The ioctl(device, HDIO_GET_IDENTITY, buf ) call should
4001    be avoided in such code.  Note that if people get garbled strings
4002    for the model, serial no and firmware versions of their drives,
4003    then blame goes here (the BIOS does the byte swapping for you,
4004    apparently!)
4005   
4006    Function ataSmartSupport now looks at correct bits in drive
4007    identity structure to verify first that these bits are valid,
4008    before using them.
4009   
4010    Function ataIsSmartEnabled() written which uses the Drive ID state
4011    information to tell if SMART is enabled or not.  We'll carry this
4012    along for the moment without using it.
4013
4014    Function ataDoesSmartWork() guaranteed to work if the device
4015    supports SMART.
4016
4017    Replace some numbers by #define MACROS
4018
4019    Wrote Function TestTime to return test time associated with each
4020    different type of test.
4021
4022    Thinking of the future, have added a new function called
4023    ataSmartStatus2().  Eventually when I understand how to use the
4024    TASKFILE API and am sure that this works correctly, it will
4025    replace ataSmartStatus().  This queries the drive directly to
4026    see if the SMART status is OK, rather than comparing thresholds to
4027    attribute values ourselves. But I need to get some drives that fail
4028    their SMART status to check it.
4029
4030
4031smartmontools-5.0-10
4032    Removed extraneous space before printing in some error messages
4033    Fixed additional typos in documentation
4034    Fixed some character buffers that were too short for their contents.
4035
4036smartmontools-5.0-9
4037
4038    Put project home path into all source files near the top
4039    Corrected typos in the documentation
4040    Modified Makefile so that Mandrake Cooker won't increment version number
4041    (unless they happen to be working on my machine, which I doubt!)
4042
4043smartmontools-5.0-8:
4044
4045    For IBM disks whose raw temp data includes three temps. print all
4046    three
4047
4048    print timestamps for error log to msec precision
4049
4050    added -m option for Hitachi disks that store power on life in
4051    minutes
4052
4053    added -L option for printing self-test error logs
4054
4055    in -l option, now print power on lifetime, so that one can see
4056    when the error took place
4057
4058    updated SMART structure definitions to ATA-5 spec
4059
4060    added -p option
4061
4062    added -f and -F options to enable/disable autosave threshold
4063    parameters
4064
4065    changed argv parsing to use getops -- elminate buffer overflow
4066    vulnerability
4067
4068    expanded and corrected documentation
4069
4070    fixed problem with smartd.  It did not actually call
4071    ataSmartEnable()!  Since the argument was left out, the test
4072    always suceeded because it evaluated to a pointer to the function.
4073
4074    smartd: closed open file descriptors if device does not support
4075    smart. Note: this still needs to be fixed for SCSI devices
4076
4077
4078smartmontools-5.0-0  STARTED with smartsuite-2.1-2
Note: See TracBrowser for help on using the browser.