TODO list for smartmontools:

$Id: TODO,v 1.56 2004/09/05 21:04:56 ballen4705 Exp $

SATA devices under Linux
------------------------
Currently work OK if you use the standard IDE drivers in
drivers/ide. If you use the new libata drivers, it won't work
correctly because libata doesn't yet support the needed
ATA-passthrough ioctl() calls. Jeff Garzik, the libata developer, says
that this support will be added in the future. When this happens, add
support to smartmontools for a new SATA/libata device type '-d sata'.

Note: a unofficial (not supported by Jeff Garzik) patch is now
available to libata that provides the HDIO_DRIVE_TASK and
HDIO_DRIVE_CMD ioctl()s that are needed by smartmontools. Please
search the Linux Kernel Mailing list to find this patch, or look at the
thread:
http://groups.google.de/groups?hl=en&lr=&ie=UTF-8&threadm=2yYBY-4HB-55%40gated-at.bofh.it&rnum=3&prev=/groups%3Fq%3Dsmartmontools%26hl%3Den%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26selm%3D2yYBY-4HB-55%2540gated-at.bofh.it%26rnum%3D3

USB devices under Linux
-----------------------
Some USB devices can hang smartctl or smartd.  This is because these
devices fail to comply with SCSI specifications for their packet
command sets.  Work on improving the detection and bail-out procedures
for these flawed devices, so that the user sees an informative error
message and smartd/smartctl don't hang.

ATA-4 (no kidding!)
-------------------
smartctl: add another -t TESTTYPE option to accomodate old-style ATA-4
IBM disks (ATA-4 has no self-test commands). See IBM S25L-2426-02 OEM
HARD DISK DRIVE SPECIFICATIONS for DBCA-203240/204860/206480 2.5-Inch
Hard Disk Drive with ATA Interface Revision (1.0)
http://www.hgst.com/tech/techlib.nsf/techdocs/85256AB8006A31E587256A7D00642A1D/$file/dbca_sp.pdf
section 12.30.1.5 for details.  These disks offer no self-test option,
and the -t offline command only tests a small part of the disk (a
'segment').  We need a -t multioffline that:
 (1) issues auto offline immediate command (tests ONE segment)
 (2) waits until estimated completion time
 (3) tests if off-line data collection status is set to 0x02 (all
     segments completed)
 (4) if not, return to (1)

ATA-6/7
-------
Support extended error logs
Support extended self-test logs

smartctl/smartd
---------------
Add additional -v options (corresponding to comments in
atacmds.c:ataPrintSmartAttribName().

Add interface to Megaraid ATA RAID controllers (Erik)

smartctl: 
---------
Add command line option to issue SMART SAVE ATTRIBUTE VALUES command
Feature Register value ATA_SMART_SAVE 0xd3

Perhaps modify the -q option (quiet mode) so that it only warns of ATA
errors if they have (say) taken place in the last 168 hours (week).

Parse and print additional Attribute flag meanings (IBM ones, eg
performance etc).  These are now documented in atacmds.h -- we just
need to modify the format of the Attribute table.

Modify the SMART self-test log table printing so that we ALSO print
the value of the self-test failure checkpoint byte, if it's one of the
recognized values.  See routine SelfTestFailureCodeName and
documentation in atacmds.h.

smartd:
-------
Perhaps change <nomailer> special argument to -m to have also
<nomailer_fork> which would actually work with -M exec to run the
executable/script in the background rather than in the foreground.
But let's wait for someone to request this. At that point we should
probably use fork/exec rather than system().

Perhaps change smartd to look in /proc/ide and /proc/scsi to see what
exists? If something doesn't exit then don't try to open it?  This
should probably be the default option if there is no configuration
file.

Add ability to monitor "worst" value from attributes (sometimes it
gets larger!) and to monitor the threshold value (sometimes it
changes!).

Add command line option that scans devices then WRITES
/etc/smartd.conf, perhaps as /etc/smartd.conf.output, just for devices
that can be monitored.

FreeBSD
-------

Add support for 3ware 9000 series SATA controllers.

Cygwin and Windows
------------------
Add IDE/ATA selective self test and check power mode.

Access SCSI devices via IOCTL_SCSI_PASS_THROUGH on 2000/XP
to support systems with missing ASPI driver.

Windows
-------
Provide some installer.

Packaging
---------
Under freebsd and solaris, the following are wrong:
smartd.conf: has linux device paths
smart*.in  : man pages have (mostly) linux device paths
