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