Az Apple M1 chip Linux támogatásának megvalósítási kezdeményezése, amelyet az Asahi Linux és Corellium projektek népszerűsítettek, elérte azt a szintet, ahol a GNOME asztali környezet elindítása lehetséges egy Apple M1 chipppel rendelkező rendszeren futó Linux környezetben. A képernyő kimenete framebuffer segítségével történik, míg az OpenGL támogatást az LLVMPipe programozott raszterizáló biztosítja. A következő lépés a megjelenítő társprocesszor bevonása lesz, amely lehetővé teszi a 4K felbontású kimenetet, amelyhez már elkészült a meghajtók visszafejtése.
Az Asahi projekt elérte az M1 SoC komponensek GPU-val nem kapcsolatos kezdeti támogatásának integrálását a Linux kernel fő ágába. Az ismertetett Linux környezetben a standard kernel lehetőségein túl számos kiegészítő javítást használtak, amelyek a PCIe-hez, az alaplap belső buszához tartozó pinctrl meghajtóhoz és a megjelenítő meghajtóhoz kapcsolódtak. Ezek a kiegészítések lehetővé tették a képernyőre történő kimenetet és USB valamint Ethernet működését. A grafikai gyorsítást még nem használják.
Érdekes, hogy a M1 SoC visszafejtéséhez az Asahi projekt a macOS meghajtók disassembles helyett egy hipervizort valósított meg, ami a macOS és az M1 chip között egy szinten működik, és átlátszó módon rögzíti és naplózza a chip-hez kapcsolódó minden műveletet. Az M1 SoC valamely jellemzője, amely nehezíti a chip támogatásának megvalósítását külső operációs rendszerekben, az, hogy a megjelenítő vezérlőbe (DCP) társprocesszort integráltak. A megjelenítő meghajtó macOS funkcionalitásának fele átszármazott a megjelenítő vezérlő ezen társprocesszorára, amely a társprocesszor kész funkcióit egy speciális RPC interfészen keresztül hívja meg.
A lelkes fejlesztők már elegendő hívást elemeztek a RPC interfészen, hogy a társprocesszort képernyőre történő kimenetre, valamint a hardveres kurzor vezérlésére és a kompozitálási, illetve méretezési műveletek végrehajtására aktiválják. A probléma abban rejlik, hogy az RPC interfész a firmware-től függ, és minden macOS verzióban változik, ezért az Asahi Linux-ban csak bizonyos firmware verziók támogatását tervezik megvalósítani. Elsősorban a macOS 12 „Monterey” verziójához szállított firmware támogatása lesz biztosítva. A szükséges firmware verzió letöltése nem lehetséges, mivel azt az iBoot telepíti az operációs rendszerhez való átkapcsolás előtt, és digitális aláírással igazolja.


Forrás: opennet.ru
