Woher weiß ich, dass meine Kernel-Erweiterungen 64-Bit-fähig sind?

Gibt es eine einfache Möglichkeit festzustellen, ob alle meine Kernel-Erweiterungen das Booten mit einem 64-Bit-Kernel "überleben" werden? Ich kann natürlich den "6-4-Finger-Boot" ausprobieren, aber vielleicht gibt es ein Stück Hardware, das ich selten benutze und das nicht funktioniert, wenn ich es in einem Monat benutze, sodass ich mich frage, was schief gelaufen ist.

Ich kann eine Liste der Erweiterungen in System Profiler> Software> Erweiterungen sehen, von denen 8 als nicht "64-Bit (Intel)" aufgeführt sind, aber 5 von ihnen "Pseudoerweiterungen" mit einer "in den Kernel integrierten Ladeadresse" sind ", und die 3 anderen sind CHUD-bezogen und werden wahrscheinlich weg sein, sobald ich Xcode aktualisiere? Reicht das für den Schluss, dass ich keine Probleme haben werde? Oder gibt es Erweiterungen, die jetzt nicht geladen werden und die ich irgendwie testen kann?

Antworten (4)

Soweit ich weiß, zeigt System Profiler keine Informationen für .kext-Dateien an, die geladen werden und sich an einem anderen Ort als dem Ordner /System/Library/Extensions/ befinden.

Um umfassende Informationen über die aktuell geladenen und auf Ihrem Mac verwendeten Kernel-Erweiterungen zu erhalten, können Sie das kextstatBefehlszeilentool verwenden.

Öffnen Sie die Terminal-Anwendung (im Ordner /Applications/Utilities/), geben Sie an der Eingabeaufforderung Folgendes ein und drücken Sie dann die Eingabetaste:

 kextstat

Sie erhalten eine große Liste aller geladenen Kernel-Erweiterungen. Sie sollten sich in erster Linie auf die Bundle-IDs der geladenen .kexts konzentrieren. (Das ist die umgekehrte Zeichenfolge des Domänennamens, z. B. "com.apple...."). Sie sollten in der Lage sein, diejenigen zu entfernen, die "com.apple" enthalten, da diese von Apple stammen und eine K64-Version haben sollten. Sobald Sie diese entfernt haben, müssen Sie die verbleibenden durchgehen, um sicherzustellen, dass sie als universelle K32 + K64-Versionen erstellt wurden, oder ob Sie möglicherweise sicherstellen müssen, dass Sie über die neuesten Updates verfügen.

Nachdem ich beispielsweise alle Apple-Kexts in der Ausgabe eliminiert habe, die ich erhalte, habe ich die folgenden Kexts aufgelistet. Seit ich vor ungefähr einem Jahr auf K64 umgestiegen bin, sind alle in Ordnung, also ist alles in Ordnung.

MacPro:~ mdouma46$ kextstat
Index Refs Address          Size   Wired  Name (Version) <Linked Against>
73  0 0xffffff7f8111a000 0x8000 0x8000  com.AmbrosiaSW.AudioSupport (3.2) <72 5 4 3 1>
81  0 0xffffff7f811bf000 0x9000 0x9000  jp.plentycom.driver.SteerMouse (4.0.2) <55 29 24 5 4 3>
105 0 0xffffff7f81499000 0x5000 0x5000  com.Cycling74.driver.Soundflower (1.5.2) <72 5 4 3>
115 0 0xffffff7f814bf000 0xd1000 0xd1000 com.vmware.kext.vmx86 (3.1.2) <7 5 4 3 1>
116 0 0xffffff7f81590000 0xc000 0xc000   com.vmware.kext.vmci (3.1.2) <5 4 3 1>
117 0 0xffffff7f8159c000 0x7000 0x7000  com.vmware.kext.vmioplug (3.1.2) <29 24 5 4 3 1>
118 0 0xffffff7f815a3000 0xa000 0xa000  com.vmware.kext.vmnet (3.1.2) <5 4 3 1>
119 0 0xffffff7f815ad000 0x2000 0x2000  com.nvidia.CUDA (1.1.0) <4 1>
Danke, mir war nicht klar, dass die System-Profiler-Liste nicht alle Erweiterungen enthält. Was kann ich tun, um den Speicherort der .kextBundles auf der Festplatte zu finden? Es gibt einige, nach denen ich noch suche, und die Bundle-ID ist nicht immer der Dateiname. Und enthält diese Liste nur die aktuell geladenen Erweiterungen oder auch die, die bei Bedarf geladen werden können? Es ist die letztere Gruppe, die mir am wichtigsten ist, da sie in Zukunft möglicherweise benötigt werden und jetzt nicht als Fehler angezeigt werden.

Textfind

Das kextfindDienstprogramm sucht und druckt Informationen zu Kernel-Erweiterungen (KEXTs) oder generiert Berichte.

Beispiele

Der folgende Befehl sucht /System/Library/Extensionsnach KEXTs, die die x86_64-Architektur nicht enthalten:

kextfind -not -arch x86_64

Eine erweiterte Suche, um die beiden am häufigsten für die Installation verwendeten Pfade einzubeziehen:

kextfind -f /Library/Extensions -e -not -arch x86_64

Andere Verzeichnisse

KEXTs können auch im ROM oder in einem Anwendungspaket installiert werden , aber kextfind kann nicht rekursiv suchen.

In der Leopard-Ära gab es einen Vorschlag , dass KEXTs in der /Library/StartupItemsGegend gefunden werden könnten. Da SystemStarter veraltet ist , kann es sinnvoll sein, diesen Bereich bei der Verwendung von kextfind wegzulassen.

Manuelle Seiten

Benutzer von OS X können die aktuelle Handbuchseite im Terminal anzeigen. Gehen Sie in einem Webbrowser zu:

  • x-man-page://8/kextfind

In der Mac OS X Developer Library ist die Ausgabe 2009 der Seite veraltet.

Danke

An ghoppe für die Sensibilisierung für kextfind .

Verwenden Sie den fileBefehl.

Beispiel:

$ cd /System/Library/Extensions/KeyspanUSAdriver.kext/Contents/MacOS
$ file KeyspanUSAdriver 
KeyspanUSAdriver: Mach-O universal binary with 2 architectures
KeyspanUSAdriver (for architecture x86_64): Mach-O 64-bit kext bundle x86_64
KeyspanUSAdriver (for architecture i386):   Mach-O object i386

Beachten Sie, dass es sowohl x86_64- als auch i386-Architekturen hat.

Danke, aber können Sie den Link zur Antwort von NSGod herstellen? Wenn ich eine Liste geladener Kernel-Erweiterungen von habe kextstat, wie kann ich herausfinden, wo sie sich auf der Festplatte befinden? Und wissen Sie, wie ich "Kernel-Erweiterungen finden kann, die vom Betriebssystem geladen werden können , aber derzeit nicht sind"?
  1. Führen Sie den System-Profiler aus
  2. Klicken Sie unter Software auf Erweiterungen.
  3. Beachten Sie die 64-Bit-Spalte in der Liste rechts.

Hinweis: Wenn Sie dieses Element nicht sehen, gehen Sie zu Ihrem Ansichtsmenü und vergewissern Sie sich, dass "Vollständiges Profil" ausgewählt ist.

Danke, aber das habe ich bereits getan (vielleicht war meine Frage nicht klar). NSGod gab an, dass dies nicht die vollständige Liste der geladenen Erweiterungen ist, und tatsächlich habe ich mit seiner Methode Erweiterungen von Ambrosia und Parallels gefunden, die ich nicht in der System-Profiler-Liste gesehen habe.