Společnost Corellium oznamuje svůj port Linuxu na čipy M1

Společnost Corellium představila verzi Linuxu přizpůsobenou běžet na novějších počítačích Apple vybavených čipem M1, varianta linuxového jádra kompatibilní s čipem Apple M1 je vydána pod licencí GPLv2 a opravy byly odeslány pro zahrnutí do hlavního jádra.

Corellium má rozsáhlé zkušenosti s migrací z Linuxu na Apple čipy používané v mobilních zařízeních, jako je iPhone. V počáteční fázi migrace byli testeři povzbuzeni, že mnoho komponent Apple M1 je založeno na technologiích, které Apple již používá v jiných SoC.

Ale v procesu psaní ovladačů bylo jasné, že ne všechno je tak jednoduché a čip Apple M1 obsahuje mnoho nestandardních řešení. Podpora Linuxu pro 64bitové SoC ARM je založena na společných blocích a firmwarová rozhraní, ale Apple M1 stěží využívá typická řešení.

Například v běžných ARM SoC se aktivace jader CPU provádí prostřednictvím PSCI (Power State Coordination Interface) poskytovaného firmwarem a na Apple M1 vyžaduje manipulaci s registrem MMIO.

V této fázi Vývojáři Corellium dostali náskok před projektem Asahi Linux, založený Héctorem Martinem pro portování Linuxu na systémy s čipem Apple M1, který byl dosud omezen na reverzní inženýrství a experimentování s bootloaderem. Klíčovým cílem Asahi Linuxu však není jen zavést Linux, ale poskytnout plnou podporu pro mechanismy správy napájení a využít možnosti grafického procesoru Apple M1, který používá konkrétní sadu pokynů.

Corellium patches are limited to provide boot and support for specific features čipů M1 souvisejících s režimem SMP, časovači, přerušeními, zpracováním klidového stavu a inicializací.

L Zástupci Asahi Linux uvítali vydání oprav Corellium a vyjádřili ochotu poskytnout pomoc při peer review, aby se urychlilo tradiční přijetí linuxového jádra.

Alyssa Rosenzweig (od společnosti Collabora, která vyvíjí ovladač Panfrost GPU Mali) také údajně zveřejnila druhou zprávu o zpětném inženýrství a vývoji ovladačů s otevřeným zdrojem pro GPU Apple M1.

V současné fázi byl připraven počáteční prototyp řadiče, který dokáže kreslit trojúhelníky pomocí GPU. U GPU M1 jsou první shadery vrcholů a fragmentů také ručně kódovány. Ovladač jádra IOKit se používá k interakci s GPU.

Apple M1 také používá vlastní řadič přerušení AIC (Apple Interrupt Controller), který z velké části je nekompatibilní se standardními ARM GIC a jiný mechanismus pro vazbu přerušení z časovače. Kromě toho se k organizaci interakce mezi více procesory používají samostatné registry, které řídí IPI (meziprocesorová přerušení).

Chcete-li spustit počítač Mac Mini M1 s čipem Apple M1, je připraven obraz rootfs připravený k použití, postaveno na základě sestavení Ubuntu pro Raspberry Pi.

Chcete-li nainstalovat, musí být obraz zkopírován na jednotku USB, připojte tuto jednotku k portu USB-C a spusťte počítač v režimu 1TR (Recovery OS) stisknutím a podržením tlačítka napájení během bootování. Po zobrazení příkazového řádku musíte spustit skript linuxsetup.sh, který nainstaluje jádro a nakonfiguruje prostředí.

To je, když Linux začne běžet, vzhledem k tomu, že pro návrat do macOS musíte spustit příkaz "bputil -n" v režimu 1TR.

Ready build podporuje USB, I2C a DART, doporučuje se použít pro síť externí USB adaptér, zatímco grafická hardwarová akcelerace a rozšířené periferie ještě nejsou podporovány. Podpora Bluetooth vyžaduje psaní nového ovladače kvůli použití nestandardního protokolu založeného na PCIe.

zdroj: https://corellium.com


Přidat jako preferovaný zdroj v Googlu