Corellium je predstavio inačicu prilagođenu Linuxu za pokretanje na novijim Apple računalima opremljenim čipom M1, inačica Linux kernela kompatibilna s Apple M1 čipom objavljena je pod licencom GPLv2, a zakrpe su isporučene radi uključivanja u glavnu jezgru.
Corellium ima veliko iskustvo u prelasku s Linuxa na Apple čipove koristi se u mobilnim uređajima kao što je iPhone. U početnoj fazi migracije, testeri su ohrabreni da se mnoge komponente Apple M1 temelje na tehnologijama koje je Apple već koristio u drugim SoC-ima.
No, u procesu pisanja upravljačkih programa postalo je jasno da nije sve tako jednostavno a čip Apple M1 uključuje mnoga nestandardna rješenja. Podrška za Linux za ARM 64-bitne SoC-ove temelji se na uobičajenim blokovima i firmware sučelja, ali Apple M1 teško koristi tipična rješenja.
Na primjer, u konvencionalnim ARM SoC-ima, aktiviranje jezgri CPU-a vrši se putem PSCI-a (Power State Coordination Interface-a) koji pruža firmware i na Appleu M1 zahtijeva manipulaciju MMIO registrom.
U ovoj fazi, Programeri Corellium prešli su ispred projekta Asahi Linux, koji je osnovao Héctor Martin za prijenos Linuxa na sustave s Apple M1 čipom, koji je do sada bio ograničen na obrnuti inženjering i eksperimentiranje s bootloaderom. Međutim, ključni cilj Asahi Linuxa nije samo pokretanje Linuxa, već pružanje pune podrške mehanizmima upravljanja napajanjem i korištenje mogućnosti Apple M1 GPU, koji koristi određeni skup uputa.
Corellium zakrpe ograničene su na pružanje pokretanja i podršku za određene značajke M1 čipova koji se odnose na SMP način rada, timere, prekide, rukovanje i neaktivno stanje i inicijalizaciju.
The Predstavnici Asahi Linuxa pozdravili su izdavanje zakrpa Corellium i izrazili su spremnost pružiti pomoć međuvladinih pregleda kako bi se ubrzalo uobičajeno usvajanje Linux jezgre.
Uz to, rečeno je da je Alyssa Rosenzweig (iz Collabora koja razvija Panfrost GPU Mali driver) objavila i drugo izvješće o inverznom inženjerstvu i razvoju upravljačkih programa otvorenog koda za Apple M1 GPU.
U trenutnoj fazi pripremljen je početni prototip kontrolera koji može crtati trokute pomoću GPU-a. Za M1 GPU-ovi, prvi verteksni i fragmentarni sjene su također ručno kodirani. Upravljački program jezgre IOKit koristi se za interakciju s GPU-om.
Apple M1 također koristi vlastiti kontroler prekida AIC (Apple Interrupt Controller), koji uglavnom je nespojiv sa standardnim ARM GIC-ovima i drugačiji mehanizam za vezivanje prekida od tajmera. Uz to, za organiziranje interakcije između više procesora koriste se zasebni registri koji kontroliraju IPI (međuprocesorski prekidi).
Za pokretanje računala Mac Mini M1 s Apple M1 čipom, priprema se slika rootfs spremna za upotrebu, izgrađen na osnovi Ubuntu gradnje za Raspberry Pi.
Da biste instalirali, morate kopirati sliku na pogon USB, spojite ovu jedinicu na USB-C priključak i pokrenite računalo u načinu 1TR (OS za oporavak) pritiskom i držanjem gumba za uključivanje tijekom pokretanja. Nakon što se pojavi naredbeni redak, morate pokrenuti skriptu linuxsetup.sh, koja će instalirati jezgru i konfigurirati okruženje.
Tada će Linux početi raditi, dok da biste vratili macOS, morate pokrenuti naredbu "bputil -n" u načinu 1TR.
Ready build podržava USB, I2C i DART, preporučuje se korištenje vanjskog USB adaptera za mrežu, dok grafičko hardversko ubrzanje i proširena periferna oprema još nisu podržani. Podrška za Bluetooth zahtijeva pisanje novog upravljačkog programa zbog upotrebe nestandardnog protokola temeljenog na PCIe.
izvor: https://corellium.com