| 1 | = USB devices and smartmontools = |
| 2 | |
| 3 | To access USB storage devices, the operating system sends SCSI commands through the USB transport to the device. If the USB device is actually a PATA or SATA disk in an USB enclosure, the firmware of its USB bridge chip translates these commands into the corresponding ATA commands. This works straightforward for read and write commands, but not for SMART commands. |
| 4 | |
| 5 | To access SMART functionality, smartmontools must be able to send ATA commands directly to the disk. For USB devices, at least the following conditions must be met: |
| 6 | * The USB bridge provides an ATA pass-through command. |
| 7 | * This command is supported by smartmontools. |
| 8 | * The operating system provides a SCSI pass-through I/O-control which works through its USB-layer. |
| 9 | * SCSI support is implemented in the operating system interface of smartmontools. |
| 10 | |
| 11 | Some recent USB bridges already support the vendor independent SAT (SCSI/ATA Translation, ANSI INCITS 431-2007) standard. Other USB bridges provide vendor specific ATA pass-through commands. The current version of smartmontools supports the following pass-through commands and USB bridges: |
| 12 | || '''Command''' || '''USB bridges''' || '''smartctl option''' || '''48-bit ATA support''' || '''Comment''' || |
| 13 | || SAT ATA pass-through 12 and 16 || various (Initio, Oxford, ...) || -d sat[,16]; -d sat,12 || requires '-d sat[,16]' || Older Linux kernels may require '-d sat,12' || |
| 14 | || Cypress ATACB || Cypress CY7C68300B/C (AT2LP), CY7C68310 (ISD-300LP) || -d usbcypress[,CMD] || No || CY7C68300A (AT2) may not work. || |
| 15 | || JMicron ATA pass-through || JMicron JM20329, JM20335-39 || -d usbjmicron[,x][,PORT] || No:JM20327, Yes:JM20336/9 || '-d usbjmicron,x' enables 48-bit support || |
| 16 | || Sunplus ATA pass-through || Sunplus SPIF215/6, SPIF225/6 || -d usbsunplus || Yes || || |
| 17 | |
| 18 | Smartmontools was successfully tested with [wiki:Supported_USB-Devices many USB devices] on several Platforms. This will never work on MacOS X unless someone adds SCSI pass-through support to this OS. If the USB ID can be obtained from the operating system, smartmontools also supports auto-detection of (the already tested) USB devices. Then it is not necessary to specify the '-d' option. See the following table for details: |
| 19 | || '''Platform''' || '''...has SCSI pass-through''' || '''smartmontools supports SCSI''' || '''... supports USB''' || '''... auto-detection''' || '''Comment''' || |
| 20 | || Linux || Yes || Yes || YES || YES || See comment about SAT in above table || |
| 21 | || MacOS X || No || No || No || No || USB works with e.g. XP in a VM || |
| 22 | || FreeBSD || Yes || Yes || YES || No || || |
| 23 | || NetBSD || Yes || Yes || YES || No || || |
| 24 | || OpenBSD || Yes || Yes || YES || No || || |
| 25 | || Solaris || Yes || Yes || YES || No || || |
| 26 | || QNX || ? || No || No || No || || |
| 27 | || OS/2 || ? || No || No || No || || |
| 28 | || Windows NT/2K/XP/Vista || Yes || Yes || YES || YES || Auto-detection is slow due to the use of 'wmic.exe' || |
| 29 | || Windows 9x/ME || Yes || Yes || YES || No || Requires ASPI driver || |