Corellium teatab oma Linuxi sadamast M1 kiibidele

Corellium on välja andnud Linuxi versiooni, mis on kohandatud töötama uutel Apple'i arvutitel, mis on varustatud M1 kiibiga . Apple'i M1 kiibiga ühilduv Linuxi kerneli variant on avaldatud GPLv2 litsentsi alusel ning põhikerneli lisamiseks on esitatud parandused.

Corelliumil on ulatuslikud kogemused Linuxi migreerimisel Apple'i kiipidele, mida kasutatakse mobiilseadmetes, näiteks iPhone'is. Esialgses migratsioonifaasis julgustati testijaid õppima, et paljud Apple M1 komponendid põhinevad tehnoloogiatel, mida Apple juba teistes kiibistikes kasutab.

Kuid draiveri arendusprotsessi käigus selgus, et asjad pole nii lihtsad ja Apple M1 kiip sisaldab palju mittestandardseid lahendusi. Linuxi tugi 64-bitistele ARM SoC-dele tugineb tavalistele ehitusplokkidele ja püsivara liidestele, kuid Apple M1 ei kasuta peaaegu üldse tüüpilisi lahendusi.

Näiteks tavapärastes ARM-kiipides toimub protsessori tuuma aktiveerimine püsivara pakutava PSCI (Power State Coordination Interface) kaudu ja Apple M1-s nõuab see MMIO registri manipuleerimist.

Selles etapis on Corelliumi arendajad üle võtnud Asahi Linuxi projekti , mille asutas Héctor Martin Linuxi portimiseks Apple M1 kiibiga süsteemidele, mis seni on piirdunud pöördprojekteerimise ja alglaaduriga katsetamisega. Asahi Linuxi peamine eesmärk pole aga mitte ainult Linuxi käivitamine, vaid ka energiasäästumehhanismide täielik tugi ja Apple M1 GPU võimaluste ärakasutamine, mis kasutab spetsiifilist juhiste komplekti.

Corelliumi parandused piirduvad SMP-režiimi, taimerite, katkestuste, jõudeoleku käsitlemise ja initsialiseerimisega seotud M1-kiibi konkreetsete funktsioonide käivitamise ja toe pakkumisega.

Asahi Linuxi esindajad tervitasid Corelliumi paranduste avaldamist ja väljendasid valmisolekut pakkuda vastastikuse eksperdihinnangu abi, et kiirendada Linuxi kerneli laialdast kasutuselevõttu.

Lisaks on väidetavalt avaldanud Alyssa Rosenzweig (Collaboralt, kes arendab Panfrost GPU Mali draiverit) ka teise aruande pöördtehnoloogia ja avatud lähtekoodiga draiverite arendamise kohta Apple M1 GPU jaoks.

Praeguses etapis on koostatud kontrolleri esialgne prototüüp, mis saab GPU abil kolmnurki joonistada. M1 GPU-de puhul on esimene tipp ja fragmentide varjutajad ka käsitsi kodeeritud. Tuuma draiverit IOKit kasutatakse GPU-ga suhtlemiseks.

Apple M1 kasutab ka oma Apple'i katkestuskontrollerit (AIC), mis on suuresti ühildumatu standardsete ARM GIC-idega , ja erinevat mehhanismi taimeri katkestuste sidumiseks. Lisaks kasutatakse mitme protsessori vahelise interaktsiooni haldamiseks eraldi registreid, mis juhivad IPI-d (protsessoritevahelisi katkestusi).

Apple M1 kiibiga Mac Mini M1 arvuti käivitamiseks valmistatakse ette kasutusvalmis rootfs-kujutis , mis on ehitatud Raspberry Pi Ubuntu järgu põhjal.

Installimiseks kopeeri kujutis USB-mälupulgale, ühenda draiv USB-C-porti ja käivita arvuti 1TR-režiimis (taasteoperatsioonisüsteem), hoides käivitamise ajal toitenuppu all. Kui käsurea kuvatakse, käivita skript linuxsetup.sh, mis installib kerneli ja konfigureerib keskkonna.

Sel hetkel hakkab Linux tööle, macOS-i taastamiseks tuleb aga käivitada käsk "bputil -n" 1TR-režiimis.

Ready build toetab USB-d, I2C ja DART-i, võrgu jaoks on soovitatav kasutada välist USB-adapterit, samas kui graafika riistvara kiirendust ja laiendatud välisseadmeid veel ei toetata. Bluetoothi ​​tugi nõuab mittestandardse PCIe-põhise protokolli kasutamise tõttu uue draiveri kirjutamist.

Allikas: https://corellium.com


Lisa eelistatud allikana Google'is