Apple M1 kiibi toetuse rakendamise algatuse, mida edendavad Asahi Linux ja Corellium, on saavutatud tase, kus GNOME töölaua käivitamine Linuxi keskkonnas, mis töötab Apple M1 kiibil, on nüüd võimalik. Ekraani väljund on organiseeritud framebufferi abil ja OpenGL-i tugi on tagatud LLVMPipe tarkvararasterdaja kaudu. Järgmine samm on ekraani kooprotsessori kasutamine kuni 4K eraldusvõimega väljundi jaoks, mille draiverite tagasineerimise töö on juba tehtud.
Asahi projekt on saavutanud esialgse toe M1 SoC komponentide integreerimise Linuxi tuuma põhikoosseisu, mis ei ole seotud GPU-ga. Demonstreeritud Linuxi keskkonnas, lisaks põhituuma võimalustele, on rakendatud mitmeid täiendavaid patše, mis on seotud PCIe, pinctrl draiveri ja ekraani draiveriga. Need lisandused võimaldasid ekraani väljundi tagamise ja USB ja Etherneti töö. Grafiiki kiirendust ei ole veel kasutusele võetud.
Huvitav on see, et SoC M1 tagasipööramise jaoks Asahi projekt ei püüdnud macOS draiverite disassembli seadistamist, vaid rakendas hüperviisorit, mis töötab macOS ja M1 kiibi vahel, salvestades ja logides kõik kiibiga seotud toimingud läbipaistvas režiimis. SoC M1 spetsiifilised omadused, mis raskendavad kiibi toe rakendamist kolmandate osapoolte operatsioonisüsteemides, hõlmavad kaasprotsessori lisamist kuvakontrollerisse (DCP). MacOS kuvadraiveri poolne funktsionaalsus on viidud nimetatud kaasprotsessorisse, kes kutsub spetsiaalse RPC-liidese kaudu välja kaasprotsessori valmisfunktsioonid.
Entusiastid on juba uurinud piisavalt kõnesid selle RPC-liidese kohta, et kasutada koormusprotsessorit ekraanile edastamiseks ja riistvarakursori juhtimiseks ning kompositsiooni ja skaleerimise operatsioonide täitmiseks. Probleem on selles, et RPC-liidese toimimine sõltub püsivara versioonist ja muutub iga macOS versiooniga, seetõttu on Asahi Linuxis plaanis toetada ainult teatud versioonide püsivara. Esiteks tagatakse tugi püsivara jaoks, mis tuleb macOS 12 "Monterey" koos. Laadida vajaliku püsivara varianti pole võimalik, kuna püsivara installib iBoot enne operatsioonisüsteemile kontrollimise edastamist ja digitaalallkiri kaudu verifitseerimist.


Allikas: opennet.ru
