Hector Martin navrhl zahrnout do jádra Linux první sadu patchů, které připravil projekt Asahi Linux, jenž pracuje na přizpůsobení Linuxu pro počítače Mac vybavené ARM čipem Apple M1. Tyto patche byly již schváleny správcem větve Linux SoC a přijaty do kódové základny Linux-next, na jejímž základě se formuje funkčnost jádra 5.13. Technicky může Linus Torvalds zablokovat dodání navržených změn, ale takový vývoj událostí se hodnotí jako málo pravděpodobný.
Patche zahrnují podporu komponent SoC M1, které nesouvisí s GPU, jako jsou řadič přerušení, časovač, UART, SMP, funkce pro organizaci vstupu/výstupu a MMIO. Reverzní inženýrství GPU zatím není dokončeno, pro organizaci výstupu v patchech je zajištěna podpora framebufferu a konzole přes sériový port. Podporována jsou zařízení Apple Mac mini, které slouží jako referenční platforma v projektu Asahi Linux (existuje podrobný návod na instalaci).
Samostatně se vyvíjí otevřený hardwarový adaptér, který má usnadnit připojení k konzole přes sériový port a provádění ladění. V současném stavu, kvůli použití nestandardních USB-PD příkazů ve svém vybavení společností Apple, je nejjednodušší způsob přístupu k konzole připojení k jinému počítači založenému na čipu Apple M1 pomocí USB C kabelu. Složitější způsob spočívá ve vytvoření rozhraní pomocí mikrokontroléru Arduino, čipu FUSB30 a adaptéru UART-TTL.
Projekt také připravil bootloader m1n1, který umožňuje načíst jádro Linux a minimální systémové prostředí na počítačích Mac s CPU Apple M1. Společnost Apple na počítačích s CPU M1 běžně povoluje načítání nezaručených digitálním podpisem jader bez nutnosti použití jailbreaku. Tato funkce umožňuje vývojářům experimentovat s novými jádry XNU, ale při pokusu o načtení jiných systémů vznikají potíže, protože Apple používá vlastní bootovací protokol a jiný formát Device Tree. Navržený projektom Asahi Linux bootloader m1n1 slouží jako mezivrstva, která umožňuje použití standardního Device Tree a běžného bootovacího protokolu používaného v jádře Linux pro ARM64. V budoucnu se do m1n1 plánuje přidání možnosti volání U-Boot a GRUB pro organizaci standardního bootovacího procesu podobného tomu, který se používá na jiných platformách ARM64.
Zdroj: opennet.ru
