Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Software
>
Kernel Extension geht plötzlich nicht mehr in Mojave
Kernel Extension geht plötzlich nicht mehr in Mojave
Weia
31.05.24
22:33
Hallo an alle,
ich habe leider ein Problem in einem Bereich, wo ich mich so gut wie gar nicht auskenne: 1 (von insgesamt 2) seit vielen Jahren installierten und funktionierenden Kernel Extensions geht plötzlich nicht mehr, wobei
plötzlich
insofern relativ ist, als ich sie zuvor das letzte Mal vor einem Jahr benutzt habe.
Die Kernel Extension ist
daspi 1.5
(ein Treiber für Blu-ray-Laufwerke); das Programm, das sie benötigt, ist
MakeMKV
, mit dem ich alle Jubeljahre mal eine Blu-ray auslese.
MakeMKV
hatte ich eben auf die neuste Version (1.17.7) aktualisiert; macOS ist bei mir noch immer
10.14.6 Mojave
.
MakeMKV
findet
daspi
auf einmal nicht mehr und greift daher über den
OS access mode
(d.h. den macOS-eigenen Treiber) auf das Laufwerk zu; angeblich geht das in 99,9% der Fälle genauso, aber bei mir ging das noch nie; ich bekomme dann nur endlose SCSI-Errors.
daspi
scheint auch in der Tat nicht geladen; der
KextViewr
von Patrick Wardle, der alle geladenen Kernel Extensions auflistet, zeigt (von Apples Kernel Extensions abgesehen) nur noch den
SATSMARTDriver
an, meine zweite seit Jahren genutzte Kernel Extension (zur Anzeige des SMART-Status in externen Laufwerken).
Und hier geht es mit meinem Unverständnis los: In den letzten 12 Monaten (seit
daspi
das letzte Mal ging) blieb
daspi
unverändert und meiner Erinnerung nach gab es von Apple für Mojave keinerlei Updates mehr; es müsste also eigentlich alles noch exakt so sein wie vor einem Jahr, wo der
KextViewr
noch beide Extensions angezeigt hatte.
Systeminformationen
→
Software
→
Erweiterungen
sagt zu
daspi
:
daspi:
Version: 1.5
Zuletzt geändert: 27.02.22, 20:25
Paket-ID: com.makemkv.kext.daspi
Notariell beglaubigt: Unbekannt
Geladen: Nein
Erhalten von: Nicht signiert
Art: Intel
Architekturen: i386, x86_64
64-Bit (Intel): Ja
Ort: /Library/Extensions/daspi.kext
Kext-Version: 1.5
Ladbar: Nein
Fehler bei der Unterschriftenvalidierung: Nicht signiert
Abhängigkeiten: Erfüllt
Signiert von: Nicht signiert
Als blutiger Laie argwöhnte ich zunächst, das Problem sei, dass die Kernel Extension als
Ladbar: Nein
angezeigt wird. Das ist wohl aber anders zu verstehen, denn das ist bei dem
SATSMARTDriver
genauso, und der wird im
KextViewr
ja erkannt. Auch ist der
SATSMARTDriver
genauso wenig signiert und notariell beglaubigt, aber bei ihm ist das alles kein Problem: Bei ihm steht
Geladen: Ja
.
Da
daspi
gar nicht signiert ist, kann jedenfalls auch kein Zertifikat abgelaufen sein.
Ein Versuch,
daspi
im
Terminal
selbst zu laden, endet so:
[myMac:/Library/Extensions] root# /sbin/kextload -b 'com.makemkv.kext.daspi'
com.makemkv.kext.daspi failed to load - (libkern/kext) link error; check the system/kernel logs for errors or try kextutil(8).
Und die Kernel Logs sagen dazu:
kernel kxld[com.makemkv.kext.daspi]: The following symbols are unresolved for this kext:
kernel kxld[com.makemkv.kext.daspi]: __ZN12IOUserClient8DispatchE5IORPC
kernel kxld[com.makemkv.kext.daspi]: __ZN15OSMetaClassBase8DispatchE5IORPC
kernel kxld[com.makemkv.kext.daspi]: __ZN9IOService8DispatchE5IORPC
kernel Can't load kext com.makemkv.kext.daspi - link failed.
kernel Failed to load executable for kext com.makemkv.kext.daspi.
kernel Kext com.makemkv.kext.daspi failed to load (0xdc008016).
kernel Failed to load kext com.makemkv.kext.daspi (error 0xdc008016).
Da stehe ich angesichts der Tatsache, dass im letzten Jahr nichts verändert wurde, jetzt ratlos davor.
Die Kernel Logs melden unabhängig davon in kurzen Abständen kontinuierlich:
kernel nx_corruption_detected_int:60: Corruption detected by btree_node_sanity_check:244 in container FB6A9F75-0141-4DB6-9826-3A03D739D004!
Keine Ahnung, was das heißt und ob es schlimm ist, aber mit dem
daspi
-Problem hat das wohl eher nichts zu tun.
Versteht hier jemand mehr von diesem ganzen Zeugs als ich und weiß Rat?
„“I don’t care” is such an easy lie. (The Warning, “Satisfied”)“
Hilfreich?
-1
Kommentare
sudoRinger
31.05.24
23:32
Liefert dir dies noch zusätzliche Informationen?
sudo kextutil -v /Library/Extensions/daspi.kext
Bei einem Problem half mir mal den Kext-Cache zu löschen. Hintergründe müsste ich auch nachlesen.
Hilfreich?
+2
sudoRinger
31.05.24
23:54
sudoRinger
Bei einem Problem half mir mal den Kext-Cache zu löschen. Hintergründe müsste ich auch nachlesen.
Diese Apple-Discussions zum Kext-Cache habe ich gefunden, bei der es um ein Problem mit Mojave ging. Das Ganze ist von mir natürlich nur ein Schuss ins Blaue.
sudo kextcache --clear-staging
Hilfreich?
+2
Weia
01.06.24
05:39
Zwei Vorbemerkungen:
1. Ich habe
daspi.kext
(wieder) nach
/System/Library/Extensions
verschoben; da sollte es zwar nicht sein, war es aber, als es noch funktionierte. Sollte nichts ändern, nur zur Sicherheit …
2. Falls jemanden die Meldung unten wundert: SIP ist bei mir prinzipiell ausgeschaltet.
sudoRinger
sudoRinger
Bei einem Problem half mir mal den Kext-Cache zu löschen. Hintergründe müsste ich auch nachlesen.
Diese Apple-Discussions zum Kext-Cache habe ich gefunden, bei der es um ein Problem mit Mojave ging. Das Ganze ist von mir natürlich nur ein Schuss ins Blaue.
sudo kextcache --clear-staging
Leider ändert das nichts. Trotzdem danke!
sudoRinger
Liefert dir dies noch zusätzliche Informationen?
sudo kextutil -v /Library/Extensions/daspi.kext
Nur so halb:
root# kextcache --clear-staging
root# kextutil -v /System/Library/Extensions/daspi.kext
Defaulting to kernel file '/System/Library/Kernels/kernel'
Can't create kext: invalid CFBundleVersion in identifier cache entry entry 320.
Can't create kext: invalid CFBundleVersion in identifier cache entry entry 320.
Can't create kext: invalid CFBundleVersion in identifier cache entry entry 320.
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fbd4364c7c0 [0x7fff964ec920]> { URL = "file:///System/Library/Extensions/daspi.kext/", ID = "com.makemkv.kext.daspi" }
Code Signing Failure: not code signed
/System/Library/Extensions/daspi.kext appears to be loadable (not including linkage for on-disk libraries).
Can't create kext: invalid CFBundleVersion in identifier cache entry entry 320.
Loading /System/Library/Extensions/daspi.kext.
Disabling KextAudit: SIP is off
KextAudit initialized: audit=F
(kernel) kxld[com.makemkv.kext.daspi]: The following symbols are unresolved for this kext:
(kernel) kxld[com.makemkv.kext.daspi]: __ZN12IOUserClient8DispatchE5IORPC
(kernel) kxld[com.makemkv.kext.daspi]: __ZN15OSMetaClassBase8DispatchE5IORPC
(kernel) kxld[com.makemkv.kext.daspi]: __ZN9IOService8DispatchE5IORPC
(kernel) Can't load kext com.makemkv.kext.daspi - link failed.
(kernel) Failed to load executable for kext com.makemkv.kext.daspi.
(kernel) Kext com.makemkv.kext.daspi failed to load (0xdc008016).
(kernel) Failed to load kext com.makemkv.kext.daspi (error 0xdc008016).
Failed to load /System/Library/Extensions/daspi.kext - (libkern/kext) link error.
Failed to load /System/Library/Extensions/daspi.kext - (libkern/kext) link error.
Check library declarations for your kext with kextlibs(8).
Kommentar:
Die fehlenden Symbole werden offenbar in der Kernel-Datei gesucht (das war mir bislang unklar und ist es immer noch).
Das klingt irgendwie in der Tat nach Cache-Problem, aber
kextcache --clear-staging
hat ja jedenfalls nicht geholfen.
Abgesehen
vom Link-Problem wäre die Extension ladbar.
Das sind wieder dieselben Fehlermeldungen, wie sie schon in den Kernel Logs zu finden waren. 3 Symbole, die nicht zugeordnet werden können.
Ich habe dann den Ratschlag in der letzten Zeile befolgt:
root# kextlibs /System/Library/Extensions/daspi.kext
Can't create kext: invalid CFBundleVersion in identifier cache entry entry 320.
For i386:
No libraries found.
375 symbols not found in any library kext.
For x86_64:
com.apple.iokit.IOCDStorageFamily = 1.8
com.apple.iokit.IOSCSIArchitectureModelFamily = 408.250.3
com.apple.kpi.iokit = 18.7
com.apple.kpi.libkern = 18.7
com.apple.kpi.mach = 18.7
3 symbols not found in any library kext.
Wieder dasselbe: 3 Symbole, die nicht mehr zugeordnet werden können. Aber wie kann das sein, wenn an macOS in der ganzen Zeit nichts geändert wurde?
„“I don’t care” is such an easy lie. (The Warning, “Satisfied”)“
Hilfreich?
-3
tarbi
01.06.24
07:12
Vielleicht eine blöde Frage, aber hast Du nach sudo kextcache --clear-staging auch einen Neustart gemacht?
Erst nach einem Neustart kopiert macOS automatisch alle noch verfügbaren und durch Dich zuvor einmal erlaubten Extensions wieder in den StagedExtensions-Ordner.
Hilfreich?
+1
Marcel Bresink
01.06.24
10:24
Du hast den falschen Befehl verwendet. Die richtige Vorgehensweise wäre
sudo touch /Library/Extensions
und danach ein Neustart des Computers.
Die "StagedExtensions" sind für etwas ganz anderes, nämlich als eine Art Quarantäne-Bereich für Treiber, die der Administrator noch zu genehmigen hat oder die abgelehnt wurden.
Hilfreich?
+6
Weia
02.06.24
00:52
Marcel Bresink
Du hast den falschen Befehl verwendet. Die richtige Vorgehensweise wäre
sudo touch /Library/Extensions
und danach ein Neustart des Computers.
Ich war mir nicht sicher, ob Du
touch
jetzt
zusätzlich
zu
kextcache --clear-staging
meintest oder
stattdessen
, also habe ich beides gemacht – erst
kextcache
, dann
touch
und danach Neustart. Das ändert leider überhaupt nichts.
„“I don’t care” is such an easy lie. (The Warning, “Satisfied”)“
Hilfreich?
-3
sudoRinger
02.06.24
01:55
Du hast den kext über die Bundle Id geladen. Da steht, dass ein Link nicht gefunden wurde. Geht es so?
sudo kextload /Library/Extensions/daspi.kext
Laut dieser Quelle soll es meist ohne diesen kext funktionieren
. Hilft deinstallieren?
Da steht noch was von disable "approved by Apple"
Hilfreich?
+1
Weia
02.06.24
04:26
Problem gelöst!
sudoRinger
Du hast den kext über die Bundle Id geladen. Da steht, dass ein Link nicht gefunden wurde. Geht es so?
sudo kextload /Library/Extensions/daspi.kext
Nein, das war es nicht.
Das Problem war/ist, dass
daspi.kext
in
verschiedenen
Versionen existiert, die alle
dieselbe
Versionsnummer tragen. 🙄
Die Versionen haben offenbar auch alle den exakt selben Quelltext, aber sie sind mit verschiedenen
Xcode
-Versionen kompiliert. Und für Mojave darf keine
Xcode
-Version > 10 benutzt worden sein, denn dann verlinkt
Xcode
denselben Quellcode in eine
IOKit
-API, die es unter Mojave noch gar nicht gibt – das sind diese 3 fehlenden Symbole.
Ich hatte offenbar
nach
meiner letzten erfolgreichen Nutzung schonmal „vorsorglich“ eine neuere Version installiert, mich daran jetzt aber gar nicht mehr erinnert. Die Version, die auf Mojave funktioniert, muss 2012 kompiliert worden sein.
Ich habe die alte Version aus
Time Machine
geholt, dann im
Terminal
eingegeben:
root# /sbin/kextunload '/System/Library/Extensions/daspi.kext'
root# /sbin/kextload -b 'com.makemkv.kext.daspi'
und
daspi
ist wieder da.
Wie ich darauf kam? Ich hätte gleich nach einem der fehlenden Symbole googeln sollen, hielt das aber aufgrund früherer Erfahrungen für zu speziell, um ein sinnvolles Ergebnis zu bekommen.
Jetzt habe ich es doch gemacht und gleich das erste Symbol (
__ZN12IOUserClient8DispatchE5IORPC
) war ein Volltreffer, insofern es mir zeigte, dass es eine vollkommen andere Kernel Extension gibt, der exakt auf Mojave exakt dieselben drei Symbole fehlen
. Das ist also ein systematischer Fehler. Auf der verlinkten Seite gab es eine lange Diskussion dazu und irgendwo stand dann der goldene Satz:
if you are on macOS Mojave kext must be builded by xcode 10 due to SDK version
Damit war alles klar.
Laut dieser Quelle soll es meist ohne diesen kext funktionieren
. Hilft deinstallieren?
Bei meinem Laufwerk hat das ohne nie funktioniert. Ich habe es dennoch versucht und so, wie es im Moment aussieht, mir dadurch mein Blu-ray-Laufwerk geschrottet.
Insofern bin ich nicht wirklich weiter … 😢
„“I don’t care” is such an easy lie. (The Warning, “Satisfied”)“
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Musikbranche verklagt KI-Anbieter
Mac mini M4: Reparaturhandbuch bestätigt austau...
Beddit ist Geschichte, Apple entfernt Apps
Kopplung "iPhone + Apple Watch" sowie Anbindung...
iOS 18: Kritik an neuer Fotos-App reißt nicht ab
Leak aus macOS Sequoia: Apple bestätigt neuen M...
Das MacBook Pro M4
Eskalationskurs: ARM kündigt Qualcomm die Desig...