Demonstrierter Start der Linux-Umgebung mit GNOME auf Geräten mit Apple M1-Chip

Die von den Asahi Linux- und Corellium-Projekten geförderte Initiative zur Implementierung der Linux-Unterstützung für den Apple M1-Chip hat einen Punkt erreicht, an dem es möglich ist, den GNOME-Desktop in einer Linux-Umgebung auszuführen, die auf einem System mit dem Apple M1-Chip läuft. Die Bildschirmausgabe wird mithilfe eines Framebuffers organisiert, und OpenGL-Unterstützung wird mithilfe des LLVMPipe-Software-Rasterizers bereitgestellt. Der nächste Schritt besteht darin, den Display-Coprozessor für die Ausgabe mit einer Auflösung von bis zu 4K zu aktivieren, dessen Treiber bereits rückentwickelt wurden.

Project Asahi hat erste Unterstützung für Nicht-GPU-Komponenten des M1 SoC im Haupt-Linux-Kernel erreicht. In der demonstrierten Linux-Umgebung wurden zusätzlich zu den Fähigkeiten des Standardkernels mehrere zusätzliche Patches im Zusammenhang mit PCIe, dem Pinctrl-Treiber für den internen Bus und dem Anzeigetreiber verwendet. Diese Ergänzungen ermöglichten die Bereitstellung einer Bildschirmausgabe sowie die Erzielung von USB- und Ethernet-Funktionalität. Grafikbeschleunigung wird noch nicht genutzt.

Interessanterweise implementierte das Asahi-Projekt zum Reverse Engineering des M1-SoCs, anstatt zu versuchen, die macOS-Treiber zu zerlegen, einen Hypervisor, der auf der Ebene zwischen macOS und dem M1-Chip läuft und alle Vorgänge auf dem Chip transparent abfängt und protokolliert. Eines der Merkmale des SoC M1, das die Implementierung der Unterstützung des Chips in Betriebssystemen von Drittanbietern erschwert, ist die Hinzufügung eines Coprozessors zum Display-Controller (DCP). Die Hälfte der Funktionalität des macOS-Anzeigetreibers wird auf die Seite des angegebenen Coprozessors übertragen, der über eine spezielle RPC-Schnittstelle die vorgefertigten Funktionen des Coprozessors aufruft.

Enthusiasten haben bereits genügend Aufrufe dieser RPC-Schnittstelle geparst, um den Coprozessor für die Bildschirmausgabe sowie zur Steuerung des Hardware-Cursors und zur Durchführung von Compositing- und Skalierungsvorgängen zu verwenden. Das Problem besteht darin, dass die RPC-Schnittstelle von der Firmware abhängt und sich mit jeder Version von macOS ändert. Daher plant Asahi Linux, nur bestimmte Firmware-Versionen zu unterstützen. Zunächst wird die mit macOS 12 „Monterey“ ausgelieferte Firmware unterstützt. Es ist nicht möglich, die erforderliche Firmware-Version herunterzuladen, da die Firmware von iBoot vor der Übergabe der Kontrolle an das Betriebssystem und mit Überprüfung mittels digitaler Signatur installiert wird.

Demonstrierter Start der Linux-Umgebung mit GNOME auf Geräten mit Apple M1-Chip
Demonstrierter Start der Linux-Umgebung mit GNOME auf Geräten mit Apple M1-Chip


Source: opennet.ru

Kommentar hinzufügen