[Community News] deepin适配Apple M1,我们经历了什么?(下篇)
Tofloor
poster avatar
deepin小助手
Super Moderator
OM
2023-07-05 18:24
Author

适配apple M1 下.jpg

在上篇中,我们介绍了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系统环境了。

deepin-23-base.jpg

适配基本的DDE桌面环境

最开始,在deepin环境中装DDE桌面环境时,会遇到mesa包依赖的问题。因为m1-debian适配的mesa包是基于Debian bookworm环境的,所以无法直接在deepin环境下使用。于是,deepin-m1 SIG决定在deepin环境下重新打包mesa,并独立建仓库。因为都已经独立建仓了,所以在这个阶段便将内核,m1n1, uboot等组件也一并重新打包,并加入仓库。

当解决了这个问题之后,接下来的流程就顺利了一些。装上mesa和DDE桌面环境,并且在解决了一些奇奇怪怪的缺包依赖问题之后,如下图,便能启动我们熟悉的桌面环境了。

deepin-23-desktop.png

不过,在当前的桌面环境之上,声音和GPU硬件加速都是无法使用的。调试期间,我们尝试过各种Asahi Linux中发行版的内核参数及内核编译脚本进行内核的定制适配,遗憾的是,从目前的调试结果来看,我们自行编译的内核依然无法解决上述问题。

当使用m1-debian项目提供的内核后,尽管可以启用GPU硬件加速,但窗管这部分会依旧会出现问题。比如异常白块,dock显示异常。这可能需要进行内核与窗管的适配工作。

deepin-23-gpu-error.png

这方面问题有待我们进一步分析、调试及排查问题根源所在。目前,项目已经公开发布在github上(https://github.com/deepin-community/deepin-m1),感兴趣的开发者可以去试一试。如果希望直接在Mac上安装,也可以直接使用https://ci.deepin.com/repo/deepin/deepin-ports/deepin-m1/deepin.install脚本。

适配U盘安装镜像

由于Mac系统的特殊系统引导结构,在其设备上是无法进行像普通电脑一样直接插U盘,然后从U盘引导安装程序进行系统安装的。但是,m1-debian项目提供了一种制作U盘 LiveCD的方法,并且此种方案可以被稳定使用。这给我们提供了一种适配U盘安装镜像,并从U盘引导安装deepin系统的思路。

首先,要使安装盘系统能够被成功启动,我们需要替换安装镜像的普通内核为Asahi Linux项目专门制作的内核。这需要我们修改镜像制作流程,专门打包一个为Mac M1设计的镜像。主要是在内核制作阶段,替换了使用的内核仓库和内核包。

然后,在适配过程中,还遇到了安装器安装系统失败的问题。报执行"05_context-menus_copy.job"失败的错误。经过排查,发现这是一个临时解决方案的安装钩子,当前安装环境并不需要,反而导致了错误。于是,便在制作镜像流程中将其去除。之后,安装流程便可以正常走完了。

由于Mac系统的特殊系统引导结构,在其设备上是无法进行像普通电脑一样直接插U盘,然后从U盘引导安装程序进行系统安装的。但是,m1-debian项目提供了一种制作U盘 LiveCD的方法,并且此种方案可以被稳定使用。这给我们提供了一种适配U盘安装镜像,并从U盘引导安装deepin系统的思路。

我们要郑重地提醒大家,这个安装镜像还不是完美的,存在一些不可忽视的限制和风险。为了不影响Mac原有的引导和系统分区, 只能使用自定义安装 ,在空闲磁盘区域中安装deepin系统。 全盘安装和高级安装可能会严重损坏引导或Mac系统,导致机器无法正常工作。 这种情况下,只有用另一台Mac设备进行线刷才能恢复。安装器暂时还没有屏蔽全盘安装和高级安装,所以请小伙伴们务必谨慎选择。

关于安装方法,可以参考:https://sourl.cn/FjBRqg

最后,再次感谢deepin相关SIG的开发者,非常感谢你们在Asahi Linux以及m1-debian项目的协助与支持。正是由于你们的贡献开源、参与开源,deepin系统会越来越好。谢谢你们!

deepin-m1 SIG入口:

https://www.deepin.org/index/docs/sig/sig/deepin-m1/README

Reply Favorite View the author
All Replies
2 / 2
To page
来自Ubuntu的某位用户
deepin
2023-07-10 01:28
#21

假如我是搭载M1的Mac Mini,你让我处理文档,编辑图片,音视频,开发人工智能... ...

当我在搭载Mac OS的情况下,我需要同时肩负XNU内核,图形界面,苹果公司给我内置的服务,你的工作... ...

当我在搭载Linux的情况下,我只要肩负Linux内核,(图形界面),你的工作... ...,不需要肩负任何公司给我内置的服务(商业化的Linux发行版除外)

某博主对我做了“重新编译树莓派Linux内核”的性能测试,发现我搭载Linux时编译速度相比我搭载mac OS时速度快了40%

但我(搭载Linux)在一些别的方面,如:WebP图像编码,比搭载mac OS的我更有优势

Reply View the author
mkuiwu
deepin
2023-07-10 06:18
#22

单纯发问,为啥要去适配m1呢?

Reply View the author
136******58
deepin
2023-07-10 06:45
#23
It has been deleted!
136******58
deepin
2023-07-10 06:46
#24

自己的系统多没有做好跑去适配苹果m1 要是我有苹果也不会装linux软件就是短板

Reply View the author
也无风雨也无晴,归去
deepin
2023-07-11 02:18
#25

请问实际意义何在?

1.deepin 的愿景 使命 价值观又是什么?

2.在当下适配Apple M1 是为什么呢,个人兴趣吗?还是很有必要?还是刚好有人想做,有几个人爱好者能做,然后就拍板做了?
3.为什么你们做RISC-V适配和龙芯兆芯cpu适配,大家都很支持呢?
4.这将是昙花一现(沉没成本)还是你们会一直坚持?还是期许开源爱好者会坚持?对于适配Apple M1 未来你们又是如何考虑的?

作为一个普通的deepin社区版的用户建议还是把精力放在打磨产品上,让能用进化成好用,优秀。现在感觉deepin就是凑合能用,一些问题我也是自己说服自己适应。打磨产品这件事很难,也不容易出成绩,因为我自己就在用,有没有变好用很容易看出来。
未来和现在一定是好用的系统的才会赢得用户的支持。

还记得最近一次deepin上 新闻, 怎么说的吗?也是能用!但还仍需向好用发展。

最后,我在deepin的公众号上也提出了 有何实际意义? 的问题,很可笑的是你们没有纳入精选也没有回答,纳入精选,可以公开展示的全是一片叫好

Reply View the author
爱开发
deepin
2023-07-12 19:31
#26
JasonZhang

你好,朋友,

这是咱们sig组的一起共同努力的成功,并不是你说想的那样,你可以对我们所做的工作指出问题,我们也接受,但是如果对sig组一起的努力结果做这样的一个草率评价,我个人认为有些不太合理,甚至带有一些恶意

人力和物力不放在构建自己的生态上,自己系统问题还一大堆。还做别的事情。是觉得经费拿得太容易了吗?


我这段话哪句是恶意?是最后那句?好吧,那我把我这句话反过来说,让你满意吧。


人力和物力不放在构建自己的生态上。自己系统一点问题问题。做别的事情。对,是因为经费拿得太容易了。

Reply View the author
ShaunG_deepin
deepin
2023-07-13 00:35
#27

请在有限时间做最正确的事。

底层库更没更新?

电源管理优没优化?

硬件驱动是否及时适配?

桌面系统是否稳定?

扩展屏独立缩放比做没做?

我说了这么多我就是恶意喽?支持了三年的恶意!

Reply View the author
婉拒江疏影
deepin
2023-07-13 05:25
#28

买苹果装windos的还能理解,买了苹果换成linux的就不能理解了,倒不如去适配下其他ARM架构的CPU, 比如华为擎云l410/420啥的applaud

Reply View the author
buyike
deepin
2023-07-14 04:10
#29

这是希望买苹果手机的去刷安卓系统呀,唉。自信点吧。

Reply View the author
hhts1987
deepin
2023-07-14 17:09
#30

存在就是合理,在M1上使用LINUX肯定有需求,能团结的力量都要团结。当然DEEPIN、UOS的底层确实需要优化,去除重复、低效的嵌套调用或中间库件,提升操作的流畅度,最好能优化成像MACOS那样流畅。生态也要积极构建,推动更多的软件公司适配,尤其是微信、优酷、腾讯等大众软件,平面、立体等仿真设计软件,3A大作等游戏软件,最终目标是像WPS、visual studio code那样,各个平台都能使用,甚至LINUX平台的最好用。

Reply View the author
晚秋(lateautumn)
Moderator
2023-07-18 19:44
#31
danally0822

请问什么时候适配龙芯的CPU?准备配一台纯国产的电脑.

agree 同感,尽快适配国产硬件吧,下个攻克的目标就是国产硬件组装的电脑了。

Reply View the author
y***[email protected]
deepin
2023-07-20 08:00
#32

哈哈,无聊。
自己都还没有搞好一个生态,就想着为苹果扩展生态了。

Reply View the author
叶羽
deepin
2023-07-23 03:18
#33

先把自己的系统优化好再说吧,有多少人用x86,要做就去适配龙芯,你看有人说你不

Reply View the author
fxgremlins
deepin
2023-07-25 22:53
#34
爱开发

人力和物力不放在构建自己的生态上,自己系统问题还一大堆。还做别的事情。是觉得经费拿得太容易了吗?

是你给经费了还是国家给经费了?你这句话拿去给麒麟说

Reply View the author
爱开发
deepin
2023-07-27 04:49
#35
fxgremlins

是你给经费了还是国家给经费了?你这句话拿去给麒麟说

你真搞笑,我有说国家给的经费吗?

投资人给的经费就不是经费了?

Reply View the author
2 / 2
To page