Corellium tillkännager sin port av Linux till M1-chips

Corellium har släppt en version av Linux anpassad för att köras på de nya Apple-datorerna utrustade med M1 -chippet . Varianten av Linuxkärnan som är kompatibel med Apple M1-chippet släpps under GPLv2-licensen, och patchar har skickats in för inkludering i huvudkärnan.

Corellium har omfattande erfarenhet av att migrera Linux till Apple-chips som används i mobila enheter som iPhone. I den inledande migreringsfasen uppmuntrades testarna att lära sig att många av Apple M1:s komponenter är baserade på tekniker som redan används av Apple i andra SoC:er.

Men under drivrutinsutvecklingsprocessen blev det tydligt att saker och ting inte är så enkla, och Apple M1-chippet innehåller många icke-standardiserade lösningar. Linux-stöd för 64-bitars ARM SoCs bygger på vanliga byggstenar och firmware-gränssnitt, men Apple M1 använder knappast några typiska lösningar.

Till exempel, i konventionella ARM SoC:er, sker CPU-kärnaktivering via PSCI (Power State Coordination Interface) som tillhandahålls av firmware, och i Apple M1 kräver det manipulation av MMIO-registret.

I det här skedet har Corelliums utvecklare gått om Asahi Linux-projektet , grundat av Héctor Martin för att porta Linux till system med Apple M1-chippet, vilket hittills har begränsats till reverse engineering och experiment med en bootloader. Asahi Linux huvudmål är dock inte bara att starta Linux, utan också att ge fullt stöd för energihanteringsmekanismer och utnyttja funktionerna hos Apple M1 GPU, som använder en specifik instruktionsuppsättning.

Corellium-patchar är begränsade till att tillhandahålla start och stöd för specifika M1-chipfunktioner relaterade till SMP-läge, timers, avbrott, hantering av viloläge och initialisering.

Representanter från Asahi Linux välkomnade lanseringen av Corellium-patcharna och uttryckte sin villighet att ge hjälp med peer review för att påskynda den allmänna implementeringen av Linuxkärnan.

Dessutom har Alyssa Rosenzweig (från Collabora som utvecklar Panfrost GPU Mali-drivrutinen) sägs ha publicerat en andra rapport om omvänd teknik och utveckling av öppen källkodsdrivrutiner för Apple M1 GPU.

För närvarande har en första prototyp av styrenheten förberetts, som kan rita trianglar med hjälp av GPU. För M1-grafikprocessorer är de första topp- och fragmentskuggorna också handkodade. Kärndrivrutinen IOKit används för att interagera med GPU: n.

Apple M1 använder också sin egen Apple Interrupt Controller (AIC), som i stort sett är inkompatibel med vanliga ARM GIC:er , och en annan mekanism för att binda avbrott från en timer. Dessutom används separata register som styr IPI (interprocessoravbrott) för att hantera interaktion mellan flera processorer.

För att starta på en Mac Mini M1-dator med ett Apple M1-chip förbereds en färdig rootfs-avbildning , byggd baserat på Ubuntu-versionen för Raspberry Pi.

För att installera, kopiera avbildningen till en USB-enhet, anslut enheten till USB-C-porten och starta datorn i 1TR-läge (återställnings-OS) genom att hålla ner strömbrytaren under uppstart. När kommandoraden visas kör du skriptet linuxsetup.sh, vilket installerar kärnan och konfigurerar miljön.

Det är då Linux börjar köras, medan du för att återställa macOS måste köra kommandot "bputil -n" i 1TR-läge.

Ready build stöder USB, I2C och DART, det rekommenderas att använda extern USB-adapter för nätverk, medan grafikhårdvaruacceleration och utökad kringutrustning inte stöds än. Bluetooth-stöd kräver att du skriver en ny drivrutin på grund av att ett icke-standardiserat PCIe-baserat protokoll används.

Källa: https://corellium.com


Lägg till som prioriterad källa i Google