Néhány hónappal ezelőtt megosztjuk itt a blogon a hír kezdeményezés az Apple M1 chip Linux támogatására, az Asahi Linux és Corellium projektek támogatják, amelyek ez idő alatt működtek és most elérte azt a pontot, ahol lehetséges a GNOME asztal futtatása Linux környezetben, amely Apple M1 chipet tartalmazó rendszeren fut.
Megjelenítés keretbuffer és OpenGL támogatás szervezi raszterizáló szoftver biztosítja LLVMPipe. A következő lépésben engedélyezni kell a kijelző társprocesszorát a akár 4K kimenet, amelyet már fordítva terveztek.
Az Asahi projekt kezdeti támogatást kapott a SoC M1 nem GPU komponensekhez a Linux alapmagjában. A bemutatott Linux környezetben a szabványos kernel képességei mellett számos további javítást használnak a PCIe -hez, a belső busz pinctrl illesztőprogramjához és a kijelző illesztőprogramjához. Ezek a kiegészítések lehetővé tették a képernyőn történő megjelenítést, valamint az USB és az Ethernet működését. A grafikus gyorsítást még nem használják.
LLVMPipe, silány kijelzővezérlőm, és óra @ svenpeter42türelme ajándékozza….
GNOME Shell az Apple M1 -en, csupasz fém.
Nem, ez nem gyorsított GPU. Igen, innen küldöm ezt a tweetet. pic.twitter.com/P4YuPEnbvp
- Alyssa Rosenzweig (@alyssarzg) 22. augusztus 2021.
Az M1 hatalmas fordított tervezési kihívást jelent, sok egyedi hardverrel és teljesen dokumentálatlanul. A hardver fordított tervezésének egyik módja a vakvizsgálat, mivel korábban az Apple megszakító illesztőprogramját is megfordítottuk, de ez bonyolultabb hardverek esetében nem igazán működik.
A hardver megfelelő kezelésének megértéséhez meg kell vizsgálnunk az egyetlen dokumentációt: magát a macOS -t. Technikailag lehetséges lenne a MacOS illesztőprogramok szétszerelése és visszaalakítása, de ez jogi kihívásokat vet fel, amelyek veszélyeztethetik projektünk szerzői jogi státuszát, valamint nem hatékonyak, mivel a kód nagy része a macOS illesztőprogram keretrendszerére jellemző. és nem ad nekünk hasznos információkat a hardverről.
Kíváncsi, az M1 SoC fordított tervezésére, az Asahi projekt, ahelyett, hogy megpróbálná leszerelni az illesztőprogramokat a macOS-ból, megvalósított egy hipervizort, amely a macOS és az M1 chip között fut és elfogja és átláthatóan rögzíti az összes műveletet a chippel. A SoC M1 azon szolgáltatásai között, amelyek megnehezítik a chip-támogatás harmadik féltől származó operációs rendszerekben történő megvalósítását, szerepel egy társprocesszor hozzáadása a kijelzővezérlőhöz (DCP).
A megadott társprocesszor oldalon a macOS kijelző illesztőprogramjának fele funkciója megszűnik, amely egy speciális RPC interfészen keresztül hívja meg az előre elkészített társprocesszor funkciókat.
Ehelyett egy sokkal biztonságosabb megközelítés, amelyet a Nouveau -hoz hasonló projektek használtak korábban, a napló rögzítése a hivatalos vezérlők hardverhozzáféréseiről egy valódi rendszeren, anélkül, hogy meg kellene nézni a kódot. A Nouveau ezt úgy érte el, hogy egy Linux -illesztőprogramot használt az Nvidia hivatalos Linux -illesztőprogramjából származó hozzáférések elfogására. Természetesen az Apple M1 illesztőprogramjai macOS -hez vannak, nem Linuxhoz. Bár ugyanezt a megközelítést megvalósíthattuk a macOS kernel nyílt forráskódú kernelének egyedi javításával, úgy döntöttünk, hogy egy szinttel mélyebbre megyünk, és olyan hipervizort építünk, amely képes a macOS egészét módosítatlanul futtatni egy virtuális gépen, amely ezt tartalmazza. átláthatóan. az igazi M1 hardver.
Rajongók már elegendő hívást fedeztek fel erre az RPC felületre a koprocesszor megjelenítésére, valamint a hardveres kurzor vezérlésére, valamint kompozíciós és méretezési műveletek végrehajtására.
A probléma az, hogy az RPC interfész a firmware -től és a macOS egyes verzióinak változásaitól függ, ezért az Asahi Linux csak bizonyos firmware -verziókat támogat.
Először is, támogatást nyújt a macOS 12 "Monterey" rendszerrel szállított firmware -hez. Nem lehet letölteni a szükséges firmware opciót, mivel a firmware -t az iBoot telepítette a vezérlés operációs rendszerre történő átadása előtti szakaszban, és ellenőrizte digitális aláírással.
forrás: https://asahilinux.org