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

161 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# next.md
> 仓库根目录默认 **`~/文档/chromebox_10th_audio_driver`**;路径不同只改 `REPO_ROOT`。
> 结论请同步 [WORK_PROGRESS](docs/meta/WORK_PROGRESS.md);文档入口见 [DOCUMENTATION_ARCHITECTURE](docs/meta/DOCUMENTATION_ARCHITECTURE.md)。
本文对应流程:**验证 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/SOF-hw_params_trace-full-chain-dmesg.patch)。细节见 [patches/ubuntu-hwe-6.17/README.md](patches/ubuntu-hwe-6.17/README.md)。
---
## 前置条件
- 源码树:[`kernel-src/linux-hwe-6.17-6.17.0/`](kernel-src/linux-hwe-6.17-6.17.0/) 存在且含 **`debian/rules`**,与目标 `uname -r` 前缀一致(见 [kernel-src/README.md](kernel-src/README.md))。
- 环境Ubuntu或已配置 `build-dep linux-hwe-6.17`);编译耗时长、磁盘占用大(常见需 **≥3550GB** 余量)。
---
## 0环境变量可选
```bash
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
推荐在仓库根目录执行:
```bash
./scripts/verify-ubuntu-hwe-sof-dmesg-trace-patch.sh
```
- 默认 `SRC=$REPO_ROOT/kernel-src/linux-hwe-6.17-6.17.0``PATCH` 指向上述 `SOF-hw_params_trace-full-chain-dmesg.patch`
- **成功**:输出 **`patch --dry-run 通过`** 或 **`当前源码树已包含该补丁内容`**(后者表示**无需再 apply**)。
手工等价:
```bash
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 **通过**且**不是**「已包含」时执行一次:
```bash
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)
| 步骤 | 命令 | 说明 |
|------|------|------|
| 依赖(通常一次) | `./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-generic`**deb 产出在 `SRC` 的父目录**`kernel-src/` |
并行度可用 **`CONCURRENCY_LEVEL`**(或脚本内 `JOBS`)控制。
```bash
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` 等价思路):
```bash
./scripts/ubuntu-hwe-617-build.sh install
sudo reboot
```
装前可在 `kernel-src/`**`ls -la *.deb`** 核对版本。若本机已装**同 ABI 的官方 signed** 与 **unsigned** 冲突,按 [OPERATION_Install_CustomKernel_Ubuntu_HWE617.md §2.1](docs/kernel-build/OPERATION_Install_CustomKernel_Ubuntu_HWE617.md) 处理后再装。
### `apt purge` 镜像包时出现:`rmdir: 删除 '/lib/modules/6.17.0-20-generic' 失败: 目录非空`
在只执行例如:
```text
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 文档](docs/kernel-build/OPERATION_Install_CustomKernel_Ubuntu_HWE617.md) 核对并卸/换 **`linux-modules-*`** 等同 ABI 包;若接下来要**重装自编 unsigned**,按文档装回 image + modules 即可。
- **自查**`dpkg -l | grep 6.17.0-20` 看还有哪些包仍为 **`ii`**。
---
## 5重启后启用 trace 与 dmesg
进入自编内核且 **`snd_sof` 已加载**SOF 机器)后:
```bash
echo 1 | sudo tee /sys/module/snd_sof/parameters/hw_params_trace
# 播放 HDMI 音频后:
sudo dmesg | grep SOF_TRACE
```
**说明**:只跑官方签名内核**验不出**上述补丁;需装 **unsigned** 自编包并重启后再测。
---
## 6真机运行时预检可选
已加载 `snd_sof` 时,可用:
```bash
./scripts/verify-ubuntu-hwe617-patches-runtime.sh
```
跳过 HDMI `speaker-test`、仅 dry-run + 模块检查:
```bash
RUN_HDMI_TEST=0 ./scripts/verify-ubuntu-hwe617-patches-runtime.sh
```
指定 HDMI 设备(需把变量传给 root
```bash
sudo env HDMI_PLUGHW=plughw:0,3 ./scripts/verify-ubuntu-hwe617-patches-runtime.sh
```
说明见 [patches/ubuntu-hwe-6.17/VERIFY_PATCHES.md](patches/ubuntu-hwe-6.17/VERIFY_PATCHES.md)。
---
## 若仍无声或需排障上下文
见 [CHROMEOS515_UBUNTU617_HDMI_IMPLEMENTATION_AND_GAPS.md](docs/linux-hdmi/CHROMEOS515_UBUNTU617_HDMI_IMPLEMENTATION_AND_GAPS.md) 相关章节。
**桌面 PipeWireKaisa**:若仅 **`stereo-fallback`**、无法选 HDMI 或需热插拔默认输出,见 [OPERATION_PipeWire_Kaisa_HDMI.md](docs/linux-hdmi/OPERATION_PipeWire_Kaisa_HDMI.md) 与仓库内 [`docs/linux-hdmi/wireplumber/50-kaisa-sof-rt5682-hdmi.conf`](docs/linux-hdmi/wireplumber/50-kaisa-sof-rt5682-hdmi.conf)。
---
## 用完
验证结果摘要写入 **WORK_PROGRESS** 后,可清空或覆盖本文件。