Initiativet for at implementere støtte for Apple's M1-chip i Linux, fremmet af projekterne Asahi Linux og Corellium, har nået et punkt, hvor det er muligt at køre GNOME-desktoppen i et Linux-miljø på et system med en Apple M1-chip. Visningen er organiseret via framebuffer, og OpenGL-support er sikret ved hjælp af den softwarebaserede rasterisator LLVMPipe. Næste skridt vil være at involvere display-coprocessoren for output med op til 4K opløsning, som der allerede er udført reverse engineering af driverne til.
Projektet Asahi har opnået inklusion af basal understøttelse af M1 SoC-komponenter, der ikke er relateret til GPU, i Linux-kernen. I det demonstrerede Linux-miljø er der anvendt flere ekstra patches ud over de funktioner, der findes i den standard kerne, relateret til PCIe, pinctrl-driveren til den interne bus og display-driveren. Disse tilføjelser har gjort det muligt at få output til skærmen og få USB og Ethernet til at fungere. Grafikaccelerationen bruges dog endnu ikke.
Det er interessant, at for reverse engineering af M1 SoC har Asahi-projektet i stedet for at forsøge at disassemblere macOS-driverne implementeret en hypervisor, der kører i niveauet mellem macOS og M1-chippen og i et transparent mode fanger og logger alle operationer med chippen. Blandt de træk ved M1 SoC, som besværliggør understøttelsen i tredjeparts OS, nævnes tilføjelsen af en coprocessor til displaycontrolleren (DCP). Halvdelen af funktionen fra macOS-displaydriveren er blevet flyttet til denne coprocessor, som kalder de tilgængelige funktioner fra coprocessoren gennem et specielt RPC-interface.
Entusiaster har allerede analyseret tilstrækkeligt med kald fra dette RPC-interface til at aktivere coprocessoren til udskæringsoutput samt til at styre den hårde musemarkør og udføre opgaver med sammensætning og skalering. Problemet er, at RPC-interface er afhængigt af firmwaren og ændrer sig i hver version af macOS, derfor planlægger Asahi Linux at implementere støtte kun for bestemte firmwareversioner. Først vil understøttelse blive sikret for firmwaren, der leveres med macOS 12 "Monterey". Det er ikke muligt at downloade den nødvendige firmwareversion, da firmwaren installeres af iBoot inden overgangen til operativsystemet og med verifikation via digital signatur.


Kilde: opennet.ru
