Spoločnosť Corellium predstavila verziu systému Linux upravenú bežať na novších počítačoch Apple vybavených čipom M1, variant linuxového jadra kompatibilný s čipom Apple M1 je vydávaný pod licenciou GPLv2 a opravy boli odoslané na zahrnutie do hlavného jadra.
Corellium má bohaté skúsenosti s migráciou z Linuxu na Apple čipy používané v mobilných zariadeniach, ako je iPhone. V ranej fáze migrácie boli testéri povzbudení, že veľa komponentov Apple M1 je založených na technológiách, ktoré Apple už používa v iných SoC.
Ale v procese písania ovládačov sa ukázalo, že nie všetko je také jednoduché a čip Apple M1 obsahuje mnoho neštandardných riešení. Podpora systému Linux pre 64-bitové SoC ARM je založená na bežných stavebných blokoch a firmvérové rozhrania, ale Apple M1 ťažko používa typické riešenia.
Napríklad v bežných ARM SoC sa aktivácia jadier CPU vykonáva prostredníctvom PSCI (Power State Coordination Interface) poskytovaného firmvérom a na Apple M1 to vyžaduje manipuláciu s registrom MMIO.
V tejto fáze Vývojári Corellium dostali náskok pred projektom Asahi Linux, ktorú založil Héctor Martin na portovanie systému Linux do systémov s čipom Apple M1, ktorý sa doteraz obmedzoval na reverzné inžinierstvo a experimenty s bootloaderom. Kľúčovým cieľom Asahi Linux však nie je iba zavedenie systému Linux, ale poskytnutie plnej podpory mechanizmom správy napájania a využitie schopností grafického procesora Apple M1, ktorý využíva konkrétnu sadu pokynov.
Opravy Corellium sa obmedzujú na poskytovanie bootovania a podpory konkrétnych funkcií čipov M1 súvisiacich s režimom SMP, časovačmi, prerušeniami, spracovaním stavu nečinnosti a inicializáciou.
undefined Zástupcovia spoločnosti Asahi Linux privítali vydanie opráv Corellium a vyjadrili ochotu poskytnúť pomoc pri vzájomnom hodnotení s cieľom urýchliť tradičné prijatie linuxového jadra.
Alyssa Rosenzweig (z Collabora, ktorá vyvíja ovládač Panfrost GPU Mali) tiež údajne zverejnila druhú správu o reverznom inžinierstve a vývoji open source ovládačov pre GPU Apple M1.
V súčasnej fáze je pripravený prvotný prototyp radiča, ktorý dokáže pomocou GPU kresliť trojuholníky. Pre M1 GPU sú prvý vrchol a shader fragmentov tiež ručne kódované. Ovládač jadra IOKit sa používa na interakciu s GPU.
Apple M1 tiež používa vlastný radič prerušenia AIC (Apple Interrupt Controller), ktorý je väčšinou nekompatibilný so štandardnými ARM GIC a iný mechanizmus viazania prerušení z časovača. Okrem toho sa na usporiadanie interakcie medzi viacerými procesormi používajú samostatné registre, ktoré riadia IPI (medziprocesorové prerušenia).
Ak chcete zaviesť počítač Mac Mini M1 s čipom Apple M1, je pripravený obraz rootfs pripravený na použitie, postavený na základe postavenia Ubuntu pre Raspberry Pi.
Ak chcete nainštalovať, obraz musí byť skopírovaný na jednotku USB, pripojte túto jednotku k portu USB-C a zapnite počítač v režime 1TR (Recovery OS) stlačením a podržaním vypínača počas bootovania. Po zobrazení príkazového riadku musíte spustiť skript linuxsetup.sh, ktorý nainštaluje jadro a nakonfiguruje prostredie.
To je, kedy začne Linux fungovať, zatiaľ čo pre návrat do macOS musíte spustiť príkaz "bputil -n" v režime 1TR.
Ready build podporuje USB, I2C a DART, odporúča sa používať pre sieť externý USB adaptér, zatiaľ čo grafická hardvérová akcelerácia a rozšírené periférie ešte nie sú podporované. Podpora Bluetooth vyžaduje zapísanie nového ovládača z dôvodu použitia neštandardného protokolu založeného na PCIe.
Fuente: https://corellium.com