Finally: SMART over USB is coming

The short version: smartmontools 5.39 was just released and provides support for several USB controllers, including the widespread JMicron controllers found in many external USB disk enclosures. Hooray!

The long version:

People into storage are no doubt familiar with SMART. For those who don’t, SMART is a protocol/feature of computer hard disks that provides valuable diagnostic information about how well your hard drive is doing. Considering that conventional hard disks (conventional as in rotational, with spinning moving parts, unlike the new trendy expensive SSD disks which are based on memory chips – sort of) have a nasty tendency to croak at the most unwanted time, trust me you want to keep an eye on your disks health. I have owned a ridiculously large number of disks over time, and I can say without a doubt that at least half of them have eventually degraded to the point of being unusable.

Now a common problem is that a lot of people use external disks for storage, and external disks are almost always based on USB disk enclosures. The SMART diagnostic protocol is part of the ATA disk protocol, and as such can function directly over an ATA disks, but also with SAS disks and even SCSI disks since most Operating System provide an emulation layer for ATA (and SCSI provides its own mode and log pages to report diagnostic information).

No such luck with USB. The people who designed the USB Storage class driver specifications, in their infinite wisdom, decided to ignore those pesky geeks calling for a “ATA passthru mechanism” be put into the spec. How dare they ? Are there any donuts left.

Now, fortunately many USB controller vendors saw the need for this feature and provide some (non-standard) mechanism to send direct ATA commands to USB disks (and if you can send an ATA command, you can send a SMART command). However, “non-standard” often means not documented, and that means hardly ever supported. You can try to run, say, the Seagate or Maxtor disk recovery boot image with a USB disk, it will not work. It will spit at you and laugh at your misfortune.

But there is hope now for FOSS users! The smartmontools open-source project has just released version 5.39 which includes experimental support for many USB controllers, including the widespread JMicron controller found in many external USB enclosures. Fedora 12 already provides it in its testing repository. Give it a try, for me it “just works”.

Tags: ,

Cdrdao 1.2.3 released

After a 3 years hiatus, I’ve finally released cdrdao 1.2.3.

Cdrdao is in a fairly mature state, with little need for brand new features or improvements, but 1.2.2 had accumulated a number of compile problems with recent versions of gcc and still had some outstanding bugs open. One of these, a bug affecting the core functionality of cdrdao TOC generation, was fixed by talented Thomas Vander Stichele (off-by-one pregap length computation, ticket #604751).

As far as new code goes, 1.2.3 includes a number of new native SCSI backends. Edgar Fuß provided backends for Irix, Mac OSX and NetBSD, while I rewrote the sg-based linux SCSI module from scratch. The new Linux code behaves better with recent ConsoleKit-based distributions.

This new native backends effort aims at providing an alternative to the ageing libscg library that is currently bundled with cdrdao. I am currently postponing upgrading libscg to a newer version of cdrtools until I manage to get some answers on the whole cdrtools license quagmire, which in itself is worthy of a separate post. Or several of them.

Tags:

A taste of things to come from Sun

# cd linux-2.6.31.1
# make oldconfig
[...]
linux-2.6.31.1 # time make -j
[...]

real    1m11.725s