Files
chromebox_10th_audio_driver/next.md
jack 1f7495e31c docs(hdmi): WirePlumber 固化 Kaisa HDMI 输出与默认 sink 优先级
新增仓库内 WirePlumber 片段示例(pro-audio + pro-output 优先级)与
OPERATION_PipeWire_Kaisa_HDMI.md;CHROMEOS515 文档增加 §4.3 链至桌面会话
排障;next.md 补充 PipeWire 链路与内核验证流程更新。

Made-with: Cursor
2026-04-06 12:22:23 +08:00

6.0 KiB
Raw Blame History

next.md

仓库根目录默认 ~/文档/chromebox_10th_audio_driver;路径不同只改 REPO_ROOT
结论请同步 WORK_PROGRESS;文档入口见 DOCUMENTATION_ARCHITECTURE

本文对应流程:验证 SOF dmesg 诊断补丁 →(按需 apply→ deps + 编译 HWE 6.17 →(可选)安装与真机验证。补丁文件:patches/ubuntu-hwe-6.17/SOF-hw_params_trace-full-chain-dmesg.patch。细节见 patches/ubuntu-hwe-6.17/README.md


前置条件

  • 源码树:kernel-src/linux-hwe-6.17-6.17.0/ 存在且含 debian/rules,与目标 uname -r 前缀一致(见 kernel-src/README.md)。
  • 环境Ubuntu或已配置 build-dep linux-hwe-6.17);编译耗时长、磁盘占用大(常见需 ≥3550GB 余量)。

0环境变量可选

export REPO_ROOT="$HOME/文档/chromebox_10th_audio_driver"
export SRC="$REPO_ROOT/kernel-src/linux-hwe-6.17-6.17.0"
cd "$REPO_ROOT"

1验证补丁dry-run

推荐在仓库根目录执行:

./scripts/verify-ubuntu-hwe-sof-dmesg-trace-patch.sh
  • 默认 SRC=$REPO_ROOT/kernel-src/linux-hwe-6.17-6.17.0PATCH 指向上述 SOF-hw_params_trace-full-chain-dmesg.patch
  • 成功:输出 patch --dry-run 通过当前源码树已包含该补丁内容(后者表示无需再 apply)。

手工等价:

cd "$SRC"
patch -p1 --dry-run --batch < "$REPO_ROOT/patches/ubuntu-hwe-6.17/SOF-hw_params_trace-full-chain-dmesg.patch"

若 dry-run 失败(上下文不匹配),先对齐 apt source 版本与补丁目标, patch --force


2应用补丁仅当尚未包含

仅当第 1 步 dry-run 通过不是「已包含」时执行一次:

export PATCH="$PWD/patches/ubuntu-hwe-6.17/SOF-hw_params_trace-full-chain-dmesg.patch"
./scripts/ubuntu-hwe-617-build.sh apply

若脚本已提示「已包含」,跳过本步


3依赖与编译

使用 scripts/ubuntu-hwe-617-build.sh

步骤 命令 说明
依赖(通常一次) ./scripts/ubuntu-hwe-617-build.sh deps sudo(如 build-dep linux-hwe-6.17
构建 ./scripts/ubuntu-hwe-617-build.sh build fakeroot debian/rules clean && binary-genericdeb 产出在 SRC 的父目录kernel-src/

并行度可用 CONCURRENCY_LEVEL(或脚本内 JOBS)控制。

export CONCURRENCY_LEVEL="$(nproc)"
./scripts/ubuntu-hwe-617-build.sh deps
./scripts/ubuntu-hwe-617-build.sh build

树不干净时可在 $SRC 下按需 make mrproper 后再 build(见 kernel-src README


4安装可选真机测 hw_params_trace

unsigned 镜像 + modules 等,可用脚本(与手动 dpkg -i 等价思路):

./scripts/ubuntu-hwe-617-build.sh install
sudo reboot

装前可在 kernel-src/ls -la *.deb 核对版本。若本机已装同 ABI 的官方 signedunsigned 冲突,按 OPERATION_Install_CustomKernel_Ubuntu_HWE617.md §2.1 处理后再装。

apt purge 镜像包时出现:rmdir: 删除 '/lib/modules/6.17.0-20-generic' 失败: 目录非空

在只执行例如:

sudo apt purge linux-image-6.17.0-20-generic
# 或
sudo apt purge linux-image-unsigned-6.17.0-20-generic

清除配置文件阶段,可能打印上述 rmdir 失败(与你终端里一致)。

  • 原因/lib/modules/6.17.0-20-generic/ 里仍有 linux-modules-6.17.0-20-generic(以及 linux-modules-extra-*linux-modules-iwlwifi-*同 ABI)安装的文件;镜像包维护脚本试图删掉「本应随镜像一起空掉的」目录时,目录非空就会报错。
  • 通常怎么处理:多数情况下这是非致命提示,不代表 purge 命令整体失败;也不代表该 ABI 的模块已从系统卸光。若要从磁盘整套拆掉 6.17.0-20,需按 OPERATION 文档 核对并卸/换 linux-modules-* 等同 ABI 包;若接下来要重装自编 unsigned,按文档装回 image + modules 即可。
  • 自查dpkg -l | grep 6.17.0-20 看还有哪些包仍为 ii

5重启后启用 trace 与 dmesg

进入自编内核且 snd_sof 已加载SOF 机器)后:

echo 1 | sudo tee /sys/module/snd_sof/parameters/hw_params_trace
# 播放 HDMI 音频后:
sudo dmesg | grep SOF_TRACE

说明:只跑官方签名内核验不出上述补丁;需装 unsigned 自编包并重启后再测。


6真机运行时预检可选

已加载 snd_sof 时,可用:

./scripts/verify-ubuntu-hwe617-patches-runtime.sh

跳过 HDMI speaker-test、仅 dry-run + 模块检查:

RUN_HDMI_TEST=0 ./scripts/verify-ubuntu-hwe617-patches-runtime.sh

指定 HDMI 设备(需把变量传给 root

sudo env HDMI_PLUGHW=plughw:0,3 ./scripts/verify-ubuntu-hwe617-patches-runtime.sh

说明见 patches/ubuntu-hwe-6.17/VERIFY_PATCHES.md


若仍无声或需排障上下文

CHROMEOS515_UBUNTU617_HDMI_IMPLEMENTATION_AND_GAPS.md 相关章节。

桌面 PipeWireKaisa:若仅 stereo-fallback、无法选 HDMI 或需热插拔默认输出,见 OPERATION_PipeWire_Kaisa_HDMI.md 与仓库内 docs/linux-hdmi/wireplumber/50-kaisa-sof-rt5682-hdmi.conf


用完

验证结果摘要写入 WORK_PROGRESS 后,可清空或覆盖本文件。