Inițiativa de implementare a suportului pentru chipul Apple M1 în Linux, promovată de proiectele Asahi Linux și Corellium, a ajuns la un stadiu în care a devenit posibilă rularea desktop-ului GNOME în medii Linux pe un sistem cu chip Apple M1. Ieșirea pe ecran este organizată prin intermediul framebuffer-ului, iar suportul OpenGL este realizat printr-un rasterizator software, LLVMPipe. Următorul pas va fi utilizarea coprocesorului de afișare pentru ieșiri cu o rezoluție de până la 4K, iar ingineria inversă a driverelor pentru acesta a fost deja realizată.
Proiectul Asahi a reușit să includă în nucleul principal Linux suportul inițial pentru componentele SoC M1, nelegat de GPU. În mediu Linux demonstrat, pe lângă capabilitățile nucleului de bază, au fost utilizate câteva patch-uri suplimentare legate de PCIe, driverul pinctrl pentru magistrala internă și driverul de afișare. Aceste suplimente au permis realizarea notificării pe ecran și au condus la funcționarea USB și Ethernet. Încă nu este utilizat un accelerator grafic.
Este interesant că, pentru ingineria inversă a SoC M1, proiectul Asahi, în loc să încerce disassemblarea driverelor macOS, a realizat un hipervizor care rulează la nivelul dintre macOS și chipul M1, interceptând și jurnalizând în mod transparent toate operațiile cu chipul. Dintre caracteristicile SoC M1 care îngreunează implementarea suportului pentru chip în sisteme de operare externe, se menționează adăugarea coprocesorului în controllerul de afișare (DCP). Pe partea respectivului coprocesor este externizată jumătate din funcționalitatea driverului de afișare macOS, care apelează funcțiile gata pregătite ale coprocesorului printr-o interfață RPC specială.
Entuziștii au analizat deja suficient de multe apeluri ale acestei interfețe RPC pentru a activa coprocesorul pentru ieșirea pe ecran, precum și pentru controlul cursorului hardware și efectuarea operațiunilor de compunere și scalare. Problema este că interfața RPC depinde de firmware și se schimbă în fiecare versiune de macOS, așa că în Asahi Linux se preconizează realizarea suportului doar pentru anumite versiuni de firmware. În primul rând, va fi asigurat suportul pentru firmware-ul livrat în macOS 12 „Monterey”. Descărcarea variantei necesare de firmware nu este posibilă, deoarece firmware-ul este instalat de iBoot înainte de a ceda controlul sistemului de operare și cu verificarea semnăturii digitale.


Sursa: opennet.ro
