Corellium宣布将其Linux移植到M1芯片

Corellium推出了适用于Linux的版本 在装有该芯片的新型Apple计算机上运行 M1,与Apple M1芯片兼容的Linux内核变体以GPLv2许可发布,并且已提交了修补程序以包含在主内核中。

Corellium在从Linux迁移到Apple芯片方面具有丰富的经验 在iPhone等移动设备上使用。 在迁移的早期,测试人员受到鼓舞,认为许多Apple M1组件都基于Apple在其他SoC中已经使用的技术。

但是在编写驱动程序的过程中,很明显,并非所有事情都那么简单 苹果M1芯片包括许多非标准解决方案。 Linux对ARM 64位SoC的支持基于常见的构建模块 和固件接口,但是Apple M1几乎不使用典型的解决方案。

例如,在常规ARM SoC中,CPU内核的激活是通过固件和硬件提供的PSCI(电源状态协调接口)完成的。 在Apple M1上,它需要对MMIO寄存器进行操作。

在这个阶段, Corellium开发人员领先于Asahi Linux项目,由HéctorMartin创立,目的是将Linux移植到具有Apple M1芯片的系统,到目前为止,Apple M1芯片仅限于反向工程和对引导程序进行试验。 但是,Asahi Linux的主要目标不仅是引导Linux,而且是为电源管理机制提供全面支持并使用Apple MXNUMX GPU的功能,该功能使用一组特定的指令。

Corellium修补程序仅限于提供引导和对特定功能的支持 与SMP模式,定时器,中断,空闲状态处理和初始化有关的M1芯片。

MGI 朝日Linux代表欢迎Corellium修补程序的发布 他们表示愿意提供同行评审帮助,以加速Linux内核的主流采用。

此外,据说Alyssa Rosenzweig(来自合作开发Panfrost GPU Mali驱动程序的Collabora)还发布了第二份有关反向工程和开发Apple M1 GPU开源驱动程序的报告。

在当前阶段,已经准备了控制器的初始原型,可以使用GPU绘制三角形。 对于M1 GPU,第一个顶点着色器和片段着色器也是手工编码的。 内核驱动程序IOKit用于与GPU交互。

苹果M1还使用自己的AIC中断控制器 (Apple中断控制器), 在大多数情况下,它与标准ARM GIC不兼容 以及绑定计时器中断的另一种机制。 另外,为了组织多个处理器之间的交互,使用了单独的寄存器来控制IPI(处理器间中断)。

要启动具有Apple M1芯片的Mac Mini M1计算机, 准备好可用的rootfs映像, 基于Raspberry Pi的Ubuntu构建。

要安装,必须将映像复制到驱动器 USB,将本机连接到USB-C端口并以1TR模式启动计算机 (Recovery OS)在启动时按住电源按钮。 命令行出现后,您需要运行linuxsetup.sh脚本,该脚本将安装内核并配置环境。

这是Linux开始运行的时间, 而要返回macOS,必须在1TR模式下运行命令“ bputil -n”。

Ready build支持USB,I2C和DART,建议使用外部USB适配器进行网络连接,但尚不支持图形硬件加速和扩展外围设备。 蓝牙支持由于使用非标准的基于PCIe的协议而需要编写新的驱动程序。

数据来源: https://corellium.com


在 Google 中将其添加为首选来源