• 首页
  • 加入
  • RSS
  • 欢迎来到 deepin 星球

    这里是一个订阅源聚合站点,其汇集了向 deepin 社区 进行贡献的贡献者们与 deepin 相关的博客文章

    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 路径对应的文件的内容。

    主要组件

    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 的相关提交:

    获取移植帮助

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

    Thursday, June 19, 2025

    从本次报告开始,deepin-ports SIG 将在每周末发布每周的进展报告。

    镜像更新

    • 为 u-boot 默认配置增加 U_BOOT_SYNC_DTBS 选项以自动拷贝设备树文件。
    • 新增了以下设备的 deepin 25 测试镜像:
      • k1:
        • 20250617-161611
        • 20250617-135113
      • generic:
        • 20250618-150752

    驱动更新

    imggpu

    应用更新

    • 为 deepin 安装器修复 riscv64 ISO 全盘安装未正确设置分区的问题。

    测试

    • deepin-ports RISC-V 测试规范撰写中
    • 测试了以下镜像:

    文档

    网页

    • 上线新版网页
      • 新增「支持矩阵」提供支持设备列表及基本信息
      • 新增「测试报告」提供各镜像的测试结果(如果有)
      • 新增「文档列表」列出全部的安装指南和测试报告
      • 界面风格改进

    活动

    • 筹备参展 RISC-V 峰会的海报和材料
    • OSPP 2025 RISC-V 相关项目已结束申请,即将正式开始,包括:
      • 为 deepin RISC-V 移植 GCC 12 的 RISC-V Vector (RVV) 扩展支持
      • 为Linux Kernel扩充更多基于RISC-V V扩展和K扩展的SHA-3算法加速实现

    Tuesday, May 27, 2025

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

    已经发布的 deepin 25 beta 包含了对应的新版 DDE。为了方便各个其它发行版的包维护者可以更方便的移植 DDE 到对应的发行版,这里提供一篇简要的移植指南,用以描述常见的移植问题和解决方案。

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

    概览

    相对于 deepin 25 alpha,在 deepin 25 beta 中并不存在较大幅的架构调整,而是以缺陷修复以及完善之前尚未完善但计划涵盖在最终版本的组件(例如 QML 版控制中心)作为研发的重心。需要注意的是,部分 DDE 组件在本版本中已被废弃,另外本次发布过程中也存在一个组件的 git 仓库有变动的情况,详情请参见后续的描述。

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

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

    主要组件

    DTK 与 DTK6

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

    packageversion
    dtkcommon5.7.16
    dtklog0.0.2
    dtkcore5.7.16
    dtkgui5.7.16
    dtkwidget5.7.16
    dtkdeclarative5.7.16
    qt5integration5.7.16
    qt5platform-plugins5.7.16
    dtk6core6.0.36
    dtk6gui6.0.36
    dtk6widget6.0.35
    dtk6declarative6.0.36.4
    qt6integration6.0.35
    qt6platform-plugins6.0.35

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

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

    DDE 主要组件

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

    由于 deepin 25 preview 仍在持续开发过程中,故较多组件采取了 x.99.z 的版本号策略。此外,一般情况下,此类 tag 并不会实际以 git tag 的形式存在,而只会体现在 debian/changlog 文件中。下面涉及到的此类版本号将会在版本发布前后补充对应的 git tag。

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

    packageversion
    deepin-desktop-schemas6.0.10
    dde-daemon6.1.32
    dde-session1.99.17
    dde-application-manager1.2.28
    dde-shell1.99.36
    dde-launchpad1.99.15
    dde-tray-loader1.99.26
    dde-application-wizard0.1.14
    dde-clipboard6.1.8
    dde-launcher被 dde-launchpad 取代,不再使用
    dde-dock被 dde-shell 取代,不再使用
    startdde已被废弃,不再使用

    dde-application-manager

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

    dde-session-shell

    此项目未涉及到结构性的巨大调整,但存在仓库历史与 tag 历史变化的事项。由于项目维护需要,之前的 dde-session-shell 仓库被重命名为了 dde-session-shell-snipe,并在此后新建了名为 dde-session-shell 的仓库,这导致你无法在 dde-session-shell 仓库下找到历史(例如alpha之前)的 tag 信息。若有移植需求,可移步 dde-session-shell-snipe 仓库。

    对于 beta 以及未来版本的移植,仍然保持使用 dde-session-shell 仓库即可。

    dde-shell

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

    为保障 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 环境

    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 讨论。对于移植人员,我们建议考虑下面两种方案:

    • 继续使用 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-control-center 与 dde-shell 存在此问题,其中 dde-control-center 已进行了修正:

    获取移植帮助

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

    Wednesday, May 14, 2025

    起因

    之前已经写过一篇使用 distrobox

    Tuesday, April 22, 2025

    最近遇到了两起 X11 下客户端报 Maximum number of clients reached 的错误,并且无法连接到 Xorg。

    搜到了一个排查方法,执行

    Wednesday, April 16, 2025

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

    deepin 23.1 现已发布。为了方便各个其它发行版的包维护者可以更方便的移植 DDE 到对应的发行版,这里提供一篇简要的移植指南,用以描述常见的移植问题和解决方案。

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

    概览

    对于 DDE 本次更新并未包含大规模的结构调整,而是比较存催的缺陷修复为主的更新,对于比较值得注意的事项将会列在下方。对于 deepin 23 的注意事项,可参见 deepin 23 正式版发布时的移植指南文章所给出的说明。

    由于 DDE 涉及到的各个组件项目的版本间互相影响,我们强烈建议移植人员参照 deepin 23.1 正式版所使用的包版本进行打包(也务必遵循依赖顺序打包)。下面会对主要的部分进行详细说明。

    下面给出的版本号信息供打包移植时参考。若您需要获取 ISO 镜像中使用的确切软件版本列表,请挂载 ISO 后参阅 LIVE/FILESYSTEM.MANIFEST (也可能是 LIVE/FILESYS0.MAN)路径对应的文件的内容。

    主要组件

    DTK 与 DTK6

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

    packageversion
    dtkcommon5.7.5
    dtklog0.0.2
    dtkcore5.7.5
    dtkgui5.7.5
    dtkwidget5.7.5
    dtkdeclarative5.7.5
    qt5integration5.7.5
    qt5platform-plugins5.7.5
    dtk6log0.0.2
    dtk6core6.0.25
    dtk6gui6.0.25
    dtk6widget6.0.25
    dtk6declarative6.0.25
    qt6integration6.0.25
    qt6platform-plugins6.0.25

    除新增的 dtklog 外,本次 DTK 版本号以及相对应的平台插件等版本号均已对齐,可直接参照打包。

    deepin-kwin wayland 功能已经废弃,未来将由 treeland 替代。目前 dwayland 包已经不再使用,依赖此包的应用比如 qt5platform-plugins,不应该继续编译依赖 dwayland 的功能,可参照 linuxdeepin/developer-center#7217 打对应的 patch 规避。

    目前,使用 dtk6 的正式组件有 dde-application-manager,dde-launchpad 与 dde-shell。需要注意,deepin 23 环境中 dde-shell 的托盘组件 dde-tray-loader 仍然需要使用 qt5。

    DDE 主要组件

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

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

    packageversion
    deepin-osconfig2024.08.06
    dde-app-services1.0.27
    dde-session1.2.13
    dde-application-manager1.2.27
    dde-tray-loader1.0.10
    dde-shell1.0.10
    dde-launchpad1.0.11
    dde-application-wizard0.1.10
    deepin-wayland-protocols1.10.0.28
    deepin-kwin5.27.2.213
    dde-launcher被 dde-launchpad 取代,不再使用
    dde-dock被 dde-shell 取代,不再使用

    dde-application-manager

    此组件现已使用主干分支最新版本(当前为 1.2.27)。请注意,较早的主干版本(例如 1.2.26)在 deepin 23 环境存在一些已知行为问题,故移植最新的 deepin 23 DDE 时,请至少使用 1.2.27 版本。

    dde-session-shell

    尽管此组件不存在架构性质层面的较大调整,但涉及到打包移植相关的注意事项。此组件由于主干分支的研发需求,对仓库进行过迁移到。当前 GitHub 上的 linuxdeepin/dde-session-shell 仓库历史已与之前不同。故如果你需要适用于 deepin 23 的此仓库的完整历史,请转到 dde-session-shell-snipe。所有原始仓库的提交历史以及 tag 均可在这个仓库中找到(实质是仓库重命名后新建了与原名的同名仓库)。

    (注:相关请参见此邮件列表存档

    Qt 6.9 编译问题

    如果遇到 qmlsc 崩溃问题,见 QTBUG-135885QTBUG-135885,需要为 qtdeclarative 增加以下 patch:

    技术预览组件

    原本涉及的技术预览组件在 23 至 23.1 的这个阶段均无较大进展,故不再于此罗列。

    获取移植帮助

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