在上篇中,我们介绍了deepin适配m1的方案选择以及方案介绍,让大家了解了我们在适配前的一些思路。本篇中,我们主要让大家了解一下我们在适配过程中遇到的问题,以及我们如何解决它们的。
适配的三个阶段
经过我们的探索及实践,deepin适配m1的过程大致分为以下三个阶段:
第一阶段:要先能在m1上启动deepin的基础环境,也就是不带桌面的最小系统。这样就可以初步验证适配工作的正确性,同时,方便在实机上进行下一步的适配工作。
第二阶段:要在这个最小系统上尝试安装桌面环境,并进行相关的适配工作,使其能够启动dde桌面,直到最终提供完整的deepin桌面环境。
第三阶段:要使用前面适配的经验成果去进行u盘安装镜像的相关适配,实现从u盘启动安装deepin系统。
那么,经历这三个阶段,我们具体要解决哪些适配问题呢?
适配最小deepin环境(仅命令行)
首先,我们基于m1-debian打包m1 debian rootfs包的脚本,先将debootstrap rootfs环境的源从debian换成deepin,达到这一步的时候可以成功启动,随后便尝试替换apt软件源为deepin v23的community源,发现系统启动阶段发生了kernel panic。进行了分析、搜索和调试之后,没有任何结果。
在进一步分析和调试之后,最终,将community源换成了ci源后生成rootfs,此时kernel panic报错消失,成功进入deepin系统。猜测是因为上游内核需要的相关库版本较高,而当前community源的软件包无法满足要求,因此,暂时需要使用ci源进行适配。
在这一阶段,除了asahi相关包还需要使用m1-debian项目以外,其他debian源均可替换为deepin源,如下图,已经能够启动最小的deepin系统环境了。
适配基本的dde桌面环境
最开始,在deepin环境中装dde桌面环境时,会遇到mesa包依赖的问题。因为m1-debian适配的mesa包是基于debian bookworm环境的,所以无法直接在deepin环境下使用。于是,deepin-m1 sig决定在deepin环境下重新打包mesa,并独立建仓库。因为都已经独立建仓了,所以在这个阶段便将内核,m1n1, uboot等组件也一并重新打包,并加入仓库。
当解决了这个问题之后,接下来的流程就顺利了一些。装上mesa和dde桌面环境,并且在解决了一些奇奇怪怪的缺包依赖问题之后,如下图,便能启动我们熟悉的桌面环境了。
不过,在当前的桌面环境之上,声音和gpu硬件加速都是无法使用的。调试期间,我们尝试过各种asahi linux中发行版的内核参数及内核编译脚本进行内核的定制适配,遗憾的是,从目前的调试结果来看,我们自行编译的内核依然无法解决上述问题。
当使用m1-debian项目提供的内核后,尽管可以启用gpu硬件加速,但窗管这部分会依旧会出现问题。比如异常白块,dock显示异常。这可能需要进行内核与窗管的适配工作。
这方面问题有待我们进一步分析、调试及排查问题根源所在。目前,项目已经公开发布在github上,感兴趣的开发者可以去试一试。如果希望直接在mac上安装,也可以直接使用脚本。
适配u盘安装镜像
由于mac系统的特殊系统引导结构,在其设备上是无法进行像普通电脑一样直接插u盘,然后从u盘引导安装程序进行系统安装的。但是,m1-debian项目提供了一种制作u盘 livecd的方法,并且此种方案可以被稳定使用。这给我们提供了一种适配u盘安装镜像,并从u盘引导安装deepin系统的思路。
首先,要使安装盘系统能够被成功启动,我们需要替换安装镜像的普通内核为asahi linux项目专门制作的内核。这需要我们修改镜像制作流程,专门打包一个为mac m1设计的镜像。主要是在内核制作阶段,替换了使用的内核仓库和内核包。
然后,在适配过程中,还遇到了安装器安装系统失败的问题。报执行05_context-menus_copy.job失败的错误。经过排查,发现这是一个临时解决方案的安装钩子,当前安装环境并不需要,反而导致了错误。于是,便在制作镜像流程中将其去除。之后,安装流程便可以正常走完了。
我们要郑重地提醒大家,这个安装镜像还不是完美的,存在一些不可忽视的限制和风险。为了不影响mac原有的引导和系统分区,只能使用自定义安装,在空闲磁盘区域中安装deepin系统。全盘安装和高级安装可能会严重损坏引导或mac系统,导致机器无法正常工作。这种情况下,只有用另一台mac设备进行线刷才能恢复。安装器暂时还没有屏蔽全盘安装和高级安装,所以请小伙伴们务必谨慎选择。
最后,再次感谢deepin相关sig的开发者,非常感谢你们在asahi linux以及m1-debian项目的协助与支持。正是由于你们的贡献开源、参与开源,deepin系统会越来越好。谢谢你们!
关于我们
deepin.org
作为国内首个桌面操作系统根社区,深度开源社区一直秉承产品创新、技术开放、过程透明、伙伴共创的理念,坚定地成为连接内部开发者和产品,外部开发者和用户的纽带。致力于打造中国主导、具有国际影响力的桌面操作系统根社区,保障操作系统供应链安全,筑牢数字基础设施安全底座。
科创板多个半导体公司获机构资金集中增配 这家华为的电池供应商被QFII“爆买”
TMP390A3DRLR温湿度传感器,热电偶传感器价格灵活且温暖
大数据精准教学系统受欢迎,教育超脑推动“精准应试”
vivo X60或成为全球最薄的5G手机
关于采用基于模型设计应对机载软件设计的可行性分析和应用
deepin适配Apple M1的过程(下)
基于RTP 的H.323视频会议系统音视频同步
科技小达人魅族设计新风向计算
华为云微服务引擎0停机迁移Nacos?它是这样做的
OPPO正式进入智能电视市场
常用的发射管数据2
第二季度欧洲智能手机市场分析报告:三星第一,苹果第三
承德科胜直线灌装机|食用油灌装机|河北灌装机
音频转换技巧分享,ogg怎么转成mp3格式?
铅大米快速检测仪的相关功能特点介绍
算能携手软件所PLCT实验室联合举办RISC-V 软件移植优化锦标赛
环保数采仪适用于环境在线监测设备监测数据的采集
美国华人科学家:石墨烯复合纳米电极新进展 或可增强电池续航能力
28nm下求变革,Altera三大技术创新欲开启FPGA新时
智能电话电源管理系统的重要设计技术