Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#286 closed enhancement (wontfix)

48-bit ATA commands not supported on OS X

Reported by: cmurf Owned by: somebody
Priority: major Milestone:
Component: all Version: 6.1
Keywords: macosx Cc:


When running smartctl -x /dev/disk0, I get the following messages:
SMART WRITE LOG does not return COUNT and LBA_LOW register
SCT (Get) Error Recovery Control command failed

Device Statistics (GP Log 0x04) not supported

ATA_READ_LOG_EXT (addr=0x11:0x00, page=0, n=1) failed: 48-bit ATA commands not implemented
Read SATA Phy Event Counters failed

This problem doesn't occur on the same hardware, with the same version of smartmontools, on linux.


There's uncertainty if this is an upstream bug in smartmontools or if this is a limitation of xnu or IOKit on OS X. I've filed a bug with Apple, Problem ID: 14368815.

Attachments (2)

smartctl_osx.txt (9.2 KB ) - added by cmurf 11 years ago.
smartctl -x on OS X
smartctl_linux.txt (10.2 KB ) - added by cmurf 11 years ago.
smartctl -x on linux

Download all attachments as: .zip

Change History (5)

by cmurf, 11 years ago

Attachment: smartctl_osx.txt added

smartctl -x on OS X

by cmurf, 11 years ago

Attachment: smartctl_linux.txt added

smartctl -x on linux

comment:1 by cmurf, 11 years ago

Darwin ming.local 12.4.0 Darwin Kernel Version 12.4.0: Wed May 1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64 x86_64

I've been able to reproduce these results since 10.6.x through 10.8.4, various models of Apple hardware, and HDDs and SSDs.

comment:2 by Christian Franke, 11 years ago

Resolution: wontfix
Status: newclosed
Type: defectenhancement

This is Mac OS X limitation, not a smartmontools problem.

The Darwin kernel only provides IOATASMARTInterface. This API only supports ATA IDENTIFY and SMART commands (see os_darwin.cpp). There is no transparent (S)ATA pass-through functionality. The same applies to SCSI/SAS.

As a consequence, ATA commands which are not related to SMART do not work, regardless of ATA register size (28-bit or 48-bit). Try for example: smartctl --set apm,N ... (This uses 28-bit ATA SET_FEATURES command).

Feel free to reopen this ticket after someone has added pass-through functionality to the Darwin kernel.

comment:3 by cmurf, 11 years ago

Understood. I've copied this information and cited reference to this report, to the Apple problem ID 14368815. And I've also, referenced this with downstream Macports project, ticket 39653.

Note: See TracTickets for help on using tickets.