Gedemonstreerde lancering van Linux-omgeving met GNOME op apparaten met Apple M1-chip

Het initiatief om Linux-ondersteuning voor de Apple M1-chip te implementeren, gepromoot door de Asahi Linux- en Corellium-projecten, heeft het punt bereikt waarop het mogelijk is om de GNOME-desktop te draaien in een Linux-omgeving die draait op een systeem met de Apple M1-chip. De schermuitvoer wordt georganiseerd met behulp van een framebuffer en OpenGL-ondersteuning wordt geboden met behulp van de LLVMPipe-software-rasterizer. De volgende stap zal zijn om de display-coprocessor in staat te stellen een resolutie tot 4K uit te voeren, waarvoor de stuurprogramma's al zijn reverse-engineered.

Project Asahi heeft initiële ondersteuning bereikt voor niet-GPU-componenten van de M1 SoC in de belangrijkste Linux-kernel. In de gedemonstreerde Linux-omgeving werden naast de mogelijkheden van de standaardkernel verschillende extra patches gebruikt die verband hielden met PCIe, het pinctrl-stuurprogramma voor de interne bus en het beeldschermstuurprogramma. Deze toevoegingen maakten het mogelijk om schermuitvoer te leveren en USB- en Ethernet-functionaliteit te realiseren. Grafische versnelling wordt nog niet gebruikt.

Interessant genoeg implementeerde het Asahi-project, om de M1 SoC te reverse-engineeren, in plaats van te proberen de macOS-stuurprogramma's te demonteren, een hypervisor die op het niveau tussen macOS en de M1-chip draait en op transparante wijze alle bewerkingen op de chip onderschept en registreert. Een van de kenmerken van de SoC M1 die het moeilijk maakt om ondersteuning voor de chip in besturingssystemen van derden te implementeren, is de toevoeging van een coprocessor aan de displaycontroller (DCP). De helft van de functionaliteit van het macOS-beeldschermstuurprogramma wordt overgebracht naar de zijkant van de opgegeven coprocessor, die via een speciale RPC-interface de kant-en-klare functies van de coprocessor oproept.

Enthousiastelingen hebben al genoeg oproepen naar deze RPC-interface ontleed om de coprocessor te gebruiken voor schermuitvoer, maar ook om de hardwarecursor te besturen en compositie- en schaalbewerkingen uit te voeren. Het probleem is dat de RPC-interface afhankelijk is van de firmware en verandert met elke versie van macOS, dus Asahi Linux is van plan alleen bepaalde firmwareversies te ondersteunen. Allereerst zal er ondersteuning worden geboden voor de firmware die wordt meegeleverd met macOS 12 “Monterey”. Het is niet mogelijk om de vereiste firmwareversie te downloaden, aangezien de firmware door iBoot wordt geïnstalleerd in de fase voordat de controle wordt overgedragen aan het besturingssysteem en met verificatie met behulp van een digitale handtekening.

Gedemonstreerde lancering van Linux-omgeving met GNOME op apparaten met Apple M1-chip
Gedemonstreerde lancering van Linux-omgeving met GNOME op apparaten met Apple M1-chip


Bron: opennet.ru

Voeg een reactie