• HOME
  • JOIN
  • RSS
  • Welcome to Planet deepin

    This is a feed aggregator that collects what the contributors to the deepin community are writing on their respective blogs

    Friday, August 22, 2025

    镜像更新

    • th1520 的启动配置移除了 hidev0p7 的无用选项。

    应用更新

    • chromium 139 版本已在以下架构完成构建,将在测试完成后推入主仓库:
      • riscv64
      • amd64
      • arm64

    内核更新

    活动

    • 筹备参展 elexcon 2025 的海报和材料。
      • 海报制作完毕,设计稿如下: Poster

    Friday, August 15, 2025

    镜像更新

    • 现在 sg2042 镜像的内核默认使用 6.16 版本
    • 由于 u-boot-menu 配置现在由 deepin-ports-profiles 提供,镜像创建脚本中除定制镜像以外的对应配置文件均被移除
    • 所有镜像均预装 deepin-ports-keyring,因此 [trusted=yes]deepin-ports 源配置中移除。
    • 由镜像生成脚本定制的 u-boot-menu 文件现在将被安装usr/share/u-boot-menu/conf.d/99-custom.conf 以避免覆盖默认配置。
    • 新增了以下设备的 deepin 25 测试镜像:
      • sg2042:
        • 20250812-205045

    应用更新

    内核更新

    活动

    Friday, August 8, 2025

    镜像更新

    • 现在 k1 镜像的内核已更新为使用 deepin-riscv-kernel 构建工作流的产出版本。
    • 由于 hwe 仓库位置变更,更新了 hwe 仓库的地址。
    • 由于 hwe 仓库位置变更,再次更新了 hwe 仓库的地址,并同时将一部分 ci.deepin.com 的地址换成了正式仓库的地址。
      • 已有用户可将 stable 源替换为 deb https://community-packages.deepin.com/deepin/beige/ crimson main community commercial 以提升访问速度。
      • 已有用户可将 testing 源替换为 deb https://proposed-packages.deepin.com/beige-testing/ unstable/crimson main community commercial 以提升访问速度。
      • 已有用户可将 hwe 源替换为 deb https://community-packages.deepin.com/hwe-25/ unstable main community commercial 以提升访问速度。
    • 修改内核参数以修复 sg2042 6.16 内核在 MilkV Pioneer 上桥片失灵导致 USB 不工作的问题。
    • 在镜像生成脚本中新增了免安装器(预先创建用户)的镜像支持。
    • 镜像生成脚本新增 k1-cloud,以支持生成在云端环境(bianbu cloud)中开箱即用的镜像,仍在调试中,对应配置等待合并
    • 新增了以下设备的 deepin 25 测试镜像:
      • k1:
        • 20250804-121920
        • 20250804-152839
      • k1-cloud:
        • 20250806-180508

    应用更新

    • deepin-ports 仓库 ports-board-spacemit-k1 支持仓库新增打包的 esos.elf 以固定内核对应的版本。
    • deepin-ports 仓库 ports-imggpu 已更新 k1 的 DDK 24.2 firmware 和驱动二进制。
    • 旧的 ddk232 对应的 mesa 分支已不再使用,已删除
    • 由于 deepin 环境下 glx 打开 zink 存在问题,暂时移除 eic7700 对应的 mesa 中的强制 zink 补丁。
    • 为所有基于 Imagination GPU 的设备通过 Recommends 方式预装 vulkan 驱动
    • eic7700 打包来自 rockos 的 ap12275-firmware 固件包,并设置为预装
    • 在deepin-ports 仓库 ports-apps新增 code-server 应用。
    • deepin-ports 仓库 ports-gcc14 组件被 hwe 仓库替代,已删除。
    • 应用商店因为仓库地址错误,首页无内容,已向应用商店维护组反馈,等待下一次更新修复。
      • 如需临时体验,可修改 /etc/apt/sources.list.d/appstore.listdeb https://com-store-packages.uniontech.com/appstore-V25 crimson appstore

    内核更新

    • deepin-ports 仓库内 k1 内核新增使用 deepin-riscv-kernel 构建工作流的产出。
      • 旧的 k1 内核已从 ports-kernel 仓库移除。
    • 因为众多报错无法构建,暂时移除 jh7110 的 6.12 上游内核打包工作流。
    • sg2042 现在切换为同时提供 6.6(LTS) 6.12(LTS) 6.16(最新) 内核。
    • 不再提供单独的 unmatched 的主线内核。

    文档

    安装指南

    活动

    Friday, August 1, 2025

    镜像更新

    • 由于 hwe 仓库已合入 gcc-14 相关组件,deepin-ports 仓库 ports-gcc14 组件将弃用并将在不久后删除。
    • 现在 eic7700 镜像的内核已更新为 rockos 上游的最新版本 6.6.88
    • 现在 generic 通用 ISO 已修复 dp1000 上的 glibc 问题且集成新版内核,具备对 dp1000 的支持,dp1000 成为首个获得 deepin 官方主线支持的 RISC-V SoC,详细介绍请参阅后续的公众号新闻。
    • 由于 generic 通用 ISO 已支持 dp1000,旧的 dp1000 定制镜像已被归档
    • 新增了以下设备的 deepin 25 测试镜像:
      • eic7700:
        • 20250729-125156
      • generic:
        • 20250728-172422
        • 20250729-143705

    应用更新

    • 由于关键依赖包更新尚未推送,以下软件包本周暂无法推送至 hwe 仓库:
      • mesa 25
      • wine
    • 超睿对先前 glibc 的 PR 进行了解释,并公布了测试报告
    • 修复了在 k1 上未正确拷贝 esos.elf 导致无法启动的问题,已通过 deepin-ports-profiles 更新

    内核更新

    • 更新了 eic7700 的内核和 bootloader 以便支持更多开发板,例如 EIC7700 SBC。
    • 修复了 eic7700 的构建 bug(导致 ddr 固件选择错误)。
    • 完善了 u-boot 构建流程,为一部分设备打上 ufetch 支持补丁(目前 eic7700k1 已可用)
    • 由于 k1 内核已普遍采用 6.6 版本,不再构建旧的 k1 u-boot6.1 内核
    • 更新 k1 的内核到最新的 k1-bl-v2.2.y 分支。

    基础设施

    • 于甲辰计划接收一台 MilkV Meles 用于测试。
    • 于甲辰计划接收一台 EIC7700 树莓派用于测试。

    活动

    • 新一轮的甲辰计划实习生招聘开始了,详情可见 deepin 公众号RuyiSDK 社区
    • 预备对甲辰计划实习生开放部分 RV 设备的 SSH 访问权限,基础设施正在设置中。

    Friday, July 25, 2025

    镜像更新

    • 后续更新的 rv 镜像将默认添加 hwe 仓库,以提供更高版本的 GPU 驱动和 GCC 版本,以及依赖它们的更新软件包。

    应用更新

    • 打包了 llvm 20mesa 25,将推入 hwe 仓库提供更好的驱动支持。
    • 为 Chromium 系的应用打上对应 patch,修复 RDCYCLE 在 RISC-V 新版内核被设置为特权指令,进而导致崩溃的问题。影响以下应用:
      • electron 各版本
      • 依赖 electron 的应用需要升级 electron
      • chromium
    • 修复了 Chromium 构建问题 #5487538
    • 升级了 box64 应用到最新版本,并为其打开了 box32 功能以兼容更多应用。
    • 验证了 WPS Office 可通过 box64 在 RISC-V 平台上运行。
    • 为辅助 box64 更好地工作,尝试在 amd64/arm64 架构上打包 wine
    • 尝试打包 felix86 以提供 RISC-V 上的 Steam 和游戏支持。
    • 由超睿提供 patch,修复了 glibc 在部分情形下随机出现的以下崩溃问题:
      • Fatal glibc error: ../npctl/pthread_mutex_lock:94 (_pthread_mutex_cond_lock): assertion failed: mutex->__data.__owner == 0

    内核更新

    • 修复了因未开启 DRM_AMD_DC_FP 导致 RDNA2 显卡在 RISC-V 上不可用的问题。
    • 修复了 amdgpu 代码中对不带向量拓展的 isa string 替换 v 导致 isa 变成 r64* 的问题。
    • 接收了来自超睿对 PCIE Bar 空间修改 的 PR

    测试

    • (上周)测试了以下镜像:

    基础设施

    • 接收一台 MUSE Pi Pro 用于适配与测试。

    活动

    Friday, July 11, 2025

    镜像更新

    • 默认使用 6.6 内核构建 th1520 镜像,默认对 th1520 使用主线 openSBI。
    • 新增了以下设备的 deepin 25 测试镜像:
      • th1520:
        • 20250707-135951
        • 20250707-164130

    应用更新

    • 为 deepin-ports-profiles 移除对 th1520-vendor-opensbi 的硬依赖。

    内核更新

    • 向 deepin-ports 仓库推送了最新的 th1520-revyos-66y 内核,并设置为后续构建镜像的默认内核。
    • 跟随上游同步更新了 th1520 的启动固件。

    测试

    • 针对 th1520 5.10 和 6.6 内核镜像展开测试工作。

    文档

    网页

    基础设施

    • 一台 Pioneer 损坏 查明是内核问题,已 寄修 排查反馈问题。
    • 一台 MUSEbox 损坏,已寄修。

    活动

    • deepin 现已加入 RuyiSDK 社区,并在 RuyiSDK 社区论坛 设立专区,后续将同步发布周报进展和新闻。
    • 完成参展 RISC-V 峰会的设备清单和周边的准备,下周 RV 中国峰会见!

    Friday, July 4, 2025

    镜像更新

    • 由于 deepin-screen-recorder-plugin 在仓库中被移除,且新版 deepin-desktop-environment-extras 尚未集成,本周暂不可打包新镜像。
      • 拟下周更新 TH1520 镜像。

    应用更新

    • 为 xorg 增加了部分 GLES 支持补丁。
    • jh7110 th1520 eic7700 k1ffmpeg 针对主分支修改进行了 rebase。
    • 协助厂商适配新版 electron 应用,推进 deepin 25 nodejs 更新 (18 -> 20)。
      • 拟下周验证各版本 electron 可用性。

    测试

    • 测试了以下镜像:

    文档

    安装指南

    网页

    • 为 deepin-ports SIG(本站):
      • 优化了移动端显示
      • 为 blog 和文档内容增加了 TOC
      • 为 blog 和文档增加了 RSS 支持,文件均为 atom1 格式:
        • 现可通过 feed.blog.xml 订阅「博客」内容。
        • 现可通过 feed.installdocs.xml 订阅「安装文档」内容。
        • 现可通过 feed.testdocs.xml 订阅「测试报告」内容。

    基础设施

    活动

    • 继续筹备参展 RISC-V 峰会的海报和材料。

    Friday, June 27, 2025

    本文档旨在为 deepin 移植到 RISC-V 架构提供一套标准化、可复现的测试流程。该文档将随测试工作逐渐完善。

    0. 注意事项

    0.1 测试条件

    根据 RFC2119 制定以下规则,用于确定测试是否继续进行:

    必须 (MUST):

    任何情形下出现与陈述相悖的行为或结果,都将导致测试流程终止。

    禁止/不得 (MUST NOT):

    任何情形下出现与陈述相符的行为或结果,都将导致测试流程终止。

    应该 (SHOULD):

    当出现与陈述相悖的行为或结果时:如果文本仅有一条陈述,可选择忽略该结果并继续测试流程;如果文本存在多条陈述,仅大部分陈述内容均与当前结果相符时可忽略该结果并继续测试流程;未达到忽略条件的结果出现将导致测试流程终止;同一小节的测试不得忽略结果超过 3 次。

    不应该 (SHOULD NOT):

    当出现与陈述相符的行为或结果时:如果文本仅有一条陈述,可选择忽略该结果并继续测试流程;如果文本存在多条陈述,仅大部分陈述内容均与当前结果相悖时可忽略该结果并继续测试流程;未达到忽略条件的结果出现将导致测试流程终止;同一小节的测试不得忽略结果超过 3 次。

    可以/可能 (MAY):

    当出现与陈述相符或相悖的行为或结果时,均可继续进行测试流程,相应行为或结果应被记录。

    0.2 支持等级划分

    根据能够进入的最高章节的测试流程,将设备支持等级划分为 1-10 级,等级格式为 X(最高章节).Y(最高小节)

    0. 不支持

    • 硬件不满足基本要求,或在可预见的未来无法被支持。
    • 设备将从设备支持列表中除名,如果存在镜像,镜像将被删除。

    1. 仅可安装,无法启动

    • 完成了系统镜像的写入,但设备无法从该镜像成功引导至 bootloader 之后阶段。说明镜像的 bootloader 或内核存在严重问题。
    • 镜像将被标记为不可用并隐藏

    2. 基本命令行支持

    • 系统可成功启动至命令行 Shell,核心系统(内核、init、systemd)工作正常,但图形功能完全缺失或无法启动。
    • 镜像将被标记为不可用并隐藏

    3. 基本图形化支持

    • 图形化登录界面(Greeter)可以启动,并可登录桌面,但完全依赖 CPU 进行软件渲染(如 llvmpipe)。无硬件图形加速。
    • 镜像将被标记为不可用并隐藏

    4. DDE 桌面

    • DDE 桌面环境核心组件均可正常工作,提供稳定的基本桌面体验,但图形加速不可用,仅能以软件渲染模式运行。

    5. 图形化支持

    • 具备 2D/3D 硬件加速能力,提供完整的 DDE 桌面特效支持。
    • 镜像达到 Preview 发布标准

    6. 完整的 deepin 环境

    • 所有 deepin 内置应用程序均可正常启动和使用,系统功能完整。
    • 镜像达到 Preview 发布标准

    7. 开箱即用的 deepin 环境

    • 核心外设(如有线网络、USB、音频)无需手动配置即可自动驱动并正常工作。
    • 镜像达到 Preview 发布标准

    8. 完整支持

    • 所有板载硬件功能(如 Wi-Fi、蓝牙、VPU、NPU)均得到驱动支持和功能验证。
    • 镜像达到发布标准

    9. 具备兼容性的完整支持

    • 系统具备良好的软件兼容性。
    • 镜像达到发布标准

    10. RISC-V,崛起

    • 系统高度完善,性能优化良好,达到或接近 amd64/arm64 水准。

    1. 硬件设置篇

    1.1 硬件基本状况

    操作

    • 通过任何渠道获得该设备,如果无法获得设备,请立即向 mentor 报告。
    • 尝试接入电源并开启设备。

    条件

    • 设备 必须 (MUST) 存在并可被测试者实际接触和操作。
    • 设备 必须 (MUST) 能够通过某种方式开机,且 不得 (MUST NOT) 发生起火、爆炸等使设备不可用的状况。

    1.2 硬件基本信息

    操作

    • 查阅设备的基本信息,包括:
      • 厂商名称
      • SoC(核心型号、核心数、支持的指令集架构)
      • 内存(类型,安装方式)
      • 存储(类型,安装方式)
      • 板载功能单元如 GPU、VPU、NPU 等
      • I/O 接口(USB 端口、HDMI/DP、音频、网络接口)
      • 板型(ATX、ITX、开发板类型)
      • 调试接口(如 UART)位置和参数(波特率等)
      • ......
    • 查阅设备的厂商,获取安装文档。

    条件

    • 设备 必须 (MUST) 存在任何可访问的说明文档。
    • 设备 必须 (MUST) 支持至少 rv64gc 指令集拓展。
      • 设备 可以 (MAY) 支持 v 拓展等其它拓展指令集。
    • 设备 必须 (MUST) 存在存储器或存储器插槽, 应该 (SHOULD) 支持至少 16G 存储空间。
    • 设备 应该 (SHOULD) 具备至少 2GB 内存。为获得良好桌面体验,可以 (MAY) 具备 4GB 或以上内存。
    • 设备 必须 (MUST) 存在可重复使用的写入系统镜像的方法。
    • 设备 必须 (MUST) 具备启动 linux 系统的能力。
    • 设备 应该 (SHOULD) 提供或能够连接一个串口控制台用于调试。
    • 设备 应该 (SHOULD) 通过某种方式连接到互联网。
    • 设备 应该 (SHOULD) 具有厂商提供的安装文档。
    • 设备 不得 (MUST NOT) 存在无法关闭或兼容的安全启动/启动锁。

    2. 系统写入与安装篇

    2.1 镜像获取与校验

    操作

    • 从 deepin-ports 镜像发布页或指定地址下载系统镜像文件和对应的校验文件。
    • 校验下载的镜像文件。

    条件

    • 镜像文件 必须 (MUST) 成功下载。
    • 镜像文件的校验和 必须 (MUST) 与校验文件中的记录一致。如果出现不一致的状况,请立即向 mentor/镜像创建者报告。

    2.2 固件与 Bootloader 设置

    操作

    • 根据厂商文档,判断设备是否需要预先刷写特定版本的固件或 Bootloader(如 U-Boot)。
    • 如果设备存在需要刷写的固件
      • 根据厂商文档,检查并刷写推荐版本的固件。
    • 如果设备不需要额外刷写固件
      • 跳过本小节

    条件

    • 如果设备存在需要刷写的固件
      • 镜像 必须 (MUST) 无报错地刷写 bootloader。

    2.3 写入系统镜像

    操作

    • 根据设备文档,准备启动介质并写入镜像。

    条件

    • 镜像 必须 (MUST) 无报错地写入存储设备。

    3. 基础命令行篇

    3.1 bootloader 启动

    操作

    • 在串行控制台中执行引导命令(或等待自动引导)。
    • 观察日志,确认 bootloader 启动并准备开始引导启动。
    • 如果存在启动菜单,确认菜单存在对应的启动条目。

    条件

    • 串口控制台 应该 (SHOULD) 显示 bootloader 的启动日志。
    • 串口控制台 不应该 (SHOULD NOT) 在 bootloader 阶段输出致命性的错误日志。
    • 如果存在启动菜单
      • 启动菜单 必须 (MUST) 包括至少一条合法的启动项,对应的选项 应该 (SHOULD) 存在内核、initrd 等字段。
    • 如果设备需要设备树
      • 使用的设备树文件 应该 (SHOULD) 与设备型号对应。

    3.2 内核启动

    操作

    • 观察内核解压和启动信息(dmesg 输出)。
    • 等待一定时间后,尝试切换键盘的 NumLock/CapsLock。

    条件

    • 串口控制台 应该 (SHOULD) 显示 Linux 内核的启动日志。
    • 内核 不得 (MUST NOT) 在早期启动阶段出现 Kernel panic 或致命错误。
    • 切换键盘 NumLock/CapsLock,对应指示灯 应该 (SHOULD) 相应地变化。
    • initrd 必须 (MUST) 被内核正确加载。

    3.3 initrd 启动

    操作

    • 观察启动日志,确认 initrd 启动,根文件系统 (rootfs) 被成功挂载。

    条件

    • initrd 不得 (MUST NOT) 因报错进入 fallback 命令行。
    • 根文件系统 必须 (MUST) 被成功挂载。
    • plymouth 界面 可能 (MAY) 显示。

    3.4 systemd 启动

    操作

    • 观察启动日志,确认 systemd init 进程被成功拉起,并开始启动系统服务。
    • 启动完成后,在终端执行 systemctl --failed 查看是否有失败的服务。

    条件

    • systemd init 进程 必须 (MUST) 被启动。
    • 大部分关键服务 应该 (SHOULD) 被成功启动。
    • 启动服务过程中 可能 (MAY) 出现非关键服务长时间等待或启动失败。
    • systemd 不应该 (SHOULD NOT) 因关键服务启动失败进入 fallback 命令行。

    3.5 基本环境验证

    操作

    • 如果启动后直接进入图形化 greeter,可按 Ctrl+Alt+F2 切换到 tty2。
    • 进入命令行,使用默认密码登录系统。
    • 执行以下命令:
      • 执行 ip link 查看网络接口状况。
      • 执行 uname -a 查看内核版本。
      • df -h / mount 查看磁盘挂载情况。
      • 如果存在 fastfetch 命令,执行 fastfetch 命令。

    条件

    • Ctrl+Alt+F[1-12] 必须 (MUST) 能给切换到对应 tty。
    • 登录提示 必须 (MUST) 弹出并能输入。
    • 默认密码 必须 (MUST) 能够登录并进入 shell 命令行。
    • 不应该 (SHOULD NOT) 提示密码错误或其它认证方面的错误。
    • 以上命令 应该 (SHOULD) 能够执行,并且输出的信息与预期相符。

    4. 基本图形功能篇

    4.1 显示服务启动

    操作

    • 如果需要连接显示器,检查对应的连接线是否接好。
    • 观察显示器输出。

    条件

    • 显示器 必须 (MUST) 显示 deepin 的图形化登录界面。
    • 使用 Ctrl+Alt+F[2-6] 应该 (SHOULD) 能切换至 tty 虚拟终端并显示登录提示,Ctrl+Alt+F1 应该 (SHOULD) 能切回图形登录界面。

    4.2 图形化登录

    操作

    • 在登录界面输入正确的用户名和密码。
    • 点击登录或按回车。

    条件

    • 系统 必须 (MUST) 成功完成登录并尝试启动会话。
    • 不应该 (SHOULD NOT) 提示密码错误或其它认证方面的错误。

    4.3 基本桌面会话

    操作

    • 观察。

    条件

    • 系统 必须 (MUST) 至少能渲染出 DDE 桌面环境的基本形态。(即使非常卡顿)。
    • 桌面 应该 (SHOULD) 至少显示出壁纸、任务栏(Dock)和桌面图标的轮廓或实际内容。
    • 会话 不应该 (SHOULD NOT) 在成功登录后数秒内崩溃并返回到登录界面。

    5. DDE 桌面体验篇

    5.1 核心交互

    操作

    • 观察桌面。
    • 移动鼠标,查看光标是否跟随。
    • 点击任务栏上的启动器图标。
    • 右键点击桌面。
    • 尝试在桌面上框选。
    • 尝试使用 DDE 的快捷键。

    条件

    • DDE 应该(SHOULD) 正常渲染:
      • 桌面壁纸与桌面图标
      • 任务栏、任务栏托盘图标、托盘图标弹出菜单
    • 动画和窗口特效 可以 (MAY) 正常显示。
    • 鼠标光标 应该 (SHOULD) 正常渲染并平滑移动,不应该 (SHOULD NOT) 出现闪烁、撕裂或卡顿。
    • 任务栏(Dock)、启动器(Launcher)、桌面右键菜单 必须 (MUST) 能够响应点击操作并正常显示。
    • DDE各快捷键 应当(SHOULD) 正常工作, 不应该 (SHOULD NOT) 在键盘按键与快捷键按下时产生冲突或卡顿。

    5.2 窗口管理

    操作

    • 从启动器打开“文件管理器”和“终端”。
    • 尝试拖动、最大化、最小化、关闭窗口。
    • 尝试使用 Alt+Tab 切换窗口。

    条件

    • 窗口 必须 (MUST) 可以被拖动、缩放、最大化、最小化和关闭。
    • 窗口切换功能 应该 (SHOULD) 正常工作。
    • 窗口操作 不应该 (SHOULD NOT) 导致桌面环境(dde-shell)崩溃。

    5.3 控制中心与系统托盘

    操作

    • 观察系统托盘,点击托盘右侧的插件区域,展开控制面板。
      • 尝试调节音量、设置网络。
    • 从启动器打开“控制中心”
      • 查看并调整网络配置
      • 查看关于信息
      • 查看并调整个性化设置

    条件

    • 系统托盘和右侧插件区域 必须 (MUST) 正常显示和操作。
      • 调节音量、网络等操作 应该 (SHOULD) 成功。
    • 控制中心 必须 (MUST) 能够正常打开和关闭。
      • 控制中心内的各个模块 应该 (SHOULD) 能够加载并显示正确信息。

    6. 高级图形功能篇

    在本章节的任意时刻:

    • 如果设备已知无 OpenGL/OpenGLES/Vulkan 之中的任一图形加速
      • 跳过本章节

    6.1 设备节点验证

    操作

    • 查看 /dev/dri 下内容。

    条件

    • 设备 必须 (MUST) 存在 /dev/dri 目录,并存在至少一个渲染节点(render*)和至少一个设备节点(card*)。

    6.2 GPU 驱动验证

    操作

    • 执行 glxinfoglxgears
    • 执行 es2_infoes2gears_x11
    • 执行 eglinfoeglgears_x11
    • 执行 vkgears -info

    条件

    • 设备 应当(SHOULD)es2_infoeglinfo 中显示硬件和驱动,不应该 (SHOULD NOT) 出现 llvmpipesoftpipe 字样。
    • 设备 可能 (MAY)glxinfo 和/或 vkgears -info 中显示 llvmpipesoftpipe 字样。
    • 设备 可能 (MAY) 无法运行 eglgears_x11 和/或 es2gears_x11
    • 如果设备使用 AMD GPU:
      • 设备 不应该(SHOULD NOT)glxinfovkgears -info 中显示 llvmpipesoftpipe 字样。
      • 设备 应当 (SHOULD) 能够运行 eglgears_x11 和/或 es2gears_x11

    6.3 GPU 基准测试

    操作

    • 安装 glmark2glmark2-es2-x11
    • 执行 glmark2,记录分数。
    • 执行 glmark2-es2,记录分数。

    条件

    • 设备 应当(SHOULD) 能够运行上述程序并输出分数,不应该 (SHOULD NOT) 报错退出。
    • 设备 应当(SHOULD)glmark2-es2 中显示硬件和驱动,不应该 (SHOULD NOT) 出现 llvmpipesoftpipe 字样。
    • 如果设备使用 AMD GPU:
      • 设备 不应该(SHOULD NOT)glmark2 中显示 llvmpipesoftpipe 字样。

    6.3 显示管理

    操作

    • 打开“控制中心”,进入显示设置,尝试调整分辨率(若显示器支持)和刷新率(若显示器和显卡支持)。
    • 如果设备存在其它视频输出接口:
      • 接入第二台显示器,观察输出状况。
      • 尝试切换多屏显示模式(复制/拓展)。
      • 打开“控制中心”,进入显示设置,尝试调整第二台显示器的分辨率(若显示器支持)和刷新率(若显示器和显卡支持)。

    条件

    • 如果硬件支持,通过控制中心 应当(SHOULD) 可以正常调整所有显示输出的分辨率和刷新率。
    • 如果设备存在其它视频输出接口:
      • 两台显示器 应当(SHOULD) 支持同时输出。
      • 复制/拓展 显示模式 应当(SHOULD) 能够正常输出和切换。

    7. deepin 内置应用篇

    7.1 核心工具

    操作

    • 在启动器中打开“终端”、“文本编辑器”、“计算器”、“看图”、“画板”。
      • 在文本编辑器中输入文字并尝试保存。
      • 使用看图打开一张 PNG 和一张 JPG 图片。

    条件

    • 以上应用 必须 (MUST) 能够成功启动并显示主界面。
    • 应用的核心功能(如输入、保存、打开文件)必须 (MUST) 正常工作。

    7.2 系统管理

    操作

    • 打开“系统监视器”、“日志收集工具”、“设备管理器”。
    • 在系统监视器中查看进程、资源占用情况。
    • 在设备管理器中查看硬件列表。

    条件

    • 以上应用 必须 (MUST) 能够成功启动。
    • 应用 应该 (SHOULD) 正确读取并显示一些系统信息
      • 设备管理器 可能 (MAY) 无法显示设备的一部分信息。

    7.3 影音娱乐

    操作

    • 打开“音乐”,尝试播放音乐文件夹的示例音乐。
    • 打开“影院”,尝试播放视频文件夹的示例视频。

    条件

    • “音乐”和“影院” 必须 (MUST) 能够启动。
    • 音频和视频 应该 (SHOULD) 能够正常播放(允许卡顿,但声音和画面需要基本同步)。

    8. 硬件加速篇

    8.1 视频硬件加速解码

    操作

    • 准备若干常见码率和格式视频,如
      • 1080p60_6000Kbps_h264
      • 1440p60_10000Kbps_hevc
      • 2160p30_20000Kbps_av1
      • ......
    • 安装 mpv,使用 mpv 播放视频。
    • 使用系统自带视频播放器 deepin-movie 播放视频。
    • 使用浏览器访问视频网站播放视频。

    条件

    • 硬件视频解码器支持的视频格式 必须(MUST) 成功调用硬件解码器
    • 解码结果 必须(MUST) 软件解码结果相同
    • 解码结果 禁止(MUST NOT) 出现颜色错误/亮度错误等问题
    • CPU使用率 应当(SHOULD) 在合理范围内
    • 设备可以 可以(MAY) 不掉帧的播放视频

    8.2 视频硬件加速编码

    操作

    • 使用 ffmpeg 命令尝试将一个视频文件转码为硬件支持的格式

    条件

    • 硬件视频编码器支持的视频格式 必须(MUST) 成功调用硬件编码器
    • 编码结果 必须(MUST) 可以正常解码
    • CPU使用率 应当(SHOULD) 在合理范围内

    9. 第一方仓库软件篇

    9.1 包管理

    操作

    • 执行 sudo apt update 更新软件仓库。
    • 执行 sudo apt install 安装任意软件包
    • 执行 sudo apt remove 删除上一步安装的软件包
    • 执行 sudo apt upgrade 升级软件包

    条件

    • apt update 必须 (MUST) 成功完成,无 GPG 错误或无法连接仓库的错误。
    • 软件包的安装和卸载 必须 (MUST) 正常工作。
    • apt upgrade 应该 (SHOULD) 能够正常执行,完成系统更新。

    9.2 办公应用

    操作

    • 在启动器中打开 LibreOffice Writer。
      • 输入一段文字并保存。
    • 在启动器中打开 LibreOffice Calc。
      • 创建一个表格并保存。
    • 在启动器中打开 LibreOffice Impress。
      • 创建一个演示文档并保存。

    条件

    • LibreOffice 必须 (MUST) 能够启动并正常使用其核心功能。
    • 不应该 (SHOULD NOT) 出现因缺少依赖或架构不兼容导致的启动失败。

    9.3 基本构建环境

    操作

    • 执行 sudo apt install build-essential
    • 创建一个 hello.c 文件,内容为标准的 "Hello, World!" 程序。
    • 执行 gcc hello.c -o hello 进行编译。
    • 执行 ./hello 运行程序。

    条件

    • build-essential必须 (MUST) 能够被成功安装。
    • C 语言 "Hello, World!" 程序 必须 (MUST) 能够被成功编译和运行。

    10. 外设驱动支持篇

    10.1 核心外设

    操作

    • 如果设备存在 USB 接口:
      • 将 USB 键盘和鼠标连接到不同的 USB 2.0/3.0 接口上。
      • 将 U 盘(FAT32/EXT4/NTFS 格式)连接到 USB 接口。
      • 在终端中执行 lsusb 命令。
    • 如果设备存在 RJ45 网络接口:
      • 在终端中执行 ip link 命令。
      • 连接有线网络。

    条件

    • 如果设备存在 USB 接口:
      • USB 键盘和鼠标 必须 (MUST) 被即时识别并正常工作。
      • U 盘 必须 (MUST) 被正确识别并自动挂载,文件管理器中 应该 (SHOULD) 出现对应盘符并可访问。
      • lsusb 命令 必须 (MUST) 正确显示对应设备。
    • 如果设备存在 RJ45 网络接口:
      • ip link 命令 必须 (MUST) 正确显示对应设备。
      • 有线网络 必须 (MUST) 自动连接并获取 IP 地址(DHCP),能够访问互联网。

    10.2 音频输出

    操作

    • 如果有 3.5mm 音频接口,插入/拔出耳机。
    • 如果存在任何音频输出设备:
      • 通过音乐播放器或浏览器播放音频或视频,确认音频输出是否正常。
    • 如果有麦克风接口或板载麦克风:
      • 使用录音测试输入。

    条件

    • 各个设备的音频输出/输入 应该 (SHOULD) 正常工作。

    10.3 板载无线功能

    操作

    • 如果有板载 Wi-Fi:
      • 在终端中执行 ip link 命令。
      • 在控制中心搜索并连接到一个 WPA2/WPA3 加密的无线网络。
    • 如果有板载蓝牙:
      • 在控制中心尝试搜索并配对一个蓝牙设备(如蓝牙鼠标、耳机)。

    条件

    • 如果有对应设备,Wi-Fi 应该 (SHOULD) 能够扫描到网络并成功连接。
    • 如果有对应设备,蓝牙 应该 (SHOULD) 能够开启、扫描并成功配对设备。

    10.99 章节施工

    此章节尚未完成,测试在此中止。

    11. 第三方软件篇

    此章节施工中,测试在此中止。

    结论

    测试日期:

    测试设备型号:

    测试镜像版本:

    支持等级:

    X.Y

    摘要总结:

    (简要描述测试过程中的关键发现、主要障碍和总体评价。)

    测试流程

    (测试报告无须写出所有步骤,若某小节所有条件均满足,则简单说明操作即可。)

    未通过的最高条件:

    (详细记录导致测试终止的最后一个条件,包括章节号、条件描述和实际观测现象。)

    异常记录 (MAY/SHOULD):

    (列出所有在测试中记录的 MAY 和被忽略的 SHOULD/SHOULD NOT 异常。)

    鸣谢

    在此处留下自己的 ID 表示自己参与了编辑,当该文档发布时可作为可见产出。

    • @YukariChiba
    • @Alphagocc
    • @apr3vau

    镜像更新

    • deepin-ports-image 镜像打包脚本:
      • 现可实验性支持 grub 启动方式的镜像构建,以便在内核/驱动尚未主线化前发布部分通过支持 UEFI 启动的设备的预览镜像。
      • 现可支持 efi/boot/root 三分区的镜像打包,方便构建通过 grub 启动的镜像。
      • 安装行为改为在 mmdebstrap 基础系统后,使用 apt 安装剩余组件,避免潜在的依赖问题。
      • 现可选择 deepin 内网源加速软件包下载(仅 deepin 内部可用)
      • 新增 dp1000 支持
    • 新增了以下设备的 deepin 25 测试镜像:
      • generic:
        • 20250621-023448
        • 20250622-022810
        • 20250623-214346
        • 20250625-171832 (deepin 25 发布版本)
      • dp1000:
        • 20250625-030117
    • 与 deepin 25 正式版同步发布 RISC-V 版本的 ISO,可通过「镜像下载」页面最新的 deepin 25(磐石)QEMU/通用镜像对应的链接下载。
    • 已有的基于任何先前版本的 deepin 25 镜像安装的设备均可通过 apt 升级至 deepin 25 发布版本。

    驱动更新

    • deepin-ports-profiles 包为所有 Imagination 设备启用 QT_FORCE_OPENGL_TYPE=OpenGLES 以在 Qt6 上强制使用 GLES。
      • 已知存在 shader 渲染问题,已转交 DTK 开发人员处理。

    测试

    • 测试了以下镜像:

    文档

    活动

    • 继续筹备参展 RISC-V 峰会的海报和材料。
      • 海报制作完毕,设计稿如下: Poster

    Wednesday, June 25, 2025

    编辑的话请把自己的名字加到作者名单里

    即将发布(你阅读到这个文章的时候可能已经发布了)的 deepin 25 正式版将会包含对应的新版 DDE。为了方便各个其它发行版的包维护者可以更方便的移植 DDE 到对应的发行版,这里提供一篇简要的移植指南,用以描述常见的移植问题和解决方案。

    下面对项目名称的称呼均以 GitHub 对应的原始仓库名为准。

    概览

    相对于 deepin 25 beta,在 deepin 25 正式版中并不存在较大幅的架构调整,而是以缺陷修复以及完善之前尚未完善但计划涵盖在最终版本的组件(例如 QML 版控制中心)作为研发的重心。本阶段中有部分组件的首位版本号存在调整,另存在一些注意事项,详情请参见后续的描述。

    由于这些项目的版本间互相影响,我们建议移植人员参照 deepin 25 正式版所使用的包版本进行打包,下面会对主要的部分进行详细说明。

    需要注意的是,由于此文章编写时间早于版本发布时间,故最终版本镜像中使用的版本可能高于下面列出的版本。我们尽可能确保此文章的准确性,但若您需要获取 ISO 镜像中使用的确切软件版本列表,请挂载 ISO 后参阅 LIVE/FILESYS{T,0,1}.MAN/live/filesystem.manifest 路径对应的文件的内容。

    另外,由于前述 manifest 文件包含了 ISO 所附带的所有软件包的版本信息,而 DDE 移植并不需要关注整个列表,你可以参考 deepin-community/deepin-desktop-environment 提供的几个 Meta 包中描述的依赖关系,来了解哪些软件包和 DDE 有关。

    主要组件

    DTK 与 DTK6

    DTK 是 DDE 组件与应用的基础依赖,适用于deepin 25 正式版的版本参照如下:

    packageversion
    dtkcommon5.7.17
    dtklog0.0.4
    dtkcore5.7.17
    dtkgui5.7.17
    dtkwidget5.7.17
    dtkdeclarative5.7.17
    qt5integration5.7.17
    qt5platform-plugins5.7.17.1
    dtk6core6.0.37
    dtk6gui6.0.37
    dtk6widget6.0.37
    dtk6declarative6.0.37
    qt6integration6.0.37
    qt6platform-plugins6.0.37

    本次 DTK 组件大部分版本号以及相对应的平台插件等版本号均已对齐,例外的有 dtkcommon 与 dtklog。可参照上表进行打包。

    关于 qt5platform-plugins,现有的 dwayland 插件可能对非 DDE 环境(例如 KDE)的 wayland 用户存在影响,可参照 linuxdeepin/developer-center#7217 打对应的 patch 规避影响。

    DDE 主要组件

    下面仅涉及变化较大或影响较广的组件。其余未涉及的组件可正常参照最新 tag 进行打包与移植。

    在 alpha 与 beta 阶段使用 1.99.z 系列版本号的项目现均启用了 2.0.z 版本号,以表示相关的行为变动。针对 dde-shell 所提供库的依赖的 SOVERSION 仍为 1,不受打包版本号的影响。

    下面涉及到的组件的版本参照如下:

    packageversion
    deepin-desktop-schemas6.0.11
    dde-daemon6.1.40
    dde-session2.0.2
    dde-session-ui6.0.30
    dde-session-shell6.0.41
    dde-application-manager1.2.31
    dde-shell2.0.1
    dde-launchpad2.0.1
    dde-tray-loader2.0.2
    dde-application-wizard0.1.15
    dde-clipboard6.1.9
    deepin-service-manager1.0.13
    dde-launcher被 dde-launchpad 取代,不再使用
    dde-dock被 dde-shell 取代,不再使用
    startdde已被废弃,不再使用

    dde-application-manager

    由于涉及到诸多关于应用识别的改善,故建议总是使用最新版本。

    dde-session-shell

    相比 beta ,此项目不涉及较大的结构调整,但你可能希望阅读 beta 时的变动描述,涉及到了仓库位置和提交历史相关的说明。

    dde-shell

    dde-shell 旨在将 DDE 桌面环境插件化与模块化,降低开发难度,使各个组件的替换变得更加容易,并且提供更好的桌面环境集成支持。正式阶段相比 beta 阶段集中在缺陷的修复上,并未涵盖太多的结构调整和新特性。对于 beta 以及更早版本的变化,请阅读之前的博客文章。

    为保障 dde-shell 在 Qt 6.8.0 或 6.8.1 的环境可以正常运行(即使是X11环境下),若 ,则 必须 给 qtwayland 打下面的 patch:

    dde-shell 在 alpha 中为修正一个特定问题所包含的一个变更依赖另一个 Qt Wayland 的 patch:

    若你所移植的目标发行版不接受此补丁,则可考虑对 dde-shell 项目 revert 于此相关的对应 commit:

    dde-launchpad

    dde-launchpad 现仅支持以 dde-shell 插件的形式被最终用户使用。因而,打包 dde-launchpad 现需要先打包 dde-shell,并确保用户最终使用的是 dde-shell。

    dde-session

    我们已在 deepin 23 beta3 起放弃了对 deepin-kwin wayland 的支持,DDE 后续所有 wayland 相关的支持均由 treeland 提供。请参见后续的 Treeland 段落。

    下面涉及到的组件的版本参照如下。对于位于非 linuxdeepin 组织的软件包,此处一并给出了组织名:

    packageversion
    vioken/waylib0.6.13
    vioken/qwlroots0.5.3
    treeland0.5.20
    ddm0.1.10

    deepin-kwin 环境

    此部分相对 beta 也未存在较大变动,但由于此组件的重要性,方便起见,此处重新阐述 beta 阶段的变化:

    deepin-kwin 对 Qt 的版本依赖切换到了 Qt 6,不过值得注意的是,当前的 deepin-kwin 并非从上游 kwin 6.x 中 fork 出来的,而是基于 uos 20 版本的 kwin 5.27.x 进行的 qt6/kf6 迁移,并且由于一些原因,其二进制可执行的文件名恢复到了 kwin,这会导致与上游原版 kwin 的冲突。

    就于此事项的详细介绍,请参见 https://github.com/orgs/linuxdeepin/discussions/11471 讨论。对于移植人员,我们建议考虑下面三种方案:

    • 使用 Qt 6 的 deepin-kwin,放弃与上游 kwin 的共存支持。
    • 继续使用 deepin-kwin 5.27,尽管存在一些问题,但此版本仍然可保证和上游版本 kwin 共存。
    • 考虑打包 Treeland 环境。

    Treeland 环境

    Treeland 环境在 alpha -> beta 阶段无较大变化,alpha 阶段的移植注意事项仍然适用于 beta。

    DDM

    尽管 DDM 目前是基本功能可用状态,DDM 目前仍相对而言不够稳定。对于打包移植而言,建议采用其他DM来启动用户级的treeland。

    对于其它 DM,只需要打包时安装 usr/share/wayland-sessions/treeland-user.desktop 即可。

    Qt 补丁

    下述假定您的发行版使用的 Qt 版本为 Qt 6.8.2。

    如果你在 Treeland 下遇到小 launchpad 无法输入中文的问题,可以打下面的 patch,但是该 patch 目前尚未进行完整测试,可能存在一些问题。

    https://codereview.qt-project.org/c/qt/qtbase/+/611940

    另外,如果你的发行版所附的 Qt 6.8 版本并未更新至 Qt 6.8.2,则可能需要打三个额外的补丁,可参见 DDE Qt 6.8 适配说明(针对 Qt 6.8.0) 以及 deepin 25 preview DDE 移植简要指南(针对 Qt 6.8.1)

    Qt 6.9 说明

    DDE 尚未完整针对 Qt 6.9 进行测试,但存在一些已知问题,下面列出了对应的问题和处理方式:

    1. QML 的 DelegateChoice/DelegateChooser 组件不存在问题

    Qt 6.9 中,此组件被从 labs “转正”到了 QtQml.Models 下,相应的 import 需要修正。已知 dde-shell 存在此问题(修正相关问题的 patch)。

    若有其他项目存在相同问题,则对于此问题的修正,可参考 dde-shell 的相关提交:

    建议忽略移植的组件

    deepin-anything

    尽管被部分 DDE 组件依赖,但均为可选。anything 提供了内核模块,对于滚动发行版移植可能不友好,可能移植并不能得到很高的体验改善。

    若忽略 deepin-anything 移植,则下列组件也应当被忽略(因为依赖了 deepin-anything):

    • dde-grand-search

    dde-application-wizard

    尽管此项目初衷之一是提供可移植的模块化卸载服务,但并未达到理想状态。尽管事实上可被顺利移植,此项目可以考虑忽略。缺失此组件并不会影响 DDE 主要功能。

    获取移植帮助

    如果您希望得到移植相关的帮助,请考虑加入我们 DDE 移植小组的在线交流群(下列房间有桥接,任选其一即可),一起展开相关的交流: