Kext with invalid signature can load on one machine, but not the other. Why? [closed]
Asked Answered
M

0

11

I have an iMac and a Macbook Pro. I updated both to Yosemite beta (the public one). But my audio interface Focusrite Saffire 24 DSP (Firewire) works properly in the iMac, but not on the Macbook Pro.

When installing the Saffire, there is a Saffire.kext. When connecting it to the iMac, this kext loads fine, nothing unusual. This kext does NOT load when connecting it to the Macbook Pro. I tried loading it manually, and I get an error message saying that it can't be loaded since the kext has an invalid signature.

Now, I checked the signature on both computers, and they both say that the signature is invalid. But it loads fine on the iMac, even though the signature is invalid.

Why is that? What am I not understanding?

Here is some console output if that helps:

Mattiass-MacBook-Pro:Extensions mono$ codesign -dvvv Saffire.kext/
Executable=/System/Library/Extensions/Saffire.kext/Contents/MacOS/Saffire
Identifier=tc.tctechnologies.driver.Saffire
Format=bundle with Mach-O universal (i386 x86_64)
CodeDirectory v=20100 size=161 flags=0x0(none) hashes=1+3 location=embedded
Hash type=sha1 size=20
CDHash=ebc9c42dbea4f51770ff62d7de12552ae82a1fbc
Signature size=4240
Authority=Developer ID Application: TC Applied Technologies
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Signed Time=13 Mar 2014 02:58:23
Info.plist entries=19
TeamIdentifier=not set
Sealed Resources version=1 rules=4 files=0
Internal requirements count=1 size=180

Mattiass-MacBook-Pro:Extensions mono$ codesign --verify -vvvv Saffire.kext/
Saffire.kext/: invalid signature (code or signature have been modified)
In architecture: x86_64

(The Saffire is connected to a Belkin Thunderbolt Dock, which is connected to the MBP, if that matters.)

UPDATE:

Here is the error message in the log.

28/07/14 00:51:33,693 com.apple.kextd[19]: ERROR: invalid signature for tc.tctechnologies.driver.Saffire, will not load

UPDATE 2:

I got it to work in the MBP as well. I found this post: http://www.cindori.org/enabling-trim-on-os-x-yosemite/ which lead me to try out this command:

sudo nvram boot-args="kext-dev-mode=1"

After a reboot, everything was up and running again.

My question remains unanswered though, why did it work on the iMac but not the MBP?

Mohandis answered 27/7, 2014 at 22:44 Comment(6)
Create answer from for your question from your updates.Scarcely
As far as I know, Mavericks maintained a whitelist of unsigned kexts so that it would not keep warning about the same kext over and over again. I don't know if Yosemite cares about this whitelist, but it's possible. Did you by any chance use the kext on Mavericks on the iMac but not the MBP before upgrading?Westbrook
It's pretty weird that it worked without the kernel boot argument on the iMac. Mixed i386/x86-64 kexts that are compatible with OSX 10.7 are never signed in a way that will make OSX 10.9 or 10.10 happy. The vendor will need to issue you with a new, 64-bit-only kext, or alternatively, you can probably re-sign the kext yourself if you're a Mac kext developer.Westbrook
turn off System Integrity CheckPatel
I'm voting to close this question as off-topic because this would have belonged on ask different, if it wasn't way too old for that. No programming involved.Thoroughpaced
I'm voting to close this question as off-topic because this would have belonged on ask different, if it wasn't way too old for that. No programming involved.Thoroughpaced

© 2022 - 2024 — McMap. All rights reserved.