Update Revision History (Most Recent)

Top  Previous  Next

Version 1.43 (Released DEC 2009)

Increased maximum block count for -scrub family commands from 112 to 120 blocks (which results in slightly faster scrubbing and DVT testing)
Added support for Newisysvi l 2240 and 2241 SES enclosures
Added full support for disk scrubbing, verification, -read, and DVT tests when disks formatted to 520 or more bytes per block. (The -read command would return an error message unless the disk was formatted to 512 bytes per block)
Enumerates vendor-specific health information for STEC Solid-State Disk SSD products (End-to-end errors, aborted commands, uncorrectable errors, and more)
Fixed problem on some Infortrend RAID controllers where firmware revision was displayed as numeric information rather than text string.
Program now properly reports serial number for Intel's SSR212MC storage appliances.
You can now upgrade SES firmware on Intel's SSR212MC appliances, as well as Newisys SAS/SATA 2240 and 2241 enclosures.
Added 5 newly-defined ANSI TapeAlert codes defined in 2009
Increased timeouts for issuing the -read command in situation where device might be spun down. (Now it is 30 seconds)

Version 1.42 (Released NOV 2009)

Fixed buffer over run if reporting on a 10Gbit FC disk
Added support for AIX 5.3
Added new self-tests for ATA/SATA disks (windows only, limited MAC 10.5+ support), and allow use of all self tests on all SCSI, FC, SAS peripherals, rather than disk drives only. (-stefa, -steba, -stsba, -staa, -stra)
64-bit support for reading raw ATA disks  greater than 2TB added
Background low-level formatting -formatb and -formatconf to suppress are-you-sure message added. In addition -random added to randomize data.
Support for enumerating all peripherals updated to latest SATA 3.0 specifications and SCSI specifications, resulting in reporting several hundred new fields)
Major enhancement to LSI internal RAID logic to support SAS-2 peripherals and next generation of API.
Added email-reporting to Infortrend hardware that is being monitored
Increased sizes of pass-through to prevent truncating log pages > approx 60KB.
Added vendor-unique enumeration and reporting for several dozen new disk drives, SES enclosures and tape drives. See -V+ option for latest list.
Removed need for scratch file during enumeration, which prevents multiple instances in same directory from conflicting with each other when they run concurrently. Scratch files now stay in RAM as needed and are automatically purged when the program terminates.
Added new option -M in threshold monitoring for monitoring and reporting values on polling period
The -F 0 option to perform SMART poll once and exit was previously limited to windows, now it works on all operating systems.
Added support for HP's VMS / OpenVMS [Via a restricted reseller channel]
Significantly improved performance of all -secure erase tests, and self-tests, they run as much as 3 times faster.
Enhanced NIC-based licensing so it no longer keys off of first ethernet controller.
Fixed problem enumerating HP MAS70 and Newisys SES enclosures by increasing a buffer size.  Added SES command to control drive ID bay LEDs.
Added -sqq option to suppress all logging
Added -HEALTH and -HEALTHFULL options
Added several options for media verification -verify

Version 1.39 (Released OCT 2008)

Added additional reporting capability for LSI-family embedded and PCI-based RAID and JBOD controllers (Board information;  enumeration of RAID configuration; reformatted output to make it easier to understand;  report serial numbers of individual drives.
Added -zdq parameter for reporting just disk drives behind LSI-family embedded and PCI-based RAID controllers
Added -flashses7 command, originally added to SPARC-Solaris version 1.38 only to all operating systems.
Additional fields to enumerate health and configuration of LSI-family external RAID subsystems was added.
The -zd family of commands now report the physical device name that the operating system assigns to physical and logical disks. If a disk is part of a RAID configuration, it will report bus and target information only.


Version 1.38 (Released SEP 2008)

Added -flashses7 command for flashing SES enclosures that require "type 7" firmware updates.  (LSI SAS Shea enclosures, for example)
(This is an interim build that served as a test revision until the -flashses7 was fully tested)


Version 1.37 (Released JUN 2008)

64-Bit HP/UX added
The -flash command no longer limits itself to disk drives.  If the target device is SCSI, SAS, or Fibre Channel, and it supports the ANSI-standard firmware flashing mechanism, then the command will allow firmware to be flashed to any device type.
Added -flashses command to flash new SES firmware on supported enclosures
Support for SES / enclosure management added for Intel SSR212MC systems which are OEMed by numerous vendors (such as the HS-1235E by Xyratex)
Fixed problem that caused program to crash if there was a 3WARE controller configured without any disks and user sent command to enumerate the configuration.
Program now traps kill, quit, CTRL-C commands/keystrokes, and exits with the ABORTEDBYUSER return code 22 and displays appropriate message depending on whether user terminated the program or it was terminated by the operator. It now also insures that all scratch files are deleted when program is aborted by user.


Version 1.36 (Released May 2008)

Added a series of commands to spin SCSI/FC/SAS disks up (-spinup), down, and to query spin status
Added -EPL family of SES commands to support LSI Shea enclosures, as well as other enclosures that report array devices
LSI Shea SAS family enclosures now report vendor-unique configuration fields
All Seagate SAS family disks as of this date added to vendor-specific database
Additional SATA/ATA-8 commands added to enumerated error list and inquiry version fields
Additional vendor-specific SMART fields enumerated for Maxtor, Fujitsu, and Seagate SATA disks
Significantly more information reported for LSI MPT-family RAID controllers (seen in HP, Dell, IBM and other systems)
-bmsr command that reports background scanning results enhanced with additional output
Support for LSI MPT-family RAID controllers added to SPARC Solaris version
The -O command now works in Windows platform
Additional return codes added
(Version 1.36B, released June 2008, adds support for Intel Storage Servers)
Added additional vendor-specific SATA S.M.A.R.T. entries


Version 1.35 (Released Dec 2007)

Propagated increased SCSI pass-through buffer enhancement introduced in 1.34 to all LINUX variants
Added commands to support DELL (LSI) family RAID controllers (-zd) (-zdd) (-zdL)
Corrected total number of blocks on disk drive as shown on drive testing summary, quantity was last block number instead of total number of blocks.
(Enhanced random number generator for secure erase .. it now uses cryptographic-quality ISAAC random number generator, and EVERY bit is randomized, not just a 16KB repeating pattern throughout the disk.
Added new return code (12) for secure erase test, used to indicate that data on disk is not random
SATA/ATA device support improved for SPARC Solaris, full ATA Identification report now generated
ANSI-standard fields for ATA-8 class devices now enumerated
Additional fields specific to 3WARE/AMCC 9x00 RAID controllers running firmware released after JUN 2007 added
New function (-z3m) that dumps 3WARE/AMCC RAID controller event logs added
Windows 2008 & Vista support added (For X86, IA64, and X86_64 architectures)
Mac OSX 10.5 support for both Power PC & Intel architectures added
-securecheck and -securecheckall functions added to Secure Erase
Secure erase support added for SATA/ATA disks
Program now reports device make/model as part of low-level format Are-you-sure message
-Cx command to and/or suppress limitations to field size masks
Windows-family EMAIL engine now supports -Port command which facilitates setting a non-standard SMTP port to mail server
-  Secure erase logic now completes the random I/O phase significantly faster, now it takes only 25% more time then
   the all-ones or all-zeros phase, instead of taking almost 3 X as long.

Version 1.34 (Released Oct 2007)

(Windows-only) Increased size of SCSI pass-thru buffer from 32K to 64K to support certain vendor-unique log pages,
Approx 100 additional reportable fields applicable to Engenio (LSI) external RAID engines added
Added additional inquiry data reporting specific to SATA disks attached to SAS/SATA controllers (SAT protocol)
Windows version now utilizes single executable that works for systems that do not have SNIA FC drivers installed (Previous releases were distributed with 2 separate executables)
Background media scanning commands added (-bmsd) (-bmse) (-bmsr)


Version 1.33 (Released Jul 2007)

X86_64 LINUX build released
Reporting & configuring background media scans added
Additional vendor-unique log pages added
(Windows-only) temporary files for windows versions are now saved in user-specific temp file directory instead of executable's directory.
(Non-Windows) temp files now start with /tmp/santoolsXXXXXX rather than /tmp/junkXXXXXX
MAC-address based licensing added for Windows family versions
Background initialization sub page now reported
ANSI SES-page A now reported
Additional mode page fields (EER, ACC, TPGS) added
SAS protocol log page now reported when log pages are queried
NAA IEEE ID now reported with -I+ option
AIX 5.X SCSI passthrough support added
Approx 50 new SCSI sense code text messages added
Vendor-unique fields for Xyratex 1603 (SAS / SATA EBOD) enclosures added


Version 1.32 (Released Dec 2006)

New feature, -capacitybs added which will change block size (you would primarily use this to change disks formatted at 520 bytes/block to 512 or vise-versa.
The program decodes new SATA/ATA-7 ANSI descriptors introduced since 2006
Changed error message on -mpimport if option invoked with invalid parameters.


Version 1.31 (Released Mar 2006)

-wsc option added, so a write same test will optionally terminate on first error
Numerous enhancements added to support disks speaking SAT protocol.  This includes adding additional error messages and decoding protocol-specific EVPD inquiry and log pages.
The -confirm flag is now also supported on the write-same commands
Program now decodes information for new scsi device types (bridge, OSD, ADC, logical units) and protocol flags (dozens of new entries) for devices (up to SPC-4)
-H+ and -C+ flags added to support devices which do not properly decode log page 0.
If a direct access device reports zero blocks then this is no longer reported as an error.
Approx 50 new ANSI sense messages are now decoded.
EVPD page 89 is now reported for SAT devices
QUALSTAR tapes now added to decoded list
Returns "Can not determine device size" rather than 0 if disk drive reports invalid size.
Decodes new ANSI fields in Mode page 10.
Added ST314685SS, ST3146854SS, S373454SS, ST33675SS, ST973401SS, ST936701SS SAS disks to database.
Enhanced the tables that describe ANSI compliance levels for all SCSI family peripherals, so all entries are returned with the +I rather than the interface information.
Updated SMART tables for Fujitsu family disks
Addressed bug specific to Adaptec 29120AS adapters on windows that caused program to crash when performing SCSI inquiry.
Program now partially reports slot information for Xyratex Sumo family enclosures.
The drive fitness test warning screen now returns make/model information of the selected disk drive.
Fixed "parametrs" typo when windows version launches as a service.
Added -secure function for DoD secure erase for SCSI, SAS, Fibre channel disks
Fixed LINUX-specific bug that would crash program if run w/o ANY options and the system did not have any ATA disks.
LINUX version might report 0 defects, if there are approx 1500 or more defects. This logic now works as long as LINUX kernel supports 12 and 16-byte SCSI commands (2.6 or higher).


Version 1.30 (Released Dec 2005)

Decoded additional vendor-unique S.M.A.R.T. descriptions for Recovered ECC error on non-Hitachi disk drives.
Decoded newer ATA/SATA disk identifiers introduced in ATA/SATA-7 ANSI specifications.
Program no longer displays block of zeros if a S.M.A.R.T.-compliant disk does not return S.M.A.R.T. data when told to do so. (This happens in event of a hardware problem with a disk).
Added support for HP/UX on Itanium hardware
Prevented problem where a certain vendor repackages an 3Ware (AMCC) controller and the software did dot detect this, so enhanced functionality was not available to those logical disks.
Now reports invalid option message rather than crashing program if -G option is not followed by a temperature value, or -mail command is not used with proper attributes.
E-Mail alerts under windows now additionally report IP-based host and domain and name of client PC that generated the alert.
The program no longer accepts invalid options for the -mail command, and provides appropriate warning.
-ZM option (Mylex-engine-specific) now reports a SAN Mapping table
-z3d option to report 3Ware internal controller diagnostic dump was added.
-z3L option to report 3Ware internal controller event log was added.
New fields were added to the -I+ dump for 3Ware (AMCC) controllers (these include cache policies, battery information, A/V mode and several others)
The drive fitness tests now have a user-defined option that allows the tests to terminate on the first error, rather than requiring them to complete.
The WWN now prints on all fibre channel disk drives rather than Seagate disks (with the -I+ option).
Made several cosmetic changes to usage information returned by the -help command
-capacity command added that changes reported/usable drive capacity on SCSI, FC, & SAS disks.
-confirm option added to most destructive (and potentially destructive) commands that normally ask an are-you-sure message
A "Total Capacity (in bytes)" line was added to the inquiry dumps (-I and -I+)
The Windows 9.3 driver update for 3Ware (AMCC) was not compatible with this software so the software did not recognize any of their RAID controllers. This new build incorporates a revised library that resolves the problem.
3ware (AMCC) support has been added to the IA64 LINUX & Windows.


Version 1.29 (Released Aug 2005)

Added auto-launch program capability in event of a predictive drive failure (the -LB command).
Added standardized return-codes to facilitate in using SMARTMon-UX in script files.
Additional scrub family drive fitness tests added.
Disk firmware flashing support for full family of Fujitsu SCSI and Fibre channel disks added.
The windows version can now run as a native Windows service routine.
Infortrend RAID reporting now reports IP settings for the controller.
Drive firmware flashing logic increases chunk size on non-LINUX platforms in order to marginally speed up drive flashing process.
The software now allows you to test predictive failure actions by using the -T flag in combination with sending out emails, generating event log messages and launching predictive failure scripts. Previously, the -T flag could only be used to send out a test message via email.
Added the -sq option which suppresses logging of successful polling messages in the event log specified by other command-line options.
Added the -scrubt command to terminate self tests upon first error found.
In order to support running as a service, the windows release was compiled as a threaded application.  This has a negligible affect on performance.


Version 1.28X (Latest patches released since June 2005)

Added the -rc command that corrupts blocks to deal with vendor-specific Reverse ECC capability found in Seagate Cheetah 7 family disks and fixed the problem that prevented the Windows family version of the program from issuing the command properly.
Setting the polling frequency to 0 (-F 0) instructs the program to poll SMART once then exit.
Removed terminating line feed character from event log messages (applicable to Windows version only).
Added 80+ additional vendor-unique entries for Fujitsu MAT family disks and HP C7438A tapes & autochangers.
New windows-specific -Mail flag for configuring mail servers that require authentication.


Version 1.28 (Released Apr 2005)

Limited support for ATA disk drives on Apple OS X and SPARC Solaris. The devices cannot yet be polled, but the detailed configuration information can be reported with the -I.
Several typos introduced with new functionality were fixed.
Added subsystems which can be used to detect if a device fails or is removed.
Logic added to support OS X ATA disks. (-I, -I+, -O, -S options only. Program does not poll, but does enumerate devices and report serial number information).
Fixed buffer overflow that would present itself with -fc option for HBAs that had events in event log where total text > 63 characters.
-fc command now translates FC-4 types into text (I.e., reports "Fabric services" or "Fibre channel services" instead of just a hex string
If a disk had spun down, software would report "Disk not ready - skipping" when testing for SMART capability.
If no disks are on the computer, and user wanted to monitor them, previous (UNIX/LINUX) releases would still respawn into the background.  This no longer happens.
(LINUX only) The program would terminate if run with -I+ option and the total number of defect information exceeded 0xfff8 bytes. (Approx 5000 defects).  This was due to SCSI pass-through issue.
New -ping function added for background polling.  This has slightly different message which reports serial number of removed disk. In the event the disk is returned, it reports that also. The -ping option will NOT report a disk offline event every polling period if the device is not responding. It will only report first time it is missing, and when/if it is returned.
Note:  The software currently does NOT check to see if the returned disk has same serial number and make/model as one that was originally there.  Many operating systems & drivers would prevent this from happening as they would assign a different device name, but this is not guaranteed.
Demo versions of the program more aggressively detect evaluation timeouts.
Modified logic that recognizes SGI TP9400 RAID subsystems that did not have all optional firmware features.
Fixed problem with the -rb (reassign blocks) command. The function reassigned block 1010101h.
(LINUX only) The program now detects if your O/S does not support the READ_CAPACITY(16) command. As this command is only issued when the software detects a LUN > 2.1TB. This is more of a future-proofing since such RAID subsystems are quite rare, and only 2.6 kernel handles large LUNs by default.
-ping function for LINUX & IRIX can use wild-cards, as it will report missing devices for peripherals that match the string. If you -ping /dev/sg[0-4], it will check /dev/sg0, sg1, sg2, sg3, sg4. It will check any device that exists in /dev which matches the search string.
8 new vendor-unique SMART registers have been decoded for Hitachi ATA/SATA disks.
Previously, if a disk drive did NOT support SMART, but user added -ping option to monitor, the device was skipped.  Now if a non-SMART disk is monitored with -ping, it will still report if disk is removed or goes offline.
Infortrend RAID logic trims extra blanks on Seagate disk drives when reporting with the -zi option
Fixed bug that prevented some vendor-unique log page data to appear in versions 1.27K through N.
SAF-TE logic now reports Power on cycles, if supported by enclosure.
Fixed potential buffer overflow if SAF-TE enclosure had more than 4 global flags which could result in program crashing.
Fixed several bugs relating to SAF-TE reporting if the SAF-TE processor reported there were no fans or power supplies.
SAF-TE logic incorrectly reported temperature in F / C conversion.
SAF-TE reporting now decodes all device state bits, including combinations which are clearly invalid. (This was done to assist enclosure manufacturers when testing compliance).
The -E+ flag which dumped full SES enclosure information and the -EH flag that dumps the hex pages now work for SAF-TE enclosures.
When viewing data that reports as hex dumps, some operating system libraries (Microsoft) had different interpretation of printable characters that displayed to the right of the hex bytes.  The program now reports text for byte values 20h through and including 7E.  Other bytes are printed as "." character.
Significant rework being done to reporting IDE disk information, due to subtle constraints in IDE pass-through for various operating systems.  Slight record layout changes are being made in attempt to standardize output which may be inconsistent across operating systems.
Capacity shows in IDE disks on Discovery line.
Additional fields are being displayed and decoded with -S option for IDE (SATA / PATA) disks. This includes notes, decoded temperature, and total time used if available.
Apple partition marker now identified with -Q option, and -Q option now supported on OS X.
Suppressed reporting additional IDE information that is not applicable if disk does not support SMART.
Discovery screen also reports if SMART was currently disabled or enabled on IDE disks.
Mode page editor now accommodates hardware that does not accept changes unless the MODE SELECT command uses an 8-byte block descriptor.  The program now retries the MODE-SELECT with 8-byte descriptor if the 0-byte descriptor fails.
Support for 16-byte CDBs added. The -ws, -wsbyte, and -scrub family commands now optionally support them by just adding -16 to command line.  Your O/S, drivers, firmware, and storage must all support such commands.  If they do not, the program may not detect this condition.
The Cache Optimization field specific to Infortrend-Family RAID controllers reported Sequential instead of RandomIO-optimized and vice-versa. This error has been fixed.
Added cosmetic carriage-return after block scrubbing command completes so display shows 100% instead of 99% completed.
The -scrubv and -scrubdiv commands now update percentage complete and time remaining more often than once every 1.0%. This helps those users that have created extremely large LUNs.
SATA/PATA Drive temperature and cumulative power-on time now reported for several dozen more makes/models of disk drives.
If you sent -S option to disk that did not support S.M.A.R.T., you previously got data with many zeros and spaces. Now you get appropriate not supported message.
Support for ATA disk drives added to SPARC Solaris. This includes Polling, inquiry, and dumping of SMART information.
Text reporting the HBA driver library & version no longer print at end of all -fc family commands. Now this prints with the "-fc" command.
Suppressed reporting zeros & blanks for SMART-specific fields on disks that do not support SMART (-I+ option).
Usable addressable sectors reported in CHS & LBA mode were byte swapped for ATA disks on -I option (but capacity in MB reported correctly).
Per changes in revised ATA specification, the field TK0NF was relabeled NM in ATA disk error log dump (applicable to -O option).
The -O (error log dump) was enhanced to decode op codes C7 & 2A.
Support for the SNIA call, HBA_GetVendorLibraryAttributes has been removed. Not all HBAs support this function and information can be obtained elsewhere.
SAF-TE now reports the SAF-TE optional slot status information, as well as speaker alarm status.
Support for 3Ware/AMCC RAID engines added with -z3 and -z3x commands (LINUX & Windows only).
Added Windows-specific fix that would have prevented an unclaimed device from appearing when it was attached to a multi-port fibre channel HBA.
Added factory-default self-test (-stfd) option for SCSI/Fibre/SAS family devices.
Added -EF flag which can be combined with -E+ and -EH commands that force discovery of SES pages that are not properly defined in SES page0 per ANSI Specs.  This was added to deal with a non-compliant SES enclosure, and generally not required.
The -zie option will now report and decode event logs for RAID subsystems using Infortrend-family RAID engines.
Added -wce and -wcd to easily enable/disable write cache for SCSI/Fibre disks
Fixed problem with UNIX/LINUX distributions where if -ping command was used. It sent device state to the console once program relaunched into background at every polling period.  Now it only displays the status once to the console.


Version 1.27 (Released June 2004)

The 64-bit LINUX build now supports SGI's 2.2 and 3.0 Pro Pack, as well as the 2.6 kernel. The 64-bit builds have also been tested on SuSE 9.0, Red Hat AS 2.1, Red Hat AS 3.0, and Red Hat 7.1 on Itanium-based processors. We do not anticipate there would be issues with any LINUX 32 or 64-bit variants with exception of AMD 64-bit platforms (which have not been tested as of this date).
An IRIX-specific enhancement was added to dramatically improve performance of I/O specific diagnostics, such as the -scrub family of commands. Now the program performs a maximum of 2MB worth of transfers before releasing the exclusive-only pass through subsystem, rather than opening the device, doing a single I/O, then releasing it.
The -I+ (detailed inquiry) function now decodes data from extended vital product data inquiry fields (EVPD pages).  155 new fields were decoded for Seagate, Quantum, IBM and other vendor disk and tape drives.
The -I+ function now reports basic controller information for Infortrend manufactured RAID engines.
The -V+ function no longer appends the "(numeric)" suffix on fields that are numeric, as this is the default,
The usage text (-h and -?) has expanded and re-arranged for better usability and clarity.
The -wsbyteconfirm command was added. This is same as the -wsbyte command, only it does not ask you for an are-you-sure response.
Data integrity tests, -scrubdiv and -scrubdi were added.
Optional non-volatile SAF-TE enclosure fields for cumulative power-ons and cumulative minutes has been added.
Optional SES vendor-unique type descriptors and element descriptors are reported, if the data is available for the selected SES enclosure.
Additional vendor-unique SES fields for DotHill, Sun, LSI and IBM Pro Fibre, and Xyratex enclosures are now reported.
The total capacity for the selected device was reported as being one block less than it should be.  Due to round off, we would not have expected this problem to be noticed unless your device had a number of blocks that was evenly divisible by 1000.
A change was made to the UNIX/LINUX installer to make sure it is invoked from proper directory before it continues (otherwise the script fails).
New data integrity check functions have been added.
A bug was fixed in the 1.26 database that prevented several vendor-unique LOG page fields from being reported on Fujitsu and some HP tape drives and changers.
The device name that appeared on the report when initiating self-tests might have displayed just the first part of the device name, i.e., \\.\SCSI2 instead of \\.\SCSI2Port2Path0Target17Lun0 depending on the device name and type.
The -read function would sometimes fail in opening the desired disk or CD/DVD if it was a SCSI device, which caused the action to terminate with an error. This was seen under windows.
The vendor-unique information for LSI RAID engines now includes the 16-byte WWN and fibre channel or SCSI host attach details with the -I+ option.
Additional misspellings for topology, amendment, and several others were fixed. Some of these words appeared in the program executable.


Version 1.26 (Released April 2004)

Syntax changes were made to the self-test results (returned by -str and -C) to incorporate additional information such as sense bytes and vendor-unique bytes (only in event of a failed-self test).
Drive "scrubbing" commands, -scrub, -scrubv, and -scrubq were added to perform block-level I/O testing.
A command to reassign sectors -rb was added.
35 New SCSI sense KEY/ASC/ASQ code table to bring sense key decoding to latest ANSI specifications. There are now approx 600 entries which are decoded. In addition, the program now uses a common pool of sense message strings reducing the program size.
Typo fixed in sense key name miscompare.
SMART-related logic now attempts to set MRIE bit to 6 instead of 4. This results in less overhead and system logging in event of a SMART error. (Note that if the disk does not support MRIE of 6, it will drop down to the next value, 4).
Results from last 20 self-tests shown instead of last 3 when calling the -C option.
Additional vendor-unique database entries brings total up to 1,412 entries.
The WRITE SAME function -wsbyte was added for initializing a SCSI class device with a user-defined pattern.


Version 1.25 (Released March 2004)

Updated vendor-unique database for Hitachi fibre channel specific entries.
Made significant modifications to the Windows-specific SCSI pass-through engine to properly discover fibre channel devices on JNI and selected Emulex LP9002 HBAs. The device discovery problem might also manifest itself with other controllers and drivers as well. See Device Naming Conventions section for additional details.
The device naming convention also required a modification in the syntax for threshold monitoring files (Windows only).
Resolved issue where unused device handles under windows were not being closed. The adverse affect was that the program wasted several KB of RAM.
Introduced low level formatting capability for SCSI family disks with the -format command, as well as a mechanism to clear grown defects and specify vendor-unique formatting parameters.
Significant logic added to decode Xyratex-manufactured SBOD (firebird family) enclosures via SES.
Removed HBA_GetVendorLibraryAttributes SNIA call since this is not supported on many SNIA HBA API libraries.
Firmware flashing function no longer tests to see if a disk is marked as "Seagate". This makes it possible to flash OEM firmware builds.


Version 1.24 (Released January 2004)

International localization of date & time fields have been incorporated.  Use the new -i option to enable the feature (flag added to maintain output compatibility).
The HTML documentation now has a keyword index.
-r flag added to -fciostat command to display raw totals for each statistic (instead of default changes over time).
Minor change to installation script to fix error message that appeared under Solaris if the gnu tools were in the search path before /bin or /sbin.
Fixed 32-bit overflow problem that would show incorrect disk drive capacity if total number of bytes on a disk drive greater than approx. 300 GB.


Version 1.23 (Released December 2003)

Implemented support for SNIA HBA API. Currently added to LINUX, SPARC Solaris & Windows. Other O/S's will follow.
Updated database to include additional vendor-unique entries for Seagate 146MB disk drives.
Added HBA feature -fc which does full dump of all HBA & SAN-related fields.
Added HBA feature -fcping, equivalent to an Ethernet ping, but for a WWN port number and LUN.
Reports approx 20 new fields relating to self-tests for IDE disks (Implemented in LINUX only - windows O/S does not allow this information to be reported).
Reports following fields for ATA-3 type IDE disks (if not previously reported, and the disk supports reporting such data).  Service interrupt, look-ahead, write cache, security mode, advanced power management, removable media notification, S.M.A.R.T. feature set, release interrupt, Max LBA in 48-bit mode (ATA-6+ disks only)
Modified the installation script to correct problem preventing the script from working on 64-bit IRIX systems.
Added support for reporting temperature on certain Maxtor disk drives (with +/- degrees C precision, if known).
Reports up to 19 new vendor-unique Maxtor IDE S.M.A.R.T. threshold descriptions.
Fixed problem with -T option. Program did not terminate as documented.
Capacity in MB field overflowed if the total blocks of LUN was >= FFFFFFFEh (2.1 TB). Program now supports 16-byte READ CAPACITY command.
Expanded max size of SES-related reads to 4KB (prevented vendor-unique information in -E+ and -EHSES dumps from appearing properly, but bug did not affect program's basic SES status reporting & alerting.
Fixed non-compliant TapeAlert reporting capability discovered in Quantum DLT7000s. (Bug only affected TapeAlert Features reporting, not TapeAlert monitoring).
Program now detects if log sense results exceed buffer size. Bug caused the hex dump feature to be of incorrect length.
SES buffer size max on SES page 1 increased from 2048 to 4000 bytes (No problems with known encloses, did this for future-proofing).
SES dump (-E+) now includes ASCII text from SES Help Text page, if supported by enclosure vendor.
SES dump (-E+) now includes decoding of SES threshold page.
Added logic to decode additional Vendor-unique SES fields from DotHill enclosures (RPM legend, vendor-unique fields, Help & Threshold).
SES dump now incorporates ASCII text from SES description page, if data is available from enclosure.
Added -z option to report physical disk status of drives behind supported LSI, SGI, and IBM RAID subsystems. This option also reports significant amount of additional controller information with -I+ option.
IDE disk drive temperature threshold monitoring available on some Maxtor IDE disks.
The -Q option to dump partition information added to SPARC and X86 Solaris release.
Windows release EMAIL engine now reports more descriptive error message if problem found sending email.
Made minor text change in ASCII text portion of system-generated threshold monitoring file. Stated if threshold set to zero, the selected value will ALWAYS get reported every polling period. This reflects program behavior.
Removed redundant "X" character from system-generated threshold files.
Fixed text on SES page descriptions (-EH option) where Pages 3-5 had wrong page description.
Added new option (-EP2) to provide full SES control page programmability.
All mode page editing functions for the "saved" (non-volatile) page have been disabled for evaluation builds.
Added -p option to DISABLE SMART for all SCSI & FC disk drives. (It can not be used with the -P flag).
Fixed problem where SES enclosures that present themselves as a target device did not get polled if using just the -E option.
Fixed buffer overflow problem unique to LINUX that would prevent the additional information shown with the I+ command if command line combined with -S option on IDE disk drives if there are more than 522 entries returned by examining /dev/hd* list.
Added -O option to display advanced SMART ATA/SATA error log information. Only supported on LINUX today (waiting for MSFT O/S patch before it can be added to Win2K/XP/2003.
(1.23A):  Fixed SPARC-Solaris problem that caused program to crash when invoked with -Z option to view disk state behind Mylex family RAID engines.
(1.23B):  Fixed problem that prevented -str option from sometimes displaying status of a SCSI/Fibre channel disk drive self-test.
(1.23B):  Enhanced threshold monitoring (-K & -W) so that it no longer concurrently configures and polls S.M.A.R.T. disks.
(1.23C):  When reporting status information for array type elements, the program incorrectly assumed that all elements were the same type. If you had both disks and tapes in an enclosure that reported array status information, it reported all devices as disks. The same happened when reporting threshold information.
(1.23C);  Function -fchbainfo added that reports fibre channel HBA drivers, BIOS level, model number info  (requires SNIA API library)
(1.23C):  Function -fciostat added that reports fibre channel I/O activity (requires SNIA API library)
(1.23C):  Added additional information to -fc reporting (HBA_GetRNIDMgmtInfo data)
(1.23C):  Various small cosmetic changes to better present information when a particular HBA reports -1 or invalid data for an unsupported library call.
(1.23D):  Refreshed vendor-unique log page information for all SCSI & Fibre Channel Seagate disk drives. Added models ST373453FC, ST318453FC, ST336742FC, ST336732L*, ST318452L*, ST318432L*, ST318418*
(1.23D): LINUX-specific fix added to support discovery of back-end disks when using zero-channel RAID controllers. This is done by directly adding the /dev/sgn entry to command-line that corresponds to the disk drive.  If you have 5 SCSI disks, you would add /dev/sg[0-4] to the command-line.
(1.23D): Integration of HP SNIA API logic to executable and installation script.  This uses standard libHBAAPI runtimes bundled with HPUX
(1.23D): Fixed problem in SAF-TE decoding that assumed temperature was reported in degrees F if reported in degrees C for some devices.
(1.23D): SES now also reports SES firmware revision.
(1.23D): SPARC Solaris & LINUX builds now use a customized  libHBAAPISANtools.so (included) to resolve issues which appear when your system has several HBAs installed from multiple manufacturers.


Version 1.22 (Released August 2003)

The partition dump feature, -Q, previously limited to SCSI & fibre channel disk drives, now works with all random access devices, regardless of the interface. It is still limited to Windows and LINUX platforms. Also made a cosmetic change to the output for better readability. After each item, the program printed a space followed by a comma. This was changed to a comma followed by a space.
A feature to read raw blocks (-read) was added.
Fixed a problem that caused extraneous text to be entered into the system event log if you ran the program with the -link, -Q, or a self test option.
If you had an ATA-1 or ATA-2 compliant disk drive, the program previously did not display this information. (ATA6 and ATA7 disk drives are current revisions).
A feature to flash drive firmware (-flash) was added. This only supports Seagate SCSI & Fibre Channel disk drives today.
Leading zeros were removed from the output of the -S command, which returns S.M.A.R.T. thresholds for ATA disks (the feature is only applicable to Windows & LINUX releases).
Changed "Preformance" to "Performance" in output from -S command.


Version 1.21 (Released July 2003)

Fixed problem where if device was selected for polling, but not pollable (i.e., not ready), program might crash or lock up.
The mpimport function would stop importing pages if the selected page completed but returned with non-zero sense information.  This would be rare, but could happen if device responded with a recovered error condition.
The -B (mode page editor) function now tolerates a leading bit, i.e., 9C instead of 1C for the mode page field. This would happen if one was to just dump the single mode page out, make a change, and pipe it back. Some, but not all devices would automatically ignore this bit.  By clearing it for you,  it is easier to automate a script to change individual pages.
The -Y option (dump defect details) was added. Due to O/S limitations, only the first 4094 defects can be displayed when using the /dev/sg driver. If you use the /dev/sd class driver, you are limited to the first 510 defects, which is rarely enough for large disks.
The software now reports a disk is dead if it responds with ASC=40 or 44 on SMART queries. This would generally happen some time after a predictive S.M.A.R.T. error was reported, and the drive has failed to the extent that it cannot run predictive tests. The drive would have to be replaced at this point because data loss is assured.
An enhancement was made if you ran the -F nn option in combination with any dumping option which would ordinarily cause the program to display some information and exit. The program now pauses nn seconds before returning the command prompt. This was done to facilitate providing you with a controlled delay if you are using smartmon-ux in a script like smartmon-ux -F 60 -S would previously just display statistical totals and immediately exit. Now it will display statistical totals and exit after 60 seconds. If you were using windows and had a batch file run smartmon-ux in a loop, this would provide convenient method to give you a 60-second delay.  (Windows does not have a sleep function for the command interpreter or batch file scripts).
Reporting and decoding of data on mode page 19 (protocol specific page) added. If you have a Parallel SCSI device, the program will also report and decode additional data on sub mode pages 1,2,3 and 4. This represents several dozen new fields.
-link option added to report link speed (mode page 19 support for device required).
If you are running LINUX, you may also use the "sg" class driver to interface with a device. The advantage of using the sg driver is that it will allow up to 32KB of data to be passed between the program and the device (only needed with -Y option for now). The disadvantage is that the sg driver, due to LINUX bugs, can lock up if the device is not ready.
Support added for several SATA to FC JBOD subsystems using Xyratex-manufactured enclosures.
Detailed SCSI inquiry (-I+) option now reports all fields up to SCSI-3, SPC-3 Revision13 (May 2003).
Detailed SCSI inquiry (-I+) now takes into consideration the SCSI compliance level, and only reports fields specific to that level. For example, if device is ANSI level 2, it will not report ON/OFF level for a feature introduced at ANSI level 3. Conversely, it will not report a field which might have been undefined or obsoleted at an earlier or later SCSI revision.
mpimport now works significantly faster, as it first reads the mode page and determines if it needs to be reprogrammed before issuing a change.
If an unknown version descriptor is reported by the device (-I+), the program now reports the hex code rather than "(null)". This would happen if you are running and old version of the code on a device that introduced new version descriptors that are unknown to the program. In this way you can at least see the hex code and cross-reference against the latest ANSI specification.
Additional details added to self-test results. The number of power-on hours returned by the device at the time of the test, or at the time the test failed is reported.  If the self-test failed, then the segment number on the device where the test failed is also reported.
Protocol-specific port page (mode page 18) is now reported and decoded.
The SCSI time-out time was increased in order to provide sufficient time to report defect information with 181 GB and larger SCSI/Fibre channel disk drives.
If the disk does not support reporting number of factory defects, the program now reports "unsupported", and attempts to return number of  grown defects. Previously the program would not report grown defects if factory defect reporting was unsupported by the device.
S.M.A.R.T. testing now incorporates additional tests in case drive is failing, but it does not return proper response codes to S.M.A.R.T. tests.
Fixed problem where Request/Ack data transfer support on -I+ option was incorrectly just returning whether or not the device supported SES.
32-bit parallel support always printed if ANSI level <= 3, now it prints if ANSI level <=2 and if SPI level is >= 2
16-bit parallel support now reports in the same manner as above.
On SES reporting, if a particular element reported status as "not found or unavailable", it still attempted to read and report the value. For example, if a device reported there were 2 temperature elements, but only one of them was installed, it would incorrectly report the temperature as being -20 degrees. This bug did not, however, cause any alerts to be generated.
If mode page 1C was not supported on a disk device, the program would not attempt to report SES status.
Fixed typo on Tape control mode page #10 (permanent changed to permanent).


Version 1.20 (Released June 2003)

Added SCSI Enclosure Services (SES) capability to control fault & identification indicators for devices in selected slots.
Added SES capability to control audible alarm(s).
Added full SES hex dump of all control/status pages, so vendor-specific information can be reported.
Rewrote SES polling engine so it can extract information from enclosures much more quickly. Basically many enclosures need small delays between status and control requests. If the controller was not ready to respond, the operation would either time out or return junk data, and smartmon-ux would have to retry after a 2-second delay. Now the program adds 50 millisecond delays between requests which almost always insures that no retry will be required.  This has result of operations typically being performed in well under a second, rather than a range of 5 - 10 seconds.
Added decoding for over 100 vendor-specific fields for XYRATEX family enclosures (Goshawk, Phoenix, and Osprey). Many of these new fields are only reportable if using LRC firmware revision 34 or higher.
Added ability to import & export all or some mode pages for a selected device. The -mpexport command saves all mode pages in human & smartmon-ux readable format in a user-defined file. The user can then issue the -mpimport command against one or more devices to program new mode pages. In addition, the user can edit the data file and comment out specific bytes and/or pages before uploading to new devices.
As more options have been added, the program is now case sensitive to command-line options. As the program has always documented upper-case for options, it is our hope that this will not cause customer scripts to break.
Fixed 4 typos in log & mode page output.


Version 1.19 (Released May 2003)

Eliminated a retry if an invalid command was sent to a device where resulting key was 5, and ASC was not equal to 24.
Fixed problem when program running in debug mode where the sense key was not always returned to the operator.
IBM AIX 5.x support added


Version 1.18 (Released April 2003)

Added 106 new log entries for LSI-based RAID storage subsystems.
Fixed OSX-Specific problem with discovery, where it would not discover a disk at LUN0.
Added attribute descriptions for IDE SMART attributes #6,11,13
LINUX/Windows specific fix to add description "ID ATA-4 X3T13 1153D rev18" for appropriate IDE disks.
Fixed LINUX-only problem where firmware rev on IDE disks displayed backwards.
Added -help option, in case user was running a shell that "absorbed" the -? option.


Version 1.17 (Released March 2003)

Switched to "no rewind" type drivers, i.e., /dev/rmt/0mn for tape polling. This prevents a tape from being rewound under LINUX at polling time because of a poorly written device driver. Note that this problem could have appeared under other operating systems, but was not reported to us as a problem until now.
Fixed problem introduced in 1.16E where carriage returns used in interactive mode did not default to value shown as default in prompt.
Fixed another issue with parsing command line options, only reported in Apple however, where commands with "+" value, i.e, -I+ caused next command option to be ignored.
Program no longer automatically attempts an automatic retry on an invalid CDB.
Documented issue where -W option must NOT be followed by a space before the filename.
Better error handling in event invalid options are supplied. Program now gives you specifics on what is the problem, rather then dumping command-line options usage to screen.
Changed html documentation so Javascript is not used. Found incompatibility problem with browser on Apple OS X)
Added additional Mylex RAID controller event entries introduced in FW 9.02.