Closed robohack closed 1 year ago
There hasn’t been an update for almost four years now and it never signed by the developer, so I don't think you'll find the help you are looking for here. You might have better luck contacting the third party utility developer who signed the version you were using.
The driver's Info.plist defines a very long list of drives to use a non-standard communication mode. Your problematic drive is defined there to use the jmicron-specific mode instead of standard SAT:
<key>(No Name 2)</key>
<dict>
<key>PassThroughMode</key>
<string>jmicron</string>
<key>idProduct</key>
<integer>9481</integer>
<key>idVendor</key>
<integer>5421</integer>
</dict>
(The decimal numbers make the correspondance a lot less obvious.)
Removing this entry or changing "jmicron" to "sat16"/"sat12" could help.
They might have changed the hardware, but used the old USB id.
Thanks @Artoria2e5 for your comments. I guess I'll just just close this issue though as I'm not using that drive as much any more and I'm on a new Mac and of course much newer OS.
It would still be interesting to have SMART data access for this drive, but I won't be able to pursue testing this driver again, and with lack of any recent updates I'd be reluctant to try this in a current kernel anyway.
Hmmmm, it could be interesting to put a access method setter in the driver so a program can change it at runtime... Changing Info.plist would have the downside of requiring a re-sign.
Configuring the driver runtime would be possible, but it is too late in boot if you have the enclosure plugged in.
That would be too late to not break the USB stuff, but I was thinking about making smartctl -d sat,16
kind of work – so that I can get the actual SMART logs and not be stopped by these 48-bit problems. Wait, this feature already exists in smart_status.c via IORegistryEntrySetCFProperties!
.... of course it didn't quite work. I didn't even know it could return kIOReturnUnsupported. the binaryfruit thing is supposed to be unchanged, riiiight?
$ sudo ./smart_status 0x10000049e sat16
ID : 0x10000049e
Class : fi_dungeon_driver_IOSATDriver
Set PassThroughMode = sat16
IORegistryEntrySetCFProperties returned 0xe00002c7.
I had installed the signed copy of version 0.8 of this driver on my older iMac running 10.13.6 to enable SMART over FireWire to my new OWC ElitePro Dual U3FW-R1 enclosure, and that part worked great.
However I also have a JMicron based USB enclosure with a drive I use for Time Machine, and it kept disconnecting and leaving the rest of the USB system in disarray (
system_profiler
and USB Prober would hang, other devices, especially USB-Serial adapters would get stuck or disappear, etc.).For now I've removed the driver. I'm reluctant to try a new version without some assurance that this particular bug has been fixed. I'm also reluctant to try an un-signed release.
The JMicron shows up as:
When it goes offline the logs show SATSMART timeouts several times (which I suspect are for the USB drive, then the disk's "channel" goes offline, writes fail, and the volume is unmounted (the
IOStorageFamily
messages repeat many times):