近日,Corellium CTO Chris Wade 宣布已经成功在 Mac mini M1 上启动 Ubuntu。
从上周末起,Corellium 就开始发布他们在 Apple M1 上的 Linux 启动工作。现在,他们已经可以在 Mac mini M1 通过 USB 启动完整的 Ubuntu桌面。并且,Corellium 开发人员已经在 Linux 邮件列表中发表了该系列的 7 个补丁,这些是使 Linux 在当前的基于 Apple M1 ARM 的硬件上启动所需的最小更改。该系列补丁内容如下:
- 支持内核中的 FIQ 中断。这对于 Apple SoC 上的计时器和 IPI 是必需的。
- WFI 钩子。Apple 处理器不会在 WFI 上保持寄存器状态。因此,需要在 cpu_ops 中增加一种机制以使用自定义睡眠函数替代。
- 在 Apple 处理器上使用 nGnRnE 而不是 nGnRE。
- Apple AIC 驱动程序,用于 Apple AIC 中断控制器。
- Apple CPU 启动驱动程序。在 Apple Mac 上,RVBAR 被引导加载程序锁定,而且硬件没有提供 PSCI 的 EL3 作为一种选择。
同时,邮件中也提到,DeviceTree 和 其它设备的驱动程序支持以及相关功能仍在研究中。
尽管尚需一段时间才能对这些内容进行全面的检查,测试和发布,但是至少已经取得了良好的进展。不过,由于这相当于提出一个全新的 OpenGL / Vulkan 驱动程序栈,并且首先需要在 macOS 下进行所有逆向工程,因此期望在这些基于 ARM 的 Mac 上完全运行 Linux 系统仍然为时过早。
此外,可以在该仓库查看 Corellium 关于在 Apple M1 运行 Linux 内核的代码。Chris Wade 也发表博客介绍了他们移植 Linux 至 Mac mini M1 的过程