Initiativet til å implementere Linux-støtte for Apple M1-brikken, fremmet av Asahi Linux- og Corellium-prosjektene, har nådd et punkt hvor det er mulig å kjøre GNOME-skrivebordet i et Linux-miljø som kjører på et system med Apple M1-brikken. Skjermutdata er organisert ved hjelp av en rammebuffer, og OpenGL-støtte gis ved å bruke LLVMPipe-programvaren rasterizer. Det neste trinnet vil være å gjøre det mulig for skjerm-koprosessoren å sende ut opptil 4K-oppløsning, som driverne allerede er omvendt.
Project Asahi har oppnådd innledende støtte for ikke-GPU-komponenter av M1 SoC i hoved Linux-kjernen. I det demonstrerte Linux-miljøet, i tillegg til egenskapene til standardkjernen, ble flere ekstra patcher relatert til PCIe, pinctrl-driveren for den interne bussen og skjermdriveren brukt. Disse tilleggene gjorde det mulig å gi skjermutgang og oppnå USB- og Ethernet-funksjonalitet. Grafikkakselerasjon er ennå ikke brukt.
Interessant nok, for å reversere M1 SoC, implementerte Asahi-prosjektet, i stedet for å prøve å demontere macOS-driverne, en hypervisor som kjører på nivået mellom macOS og M1-brikken og transparent avskjærer og logger alle operasjoner på brikken. En av funksjonene til SoC M1 som gjør det vanskelig å implementere støtte for brikken i tredjeparts operativsystemer, er tillegget av en koprosessor til skjermkontrolleren (DCP). Halvparten av funksjonaliteten til macOS-skjermdriveren overføres til siden av den spesifiserte koprosessoren, som kaller opp de ferdige funksjonene til koprosessoren gjennom et spesielt RPC-grensesnitt.
Entusiaster har allerede analysert nok samtaler til dette RPC-grensesnittet til å bruke koprosessoren for skjermutgang, samt til å kontrollere maskinvaremarkøren og utføre komposisjons- og skaleringsoperasjoner. Problemet er at RPC-grensesnittet er fastvareavhengig og endres med hver versjon av macOS, så Asahi Linux planlegger kun å støtte visse fastvareversjoner. Først av alt vil det bli gitt støtte for fastvaren som leveres med macOS 12 "Monterey". Det er ikke mulig å laste ned den nødvendige fastvareversjonen, siden fastvaren installeres av iBoot på stadiet før overføring av kontroll til operativsystemet og med verifisering ved hjelp av en digital signatur.
Kilde: opennet.ru