A Corellium bejelenti Linux-portját az M1 chipek felé

A Corellium kiadta a Linux egy olyan verzióját, amelyet az M1 chippel felszerelt új Apple számítógépeken való futtatásra alakítottak át . A Linux kernel Apple M1 chippel kompatibilis változata GPLv2 licenc alatt jelent meg, és a javításokat benyújtották a fő kernelbe való felvételre.

A Corellium széleskörű tapasztalattal rendelkezik Linux rendszer Apple chipekre való migrálásában, amelyeket mobil eszközökben, például iPhone-ban használnak. A migráció kezdeti fázisában a tesztelőket arra biztatták, hogy tudják meg, az Apple M1 számos komponense az Apple által már más SoC-kban használt technológiákon alapul.

A driver fejlesztése során azonban világossá vált, hogy a dolgok nem ilyen egyszerűek, és az Apple M1 chip számos nem szabványos megoldást tartalmaz. A 64 bites ARM SoC-k Linux-támogatása közös építőelemekre és firmware-interfészekre támaszkodik, de az Apple M1 alig használ tipikus megoldásokat.

Például a hagyományos ARM SoC-kban a CPU-mag aktiválása a firmware által biztosított PSCI-n (Power State Coordination Interface) keresztül történik, míg az Apple M1-ben ehhez az MMIO regiszter manipulálására van szükség.

Ebben a szakaszban a Corellium fejlesztői átvették az Asahi Linux projektet , amelyet Héctor Martin alapított a Linux Apple M1 chippel rendelkező rendszerekre való portolására, ami eddig a visszafejtésre és a bootloaderrel való kísérletezésre korlátozódott. Az Asahi Linux fő célja azonban nemcsak a Linux indítása, hanem az energiagazdálkodási mechanizmusok teljes támogatása és az Apple M1 GPU képességeinek kihasználása is, amely egy speciális utasításkészletet használ.

A Corellium javítások az SMP módhoz, időzítőkhöz, megszakításokhoz, tétlenségi állapot kezeléséhez és inicializáláshoz kapcsolódó specifikus M1 chip funkciók indítására és támogatására korlátozódnak .

Az Asahi Linux képviselői üdvözölték a Corellium javítások kiadását , és kifejezték hajlandóságukat a szakértői értékelések nyújtására a Linux kernel széleskörű elterjedésének felgyorsítása érdekében.

Ezenkívül Alyssa Rosenzweig (a Panfrost GPU Mali illesztőprogramot fejlesztő Collabora cégtől) szintén állítólag második jelentést tett közzé a fordított tervezésről és az Apple M1 GPU nyílt forráskódú illesztőprogramok fejlesztéséről.

A jelenlegi szakaszban elkészült a vezérlő kezdeti prototípusa, amely háromszögeket tud rajzolni a GPU segítségével. Az M1 GPU-k esetében az első csúcs és a fragmens árnyékolók szintén kézzel vannak kódolva. Az IOKit rendszermag-illesztőprogramot a GPU-val való interakcióra használják.

Az Apple M1 saját Apple Interrupt Controller (AIC) vezérlőt is használ, amely nagyrészt inkompatibilis a szabványos ARM GIC-kkel , valamint egy másik mechanizmust az időzítőből érkező megszakítások kötésére. Továbbá, az IPI-t (processzorok közötti megszakításokat) vezérlő különálló regiszterek kezelik a több processzor közötti interakciót.

Egy Apple M1 chippel rendelkező Mac Mini M1 számítógépen történő indításhoz egy használatra kész rootfs rendszerképet kell előkészíteni , amely a Raspberry Pi-hez készült Ubuntu build alapján készült.

A telepítéshez másold a képfájlt egy USB-meghajtóra, csatlakoztasd a meghajtót az USB-C porthoz, és indítsd el a számítógépet 1TR módban (helyreállító operációs rendszer) a bekapcsológomb lenyomva tartásával indítás közben. Amint megjelenik a parancssor, futtasd a linuxsetup.sh szkriptet, amely telepíti a kernelt és konfigurálja a környezetet.

Ekkor indul el a Linux, míg a macOS visszaállításához a "bputil -n" parancsot kell futtatni 1TR módban.

A Ready build támogatja az USB-t, az I2C-t és a DART-ot, javasoljuk, hogy külső USB-adaptert használjon a hálózathoz, míg a grafikus hardveres gyorsítás és a kiterjesztett perifériák még nem támogatottak. A Bluetooth támogatáshoz új illesztőprogram írására van szükség a nem szabványos PCIe-alapú protokoll használata miatt.

Forrás: https://corellium.com


Hozzáadás előnyben részesített forrásként a Google-ben