告诉大家一个令人兴奋的消息:在已经发布的deepin V23 beta版本中,深度操作系统正式适配Apple Mac mini M1啦!
Mac mini M1是苹果于2020年11月发布的迷你电脑主机芯片,它搭载了最高3.2GHz主频的8核M1处理器,带有两个雷电接口,两个USB 3.0 Type A、HDMI 2.0和一个3.5mm耳机接口。由于和同系列的Macbook Air M1、Macbook Pro M1采用了同款处理器,本次适配也为今后这两台机器的移植工作奠定了基础。
今天,我们就带着大家从Apple M1适配方案的选择、适配流程、适配工作准备三个部分,一起了解我们的适配之旅!
适配方案的选择
由于Mac M1机器采用了与普通x86_64兼容机不同的一套引导系统,所以,要移植普通PC的操作系统到它上面,首先就要解决引导系统方案的问题。由于自研一套这样的解决方案过于复杂,需要深入调研Mac M1的引导系统,甚至逆向关键硬件的驱动,最终我们选择使用了基于已经成熟且证明可靠了的Asahi Linux项目来推进我们的适配工作。
Asahi Linux是一个旨在将Linux适配到Apple Silicon平台的项目和社区。在这个社区中,已经有了一些被成功适配了的Linux发行版,例如Alpine Linux、Debian、Fedora、 Gentoo、Ubuntu等。具体可参见:https://github.com/AsahiLinux
适配流程
为了让大家了解我们的适配大致做了哪些工作,首先为大家介绍我们在Apple Silicon平台上使用Asahi Linux项目来安装和启动Linux的流程:
首先,在Mac OS上运行安装脚本。这个安装脚本会拉取安装配置和rootfs安装包,对剩余磁盘空间进行分区,刷写bootloader (m1n1和UBoot)和rootfs,以便后续安装流程的进行。
然后,关机后再启动,进入刷好的启动项。这时,会进行将所安装的Linux发行版设置成默认启动项的工作。
重启电脑后,系统会进入已刷写的bootloader,也就是m1n1。m1n1会根据设定,加载下一个UEFI系统的bootloader,通常是UBoot。UBoot会按照配置文件,决定是直接启动操作系统,还是启动Grub。从这里开始,后续的流程就和普通的UEFI系统类似。
最后,根据不同发行版的安装方式,第一次启动可能会进入配置向导中。比如官方的ArchlinuxARM,会启动到它们特别定制的calamares安装器中。
适配工作准备
针对当前的deepin M1适配项目,deepin社区团队综合考量了Asahi Linux官方安装器和现有的deepin arm64软件仓库,在结合m1-debian项目及justforlxz之前做过的deepin-m1项目之后,在m1-debian项目的基础之上做了适配工作。
将deepin移植到m1平台,需要完成以下准备:
1、提供Mac上执行的Linux安装脚本;
2、搭建提供安装脚本,安装配置及rootfs的文件服务器。(可选http或ftp);
3、bootloader (m1n1+uboot);
4、带M1 Mac相关驱动的内核;
5、适配M1 GPU的Mesa;
6、打包/更新一些关键软件包。
因为Apple M1也是ARM架构,所以我们依旧可以利用现有的deepin arm64仓库。对于上述准备工作提到的关键组件,我们需要进行单独打包建仓。比如M1用的内核和Mesa。目前,deepin-m1项目已经公开发布在GitHub上,感兴趣的朋友可以去试一试。如果希望直接在Mac上安装,也可以直接使用https://ci.deepin.com/repo/deepin/deepin-ports/deepin-m1/deepin.install脚本。
适配M1未来目标
DDE桌面环境是深度操作系统的核心项目之一。如何在Mac M1设备上提供像其他机器一样友好的交互体验,是我们未来适配的核心目标。当前,为了解决启动系统及桌面环境的问题,deepin-m1 SIG已经自行打包了M1相关的组件,并提供了我们的deepin-m1的安装脚本和安装仓库。
当前阶段,尽管已经能够实现在Mac Mini M1上正常启动deepin系统,但还没有达到可以日常使用的阶段,存在着诸多适配问题。例如:系统缺少软件应用,第一次启动无设置向导,声音和GPU硬件加速不可用等问题。目前我们正在积极着手解决这些问题。
我们也衷心希望这次深度操作系统的适配能够为Apple Silicon项目,乃至ARM上的Linux生态注入新活力,也期待对deepin-m1或deepin-arm移植感兴趣的朋友加入我们的SIG,与我们一起,为完善开源软件生态而努力。
deepin-m1 SIG入口:https://github.com/deepin-community/deepin-m1
最后,非常感谢deepin相关SIG的开发者,非常感谢你们在Asahi Linux及m1-debian项目的协助与支持。正是由于你们的贡献开源、参与开源,deepin越来越好。再次谢谢你们!