deepin-ports RISC-V 测试流程与模板 v0.1
本文档旨在为 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 驱动验证
操作
- 执行
glxinfo
和glxgears
- 执行
es2_info
和es2gears_x11
- 执行
eglinfo
和eglgears_x11
- 执行
vkgears -info
条件
- 设备 应当(SHOULD) 在
es2_info
和eglinfo
中显示硬件和驱动,不应该 (SHOULD NOT) 出现llvmpipe
或softpipe
字样。 - 设备 可能 (MAY) 在
glxinfo
和/或vkgears -info
中显示llvmpipe
或softpipe
字样。 - 设备 可能 (MAY) 无法运行
eglgears_x11
和/或es2gears_x11
。 - 如果设备使用 AMD GPU:
- 设备 不应该(SHOULD NOT) 在
glxinfo
或vkgears -info
中显示llvmpipe
或softpipe
字样。 - 设备 应当 (SHOULD) 能够运行
eglgears_x11
和/或es2gears_x11
。
- 设备 不应该(SHOULD NOT) 在
6.3 GPU 基准测试
操作
- 安装
glmark2
和glmark2-es2-x11
- 执行
glmark2
,记录分数。 - 执行
glmark2-es2
,记录分数。
条件
- 设备 应当(SHOULD) 能够运行上述程序并输出分数,不应该 (SHOULD NOT) 报错退出。
- 设备 应当(SHOULD) 在
glmark2-es2
中显示硬件和驱动,不应该 (SHOULD NOT) 出现llvmpipe
或softpipe
字样。 - 如果设备使用 AMD GPU:
- 设备 不应该(SHOULD NOT) 在
glmark2
中显示llvmpipe
或softpipe
字样。
- 设备 不应该(SHOULD NOT) 在
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