Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

TzunamiOSX

macrumors 65816
Original poster
Oct 4, 2009
1,057
434
Germany
Hi,

I want to use the S.M.A.R.T Driver for external USB drives, but I'm not able to load this driver on my Thunderbolt Main System.

On a Clean internal Monterey the SATSMARTDriver.kext is loading after install, but not on my full migrated System on my Thunderbolt drive

• Security is set to Permissive Security + kernel extensions
• System Integrity Protection status: disabled.
IMG_2491.jpeg

Bildschirmfoto 2024-04-10 um 09.57.32.png


When load manually, I get this:
Bildschirmfoto 2024-04-10 um 09.59.57.png


I hope anyone can help to get it to run.
 
Last edited:

Bigwaff

Contributor
Sep 20, 2013
2,735
1,830
but not on my full migrated System on my Thunderbolt drive
You are booting from external drive? Try booting with no other external drives connected. After boot, connect other external drive(s). Should force kext to load.
 

TzunamiOSX

macrumors 65816
Original poster
Oct 4, 2009
1,057
434
Germany
You are booting from external drive? Try booting with no other external drives connected. After boot, connect other external drive(s). Should force kext to load.
Yes, external drive is an Acasis Thunderbolt enclosure with a 4TB WD850X

Booted without any other drive connected, except for the Acasis drive. Then connect my other drives. No effect.
 

mr_roboto

macrumors 6502a
Sep 30, 2020
856
1,866
Hi,

I want to use the S.M.A.R.T Driver for external USB drives, but I'm not able to load this driver on my Thunderbolt Main System.

On a Clean internal Monterey the SATSMARTDriver.kext is loading after install, but not on my full migrated System on my Thunderbolt drive
There's a few things at work here.

First, as of macOS 11, there is no dynamic loading of KEXTs. They must be loaded at boot time. All third party KEXTs must be merged into the "Auxiliary Kernel Collection" or AuxKC. kmutil does this by copying the KEXT to a special location and "measuring" it (taking a cryptographic signature and storing it in your Mac's Secure Enclave) so that it can be checked for potential tampering at boot time.

The next piece is that special location. On Apple Silicon Macs, all KEXTs must be placed somewhere in the Preboot APFS volume. This is a special hidden volume in your operating system's APFS container which has everything required to start the Darwin kernel (including the kernel binary itself, plus all KEXTs).

But when you introduce booting from an external drive, there's a huge complication: the Preboot volume MUST live on the internal SSD. This is because Apple Silicon firmware is deliberately radically simplified for security purposes, so it has no idea how to talk to any disk other than the internal SSD. It doesn't even know how to access a USB mass storage device.

When you install macOS on an external, or update that installation, something in Apple's install process handles syncing the external drive's Preboot to a distinct location on the internal SSD's Preboot so the external install can boot. However, kmutil seemingly does not handle this case - it doesn't know how to install third party KEXTs to a different disk than the currently booted OS.

I have not heard of a workaround for this. Apple supposedly knows about the bug but has not done anything about it yet. For now, if you actually need SATSMARTDriver (or any other third party KEXT), you will have to boot from the internal SSD.

What are you using SATSMARTDriver for? You may be able to use other methods, depending on what you need.
 
  • Like
Reactions: Brian33 and IngoX

TzunamiOSX

macrumors 65816
Original poster
Oct 4, 2009
1,057
434
Germany
What are you using SATSMARTDriver for? You may be able to use other methods, depending on what you need.

To read the S.M.A.R.T Infos for my external drives?

And I write, the KEXT is working on my internal Mac Studio drive with a fresh Monterey, but not on my migrated Monterey on my Thunderbolt drive.
 

mr_roboto

macrumors 6502a
Sep 30, 2020
856
1,866
To read the S.M.A.R.T Infos for my external drives?

And I write, the KEXT is working on my internal Mac Studio drive with a fresh Monterey, but not on my migrated Monterey on my Thunderbolt drive.
So what I typically do for SMART on external USB drives is to boot Linux in a virtual machine which supports USB passthrough, connect the device, let it connect to the Linux guest VM rather than macOS, and read SMART from Linux. This may not be something suitable for you (doesn't let you continuously monitor the drive while it's mounted by macOS, which personally I don't care about), and it's a bit of a heavyweight workaround, but it works.

If you want to try doing it that way, I use VMWare Fusion. They now have a free personal-use license option, so you only have to pay if you're using it for commercial purposes. UTM (freeware) may also work, I just scanned its docs and it sounds like it supports some form of USB passthrough. Use whatever Linux distribution you like in the virtual machine, and install its "smartmontools" package. You can probably find some GUI front ends for smartmontools, I just use it from the command line because I'm comfortable with that. On the command line, first you want to use the lsblk command to see a list of all the block devices (disks) on the system, then smartctl -A -d sat /dev/your_disks_device.
 
  • Like
Reactions: Chuckeee
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.