
After a few very active days, developers at security startup Corellium have followed their word so far to publish Apple Silicon patches in the Linux kernel email list for possible upstreaming in the future that will allow the Linux kernel to boot with Apple M1 hardware.
The Corellium developers sent their first set of seven patches under a “request for comments” flag this morning. These are the minimum changes required to get Linux to boot into Apple’s current ARM-based hardware M1.
Linux is now fully usable on the Mac mini M1. Booting from USB on a full Ubuntu desktop (rpi). The network works via a USB dongle. The update includes support for USB, I2C, DART. We will send changes to our GitHub and a tutorial today. Thanks to @CorelliumHQ time ❤️🙏 pic.twitter.com/uBDbDmvJUG
– Chris Wade (@cmwdotme) January 20, 2021
It was over the weekend that Corellium started posting its Linux boot job on the Apple M1. It is now possible to get the Raspberry Pi ARMv8 desktop image from Ubuntu by booting on the Apple M1 hardware to a GUI, albeit without any hardware acceleration. The graphic support for the Apple M1 will continue to be the big elephant in the room, given the great challenges involved in bringing a brand new OpenGL / Vulkan driver stack and the need to do all of this reverse engineering first on macOS.
The initial patches posted for review on the Linux kernel mailing list include the bits needed for FIQ interrupts, WFI hook, a new driver like Apple’s AIC interrupt controller and an Apple CPU boot driver. The DeviceTree part is still being worked on, another driver support for different components of these new Apple Macs and related bits. These initial RFC patches for the Linux kernel can be found at lore.kernel.org.
It will probably take a while before everything is well reviewed, tested and updated, but at least good progress is being made. It is surprising and exciting to see how quickly this introduction is happening, although GPU support is a long journey for those who wish to use these ARM-based Macs one day as a viable Linux desktop / laptop.
The Corellium work in progress code for the Apple M1 kernel work is being tested through the Git Linux-M1 repository.