OS-X-SAT-SMART-Driver icon indicating copy to clipboard operation
OS-X-SAT-SMART-Driver copied to clipboard

Need arm64e on M1 device

Open trK54Ylmz opened this issue 2 years ago • 20 comments

I have installed BinaryFruit's SAT SMART Driver, when I run diskutil info, I got the error below,

diskutil[25583:146119] Error loading /Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib:  dlopen(/Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib, 0x0106): tried: '/Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib' (fat file, but missing compatible architecture (have 'x86_64,arm64', need 'arm64e'))

Shorter version,

(fat file, but missing compatible architecture (have 'x86_64,arm64', need 'arm64e'))

I think the kext does not support arm64e architecture. Is anyone came across with this error?

The device is Mac Mini 2020.

trK54Ylmz avatar Jul 14 '22 22:07 trK54Ylmz

I installed from https://binaryfruit.com/drivedx/usb-drive-support this version 'for macOS 11 and Apple Silicon' https://binaryfruit.com/download/mac/satsmartdriver/SATSMARTDriver-0.10.3.macOS11_and_AppleSilicon.zip and it works fine on M1 MacMini Big Sur an now Monterey 12.4

All my external USB HDs are supported.

macuserguru avatar Jul 15 '22 03:07 macuserguru

Hi @macuserguru, I have installed the same exact driver on Mac Mini, Monterey 12.4 but Disk Utility says S.M.A.R.T. status: Not Supported..

On diskutil, I always get fat file, but missing compatible architecture error.

$ lipo -info /Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib
Architectures in the fat file: /Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib are: x86_64 arm64

trK54Ylmz avatar Jul 15 '22 07:07 trK54Ylmz

Delete all kext as you can read here, reboot and install then new https://binaryfruit.com/drivedx/usb-drive-support

Run both versions of rm to remove older versions - and search for certainty for SATSMARTDriver.kext and SATSMARTLib.plugin in your system after you have delete.

UNINSTALL INSTRUCTIONS On macOS 10.11+ – type following commands (in Terminal.app):

sudo rm -r /Library/Extensions/SATSMARTDriver.kext
sudo rm -r /Library/Extensions/SATSMARTLib.plugin
Reboot computer

On old versions of macOS – type following commands (in Terminal.app):

sudo rm -r /System/Library/Extensions/SATSMARTDriver.kext
sudo rm -r /System/Library/Extensions/SATSMARTLib.plugin
Reboot computer

macuserguru avatar Jul 15 '22 15:07 macuserguru

I have removed the files, and rebooted the computer.

After reboot,

$ kmutil showloaded|grep "binaryfruit"
No variant specified, falling back to release

When I run diskutil info diskX, I got no error (SMART Status: Not Supported)

Then I have installed new file which I have downloaded (from "for macOS 11 and Apple Silicon ") and rebooted again.

$ kmutil showloaded|grep "binaryfruit"                     
No variant specified, falling back to release
  238    0 0xfffffe0006f187f0 0x4000     0x4000     com.binaryfruit.driver.SATSMARTDriver (0.10.3) ....

The error stays same when I run diskutil info,

diskutil[1766:12463] Error loading /Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib:  dlopen(/Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib, 0x0106): tried: '/Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib' (fat file, but missing compatible architecture (have 'x86_64,arm64', need 'arm64e'))

trK54Ylmz avatar Jul 15 '22 16:07 trK54Ylmz

What are your settings in system settings / security / allow apps download from?

I use 'App Store and verified developers'

macuserguru avatar Jul 15 '22 16:07 macuserguru

Same for me. I did the security update from recovery mode also, Apple Silicon 3rd party kext

trK54Ylmz avatar Jul 15 '22 16:07 trK54Ylmz

All the same https://macsupport.tuxera.com/hc/en-gb/articles/4409208805522-How-do-I-enable-third-party-kernel-extensions-on-Apple-Silicon-based-Macs-

macuserguru avatar Jul 15 '22 17:07 macuserguru

lipo -info /Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib

2022-07-15 19:07:09.145 xcodebuild[1924:19065] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore 2022-07-15 19:07:09.145 xcodebuild[1924:19065] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore Architectures in the fat file: /Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib are: x86_64 arm64

macuserguru avatar Jul 15 '22 17:07 macuserguru

Have you Xcode and Rosetta 2 installed?

macuserguru avatar Jul 15 '22 17:07 macuserguru

Did you see USB HD Drives in DriveDX?

macuserguru avatar Jul 15 '22 17:07 macuserguru

lipo -info /Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib

2022-07-15 19:07:09.145 xcodebuild[1924:19065] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore 2022-07-15 19:07:09.145 xcodebuild[1924:19065] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore Architectures in the fat file: /Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib are: x86_64 arm64

I got the same thing but I don't understand why you don't get the error because the plugin did not compile with arm64e architecture,

$ lipo -info /Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib

2022-07-15 20:10:03.932 xcodebuild[3260:34940] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
2022-07-15 20:10:03.932 xcodebuild[3260:34940] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
Architectures in the fat file: /Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib are: x86_64 arm64

For example,

$ lipo -info /System/Library/Extensions/IOAccelerator2D.plugin/Contents/MacOS/IOAccelerator2D
Architectures in the fat file: /System/Library/Extensions/IOAccelerator2D.plugin/Contents/MacOS/IOAccelerator2D are: x86_64 arm64e

The IOAccelerator2D.plugin compiled as arm64e as well.

From Apple documentation,

Kexts on Apple silicon must support the arm64e architecture

trK54Ylmz avatar Jul 15 '22 17:07 trK54Ylmz

Have you Xcode and Rosetta 2 installed?

Both are installed.

trK54Ylmz avatar Jul 15 '22 17:07 trK54Ylmz

Did you see USB HD Drives in DriveDX?

Yes, I can see on DriveDX, but on Disk Utility it says does not support and diskutil tool has problems also,

Screen Shot 2022-07-15 at 20 17 14

trK54Ylmz avatar Jul 15 '22 17:07 trK54Ylmz

Download the new DriveDX.app from https://binaryfruit.com/drivedx - this include a SATSMART too.

macuserguru avatar Jul 15 '22 17:07 macuserguru

Actually, I already installed the application from that link and the driver was in it. It didn't work. In my humble opinion, the SATSMARTLib.plugin should compile from source code with arm64e as target architecture.

trK54Ylmz avatar Jul 15 '22 20:07 trK54Ylmz

I use DriveDX 1.11.0 direct downloaded from https://binaryfruit.com/drivedx The other version from Appstore are ver. 1.7.0

In the DriveDX 1.11.0 app-package are included two SMART driver 0.10 versions

DriveDX 1 11 0 app-package

macuserguru avatar Jul 16 '22 04:07 macuserguru

Actually, I already installed the application from that link and the driver was in it. It didn't work. In my humble opinion, the SATSMARTLib.plugin should compile from source code with arm64e as target architecture.

Delete all this drivers, reboot, download this version 'for macOS 11 and Apple Silicon' and install this https://binaryfruit.com/download/mac/satsmartdriver/SATSMARTDriver-0.10.3.macOS11_and_AppleSilicon.zip and it works fine on M1 MacMini Big Sur an now Monterey 12.4

macuserguru avatar Jul 16 '22 04:07 macuserguru

Look for registrated .kext .dext Thanks to 'Apfeltalk' https://www.apfeltalk.de/community/threads/sicherheit-ausnahme-kext-dext-erteilen-auch-in-terminal-moeglich.568728/#post-5709790 ....

sudo /usr/sbin/klist_cdhashes /var/db/SystemPolicyConfiguration/KextPolicy /tmp/KextPolicy.plist

macuserguru avatar Jul 16 '22 11:07 macuserguru

I believe SATSMARTDriver has no problem but SATSMARTLib has. I have tried the command as well,

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CDHashArray</key>
	<array>
		...
	</array>
	<key>NullHashBundles</key>
	<array>
		...
		<string>com.binaryfruit.driver.SATSMARTDriver</string>
		...
	</array>
	<key>BootSessionUUID</key>
	<string>...</string>
</dict>
</plist>

In my humble opinion, the problem is related to the arm64 build. On my Intel Mac, S.M.A.R.T. is verified, Disk Utility CLI works also.

I think you should see error message when you run diskutil info disk[disk ID] on your M1 Mac.

trK54Ylmz avatar Jul 16 '22 18:07 trK54Ylmz

Protocol: USB 2022-07-17 16:08:04.456 diskutil[6038:244182] Error loading /Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib: dlopen(/Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib, 0x0106): tried: '/Library/Extensions/SATSMARTLib.plugin/Contents/MacOS/SATSMARTLib' (fat file, but missing compatible architecture (have 'x86_64,arm64', need 'arm64e'))

But this is irrelevant for the display of the USB hard disk in DriveDX!

Or with SmartReporter: SmartReporter: S.M.A.R.T.-checked hard disks: Hardware, iSCPreboot, xART, Update, Preboot, VM, Macintosh HD (........) WD 5TB 3rd (WD-.......)

With both DriveDX and SmartReporter I could see S.M.A.R.T. values from external hard-disks.

macuserguru avatar Jul 17 '22 14:07 macuserguru