Corellium paziņo par savu Linux portu M1 mikroshēmām

Corellium ir izlaidis Linux versiju, kas pielāgota darbībai jaunajos Apple datoros, kas aprīkoti ar M1 mikroshēmu . Linux kodola variants, kas ir saderīgs ar Apple M1 mikroshēmu, ir izlaists saskaņā ar GPLv2 licenci, un ielāpi ir iesniegti iekļaušanai galvenajā kodolā.

Corellium ir plaša pieredze Linux migrēšanā uz Apple mikroshēmām, ko izmanto mobilajās ierīcēs, piemēram, iPhone. Sākotnējā migrācijas fāzē testētāji tika mudināti uzzināt, ka daudzas Apple M1 sastāvdaļas ir balstītas uz tehnoloģijām, ko Apple jau izmanto citās SoC.

Taču draiveru izstrādes procesā kļuva skaidrs, ka viss nav tik vienkārši, un Apple M1 mikroshēmā ir iekļauti daudzi nestandarta risinājumi. Linux atbalsts 64 bitu ARM SoC balstās uz kopīgiem pamatelementiem un programmaparatūras saskarnēm, taču Apple M1 gandrīz neizmanto tipiskus risinājumus.

Piemēram, parastajos ARM SoC procesora kodola aktivizēšana tiek veikta, izmantojot PSCI (Power State Coordination Interface), ko nodrošina programmaparatūra, un Apple M1 tas prasa manipulācijas ar MMIO reģistru.

Šajā posmā Corellium izstrādātāji ir pārņēmuši Asahi Linux projektu , ko dibināja Hektors Martins, lai pārnestu Linux uz sistēmām ar Apple M1 mikroshēmu, kas līdz šim aprobežojās ar reverso inženieriju un eksperimentiem ar sāknēšanas ielādētāju. Tomēr Asahi Linux galvenais mērķis ir ne tikai palaist Linux, bet arī nodrošināt pilnīgu atbalstu enerģijas pārvaldības mehānismiem un izmantot Apple M1 GPU iespējas, kas izmanto īpašu instrukciju kopu.

Corellium ielāpi aprobežojas ar noteiktu M1 mikroshēmas funkciju, kas saistītas ar SMP režīmu, taimeriem, pārtraukumiem, dīkstāves stāvokļa apstrādi un inicializāciju, palaišanas nodrošināšanu un atbalstu.

Asahi Linux pārstāvji atzinīgi novērtēja Corellium ielāpu izlaišanu un pauda gatavību sniegt salīdzinošās pārskatīšanas palīdzību, lai paātrinātu Linux kodola plašu ieviešanu.

Turklāt Alyssa Rosenzweig (no Collabora, kas izstrādā Panfrost GPU Mali draiveri) ir arī publicējusi otro ziņojumu par Apple M1 GPU reverso inženieriju un atvērtā koda draiveru izstrādi.

Pašreizējā posmā ir sagatavots kontroliera sākotnējais prototips, kas var uzzīmēt trīsstūrus, izmantojot GPU. M1 GPU pirmie virsotnes un fragmentu ēnotāji tiek kodēti arī ar roku. Kodola draiveris IOKit tiek izmantots, lai mijiedarbotos ar GPU.

Apple M1 izmanto arī savu Apple pārtraukumu kontrolieri (AIC), kas lielākoties nav saderīgs ar standarta ARM GIC , un citu mehānismu pārtraukumu saistīšanai no taimera. Turklāt atsevišķi reģistri, kas kontrolē starpprocesoru pārtraukumus (IPI), tiek izmantoti, lai pārvaldītu mijiedarbību starp vairākiem procesoriem.

Lai startētu Mac Mini M1 datoru ar Apple M1 mikroshēmu, tiek sagatavots lietošanai gatavs rootfs attēls , kas veidots, pamatojoties uz Ubuntu versiju Raspberry Pi.

Lai instalētu, kopējiet attēlu USB diskdzinī, pievienojiet disku USB-C portam un startējiet datoru 1TR režīmā (atkopšanas operētājsistēma), startēšanas laikā turot nospiestu ieslēgšanas/izslēgšanas pogu. Kad parādās komandrinda, palaidiet skriptu linuxsetup.sh, kas instalēs kodolu un konfigurēs vidi.

Šajā brīdī sāks darboties Linux, savukārt, lai atgrieztu macOS, 1TR režīmā jāizpilda komanda "bputil -n".

Gatavs veidojums atbalsta USB, I2C un DART, tīklam ir ieteicams izmantot ārējo USB adapteri, savukārt grafikas aparatūras paātrinājums un paplašinātās perifērijas ierīces vēl netiek atbalstītas. Bluetooth atbalsta nodrošināšanai ir nepieciešams uzrakstīt jaunu draiveri, jo tiek izmantots nestandarta PCIe protokols.

Avots: https://corellium.com


Pievienot kā vēlamo avotu pakalpojumā Google