0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

deepin适配Apple M1的过程(下)

深度操作系统 来源:深度操作系统 2023-07-15 11:23 次阅读

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

d29275b6-1a5a-11ee-962d-dac502259ad0.jpg

适配基本的DDE桌面环境

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

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

d2bb8bae-1a5a-11ee-962d-dac502259ad0.png

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

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

image.png

这方面问题有待我们进一步分析、调试及排查问题根源所在。目前,项目已经公开发布在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

作为国内首个桌面操作系统根社区,深度开源社区一直秉承产品创新、技术开放、过程透明、伙伴共创的理念,坚定地成为连接内部开发者和产品,外部开发者和用户的纽带。致力于打造中国主导、具有国际影响力的桌面操作系统根社区,保障操作系统供应链安全,筑牢数字基础设施安全底座。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39850
  • Apple
    +关注

    关注

    1

    文章

    883

    浏览量

    52531
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4424

    浏览量

    126717
  • 操作系统
    +关注

    关注

    37

    文章

    6288

    浏览量

    121896
  • 脚本
    +关注

    关注

    1

    文章

    372

    浏览量

    14636

原文标题:deepin适配Apple M1,我们经历了什么?(下篇)

文章出处:【微信号:linux_deepin,微信公众号:深度操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    小辣椒M1为什么不能在香港使用?

    我上星期买了一台小辣椒M1的手机。支持WCDMA网的。但到了香港就不能用香港当地的手机卡上网,但可以打电话,但放在联想的A65里就可以上网和打电话,小辣椒M1无论如何设置都不能上网。不知是什么原因,是手机系统不支持还是手机的硬件不支持,请各位专家指点一
    发表于 06-29 06:59

    【NanoPi M1试用体验】开箱评测

    `前天收到客服的短信,说审请通过了,让我高兴了半天,然后急不可奈的等待着快递的到来,快递果然给力。昨天就到了,晚上下班,拿到了NanoPi M1。下面来看看NanoPi M1登场: 1、NanoPi
    发表于 08-07 12:33

    Nanopi M1 RFID

    。-----------------------------------------发文动力:正想在nanopi m1上尝试用SPI去连接RFID-RC522,搜寻了一资料,在论坛里找到了到一篇打着【NanoPi
    发表于 02-17 07:21

    【NanoPi M1 Plus试用申请】智能控制

    项目名称:智能控制试用计划:1,使用过TI的达芬奇系列产品,熟悉linux开发过程。2,使用过wifi、蓝牙相关产品。拿到开发板后:1,熟悉M1,了解硬件结构;2,对相关外设进行逐一了
    发表于 05-02 16:35

    山灵M1无损播放器评测

    了一段时间了,之前发图赏时就有很多尾巴希望知道关于山灵 M1 的种种体验感受。别急,下面我就把我自己在使用 M1 过程中的感受告诉你听。X「继承着山灵血统的小精灵」X可以说,山灵 M1
    发表于 08-16 15:26

    请问nanopi m1能用wiringpi吗?

    ​​Nanopi M1能不能使用wiringpi?我个人觉得nanopi的matrix并不是非常的好用,想问一各位大神​​Nanopi M1能不能使用wiringpi,需不需要更改一
    发表于 07-23 03:05

    如何把 Linux 移植到 M1

    【CSDN 编者按】苹果 M1 芯片引发行业大热,芯片的发展也将影响着未来行业的走向。今天,随着本文一起来看看如何把 Linux 移植到 M1。编译 | 弯月责编 | 张文头图 |...
    发表于 07-23 08:53

    基于ARM架构设计的M1芯片

    Apple M1是苹果设计生产的首款专为 Mac 打造的芯片,带来了格外强大的性能、量身打造的技术,以及令人惊叹的能效表现。Apple M1与 macOS Big Sur 系统配合默契
    发表于 07-23 09:02

    STM32CubeIDE是否针对新MAC中的Apple M1芯片进行了优化?

    STM32CubeIDE 是否针对新 MAC 中的 Apple M1 芯片进行了优化(具有 AArch64 和 x86 的通用二进制文件)?还是当前版本会使用 Rosetta 2 x86 仿真运行?有人试过 M1 Mac 吗?
    发表于 12-02 09:11

    Apple MacBook Pro上安装STM32CubeMX失败如何解决呢

    我无法在配备 M1 max 芯片(在 Monterey )的新款 Apple MacBook Pro 上安装 STM32CubeMX。求解答
    发表于 12-23 06:27

    RISC-V新进展!deepin 成功适配VisionFive 2

    的显示,DDE桌面环境运行正常。 deepin RISC-V SIG组早在2022年11月就推出了VisionFive 1适配版本,本次工作是基于VisionFive 1阶段的成
    发表于 07-10 09:23

    Zoom适配M1 Mac的本机版本正在更新中

    据外媒消息,Zoom适配M1 Mac的本机版本即将在假期推出。此前,Zoom在M1 Mac和MacBooks上虽然可用,但只能间接使用。 macOS应用程序当然是为基于Intel的Mac开发的,但稍后可以通过Rosetta转换
    的头像 发表于 12-21 16:24 2274次阅读

    deepin WSL安装教程

    看完《deepin V23成功适配WSL,我们做了什么?》,大家是不是迫不及待地想试一试?接下来,我们简单演示一下deepin WSL的安装。
    的头像 发表于 07-15 11:17 796次阅读
    <b class='flag-5'>deepin</b> WSL安装教程

    deepin V23 beta适配WSL的过程

    在已经发布的deepin V23 beta版本中,深度操作系统正式适配了WSL!
    发表于 07-15 11:19 337次阅读

    deepin适配Apple M1过程(上)

    告诉大家一个令人兴奋的消息:在已经发布的deepin V23 beta版本中,深度操作系统正式适配Apple Mac mini M1啦!
    的头像 发表于 07-15 11:22 482次阅读
    <b class='flag-5'>deepin</b><b class='flag-5'>适配</b><b class='flag-5'>Apple</b> <b class='flag-5'>M1</b>的<b class='flag-5'>过程</b>(上)