# Chromebox 10 代(Kaisa)声音驱动修复方案 Coreboot 刷机后,Linux 与 Windows 的音频问题**表现相反**,需**分平台**处理。本文给出目标、原因概要、推荐执行顺序;细节与命令见各专项文档。 **对比分析**:[ANALYSIS_Audio.md](ANALYSIS_Audio.md) --- ## 目标状态 | 平台 | HDMI | 3.5mm | 插拔提示 | | ------------- | ---- | ----- | ---- | | **目标** | 有 | 有 | 有 | | Linux(当前典型) | 无 | 有 | 有 | | Windows(当前典型) | 有 | 无 | 无 | --- ## 一、Linux:修复思路 ### 1.1 问题拆分 | 输出 | 现象 | 主要方向 | | --------- | ----------------------------------------------------- | -------------------------------------------- | | **3.5mm** | 一般已有声 | 保持默认输出为模拟/耳机;勿误用打不开的 HDMI 为默认 | | **HDMI** | `STREAM_PCM_PARAMS` IPC 失败(约 -5),SOF + DisplayPort 路径 | **内核 / SOF 驱动** 与 6.x 行为;同机 ChromeOS 5.15 正常 | ### 1.2 推荐顺序(由易到难) 1. **确认物理口与 ALSA 设备** `aplay -L`,用 `speaker-test -D plughw:卡号,设备号` 逐个试 HDMI(pcm2/3/4 与物理 HDMI1/2/3 对应关系以实测为准)。 2. **以 ChromeOS 5.15 为「有声」参照(优先)** 同机 **ChromeOS 上 HDMI 已验证正常**,对照意义大于通用发行版 Live。开发上:用仓库中的 **ChromiumOS 5.15 内核源码**(`chromiumos_kernel/v5.15`,克隆说明见 [WORK_PROGRESS.md](../docs/WORK_PROGRESS.md))与当前 **Ubuntu HWE 6.17** 源码(如 `kernel-src/linux-hwe-6.17-6.17.0/`,见 [kernel-src/README.md](../kernel-src/README.md))对 `sound/soc/sof/`、`sound/soc/intel/boards/` 等做 diff,定位 iDisp/HDMI 与 SOF IPC 差异;必要时再 **git bisect** 或向 SOF 上游反馈。详见 [ANALYSIS_Audio.md](ANALYSIS_Audio.md) 第六节。 3. **固件实验(预期有限)** 用 intel-signed 覆盖 community 的 `sof-cnl.ri.zst` **在本项目已实测不能单独恢复 HDMI**;若仍要试参数/路径,见 [OPERATION_Force_Intel_Signed_Firmware.md](OPERATION_Force_Intel_Signed_Firmware.md),并注意回退清单。 4. **自行维护内核(进阶 / 当前实验补丁)** 对照 ChromeOS 5.15 与 Ubuntu HWE 6.17:`set_idisp_hdmi_link()` 在 ChromeOS 使用 `dpcm_playback`,在 6.17 使用 **`playback_only`**——这是上游对 `struct snd_soc_dai_link` 的重命名,**不能**再把 `dpcm_playback` 写回 6.17(会编译失败)。历史说明见 `patches/ubuntu-hwe-6.17/0001-*.patch`(**勿在 6.17 上应用**)。 当前可在 6.17 上应用的实验补丁为 **0002**:在 iDisp HDMI BE 上显式设置 **`link->trigger[] = SND_SOC_DPCM_TRIGGER_POST`**(与部分 Intel 板级驱动一致),用于真机验证能否缓解 `STREAM_PCM_PARAMS ipc failed (-5)`。摘要见 [patches/ubuntu-hwe-6.17/DIFF_SUMMARY.txt](../patches/ubuntu-hwe-6.17/DIFF_SUMMARY.txt)。 应用与编译(在已解压的 `kernel-src/linux-hwe-6.17-6.17.0/` 下;或用脚本,默认 `SRC` 已指向该路径): ```bash cd /path/to/chromebox_10th_audio_driver/kernel-src/linux-hwe-6.17-6.17.0 patch -p1 < /path/to/chromebox_10th_audio_driver/patches/ubuntu-hwe-6.17/0002-ASoC-intel-sof-idisp-hdmi-dpcm-trigger-post.patch # 或:在仓库根目录执行 ./scripts/ubuntu-hwe-617-build.sh apply # 出包(需足够磁盘与 apt build-dep):见 scripts/ubuntu-hwe-617-build.sh deps / build ``` 若 HDMI 打开或 dmesg 中 IPC 错误明显变化,可再收敛为上游可接受的修复或 bisect。 5. **自行维护内核(进阶 / 回归定位)** 在 ChromeOS 5.15 参照树与当前发行版内核之间对 `sound/soc/sof/` 与 `sound/soc/intel/boards/` 做 **git bisect**(或跨树人工对比),定位回归后 revert 或打最小补丁;适合能自行编译内核的维护者。 6. **上游协同** 向 [thesofproject/sof](https://github.com/thesofproject/sof) / alsa-devel 反馈:机型(Google Kaisa)、内核版本、dmesg 中 IPC 错误、ChromeOS 对照正常。 ### 1.3 若「原来有声现在无声」 见 [ANALYSIS_Audio.md](ANALYSIS_Audio.md) **第八节**;固件实验后务必按 [OPERATION_Force_Intel_Signed_Firmware.md](OPERATION_Force_Intel_Signed_Firmware.md) **回退检查清单** 恢复。 --- ## 二、Windows:修复思路 ### 2.1 问题拆分 | 输出 | 现象 | 主要方向 | | --------- | --------------------------------------------------- | --------------------------------------------------- | | **HDMI** | 通常正常(英特尔显示器音频) | 一般无需改动 | | **3.5mm** | Realtek ALC5682 I2S 显示 OK 但无声;CoolStar SOF 常为 Error | **CoolStar / Chrultrabook 成套驱动**,非桌面机通用 Realtek 安装包 | ### 2.2 推荐顺序 1. **先消除「CoolStar SOF Audio (WDM)」设备管理器中的 Error** 按 CoolStar 包内说明与机型(Kaisa/puff)重装或更新;记录错误码便于论坛检索。 2. **再安装/更新「Realtek ALC5682 I2S Audio」** 使用 CoolStar 提供的 INF,避免第三方「万能 Realtek」覆盖。 3. **系统声音** 默认播放设备选 **耳机/模拟**,不要只选显示器音频。 4. **仍无声** Chrultrabook 论坛搜机型 + ALC5682 + headphone;插拔提示属进阶(README W4),见专项文档。 ### 2.3 专项文档 全流程步骤:[OPERATION_Windows_Audio.md](OPERATION_Windows_Audio.md) --- ## 三、采集与回归对比 - **Linux**:`collect_linux_audio_topology.sh` → `collected/` - **Windows**:`collect_windows_audio_topology.ps1` → `collected/` - 修复前后各采一份,便于对比 dmesg、设备与驱动版本。 --- ## 四、文档索引 | 文档 | 内容 | | ------------------------------------------------------------------------------------ | -------------------------- | | [ANALYSIS_Audio.md](ANALYSIS_Audio.md) | 三平台对比、原因分析、ChromeOS 对照与第六节排查、第八节无声排查 | | [OPERATION_Force_Intel_Signed_Firmware.md](OPERATION_Force_Intel_Signed_Firmware.md) | Linux SOF 固件路径与回退 | | [OPERATION_Windows_Audio.md](OPERATION_Windows_Audio.md) | Windows CoolStar / ALC5682 | | [README.md](../README.md) | 仓库任务列表 |