8.1 KiB
8.1 KiB
Chromebox 10 代(Kaisa)声音驱动修复方案
Coreboot 刷机后,Linux 与 Windows 的音频问题表现相反,需分平台处理。本文给出目标、原因概要、推荐执行顺序;细节与命令见各专项文档。
对比分析:ANALYSIS_Audio.md
目标状态
| 平台 | HDMI | 3.5mm | 插拔提示 |
|---|---|---|---|
| 目标 | 有 | 有 | 有 |
| Linux(当前典型) | 无 | 有 | 有 |
| Windows(当前典型) | 有 | 无 | 无 |
Linux HDMI:分阶段路线图与未来步骤(主文档):../docs/linux-hdmi/Linux_HDMI_Audio_Roadmap.md
全仓库文档索引:../docs/INDEX.md
下文第一节保留具体操作顺序;与路线图冲突时以路线图为准并更新互链。
一、Linux:修复思路
1.1 问题拆分
| 输出 | 现象 | 主要方向 |
|---|---|---|
| 3.5mm | 一般已有声 | 保持默认输出为模拟/耳机;勿误用打不开的 HDMI 为默认 |
| HDMI | STREAM_PCM_PARAMS IPC 失败(约 -5),SOF + DisplayPort 路径 |
内核 / SOF 驱动 与 6.x 行为;同机 ChromeOS 5.15 正常 |
1.2 推荐顺序(由易到难)
- 确认物理口与 ALSA 设备
aplay -L,用speaker-test -D plughw:卡号,设备号逐个试 HDMI(pcm2/3/4 与物理 HDMI1/2/3 对应关系以实测为准)。 - 以 ChromeOS 5.15 为「有声」参照(优先)
同机 ChromeOS 上 HDMI 已验证正常,对照意义大于通用发行版 Live。开发上:用仓库中的 ChromiumOS 5.15 内核源码(chromiumos_kernel/v5.15,克隆说明见 WORK_PROGRESS.md)与当前 Ubuntu HWE 6.17 源码(如kernel-src/linux-hwe-6.17-6.17.0/,见 kernel-src/README.md)对sound/soc/sof/、sound/soc/intel/boards/等做 diff,定位 iDisp/HDMI 与 SOF IPC 差异;必要时再 git bisect 或向 SOF 上游反馈。详见 ANALYSIS_Audio.md 第六节。 - 固件实验(预期有限)
用 intel-signed 覆盖 community 的
sof-cnl.ri.zst在本项目已实测不能单独恢复 HDMI;若仍要试参数/路径,见 OPERATION_Force_Intel_Signed_Firmware.md,并注意回退清单。 - 自行维护内核(进阶 / 新补丁设计)
对照 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。历史上曾试 0001/0002(已自仓库移除;0002 真机未恢复 HDMI)。新补丁应基于ipc3.c/pcm.c/hda-dai.c等与STREAM_PCM_PARAMS链路的差异再写,见 patches/ubuntu-hwe-6.17/DIFF_SUMMARY.txt、ChromeOS 深度 diff 流程、Linux HDMI 重新分析。
应用补丁与编译(必须显式指定 PATCH;无预置补丁时跳过 apply):
export SRC="/path/to/chromebox_10th_audio_driver/kernel-src/linux-hwe-6.17-6.17.0"
export PATCH="/path/to/your/0001-new.patch" # 有补丁时
/path/to/chromebox_10th_audio_driver/scripts/ubuntu-hwe-617-build.sh apply
/path/to/chromebox_10th_audio_driver/scripts/ubuntu-hwe-617-build.sh deps
/path/to/chromebox_10th_audio_driver/scripts/ubuntu-hwe-617-build.sh build
- 自行维护内核(进阶 / 回归定位)
在 ChromeOS 5.15 参照树与当前发行版内核之间对
sound/soc/sof/与sound/soc/intel/boards/做 git bisect(或跨树人工对比),定位回归后 revert 或打最小补丁;适合能自行编译内核的维护者。 - 上游协同 向 thesofproject/sof / alsa-devel 反馈:机型(Google Kaisa)、内核版本、dmesg 中 IPC 错误、ChromeOS 对照正常。
1.3 若「原来有声现在无声」
见 ANALYSIS_Audio.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 推荐顺序
- 先消除「CoolStar SOF Audio (WDM)」设备管理器中的 Error 按 CoolStar 包内说明与机型(Kaisa/puff)重装或更新;记录错误码便于论坛检索。
- 再安装/更新「Realtek ALC5682 I2S Audio」 使用 CoolStar 提供的 INF,避免第三方「万能 Realtek」覆盖。
- 系统声音 默认播放设备选 耳机/模拟,不要只选显示器音频。
- 仍无声 Chrultrabook 论坛搜机型 + ALC5682 + headphone;插拔提示属进阶(README W4),见专项文档。
2.3 专项文档
全流程步骤:OPERATION_Windows_Audio.md
三、采集与回归对比
- Linux:
collect_linux_audio_topology.sh→collected/ - Windows:
collect_windows_audio_topology.ps1→collected/ - 修复前后各采一份,便于对比 dmesg、设备与驱动版本。
四、文档索引
| 文档 | 内容 |
|---|---|
| ANALYSIS_Audio.md | 三平台对比、原因分析、ChromeOS 对照与第六节排查、第八节无声排查 |
| OPERATION_Force_Intel_Signed_Firmware.md | Linux SOF 固件路径与回退 |
| OPERATION_Windows_Audio.md | Windows CoolStar / ALC5682 |
| README.md | 仓库任务列表 |
| OPERATION_ChromeOS_Kernel_Deep_Diff.md | ChromeOS 与 6.17 音频关键文件 diff / unshallow / git log |
| REANALYSIS_Linux_HDMI_Audio_Kaisa.md | Linux HDMI 重新分析与补丁重设流程 |
| Linux_HDMI_Audio_Roadmap.md | Linux HDMI 路线图(分阶段、已排除项) |
| ../docs/INDEX.md | docs/ 全索引 |
| collect_linux_audio_topology.sh | Linux 拓扑采集;含 SOF/HDMI IPC 基线 dmesg 与 speaker-test 提示 |
| ../scripts/verify-ubuntu-hwe617-0001-patch.sh | 校验 HWE 6.17 上 0001 补丁(dry-run / 已应用检测) |
| ../scripts/linux-hdmi-followup-workflow.sh | 仍无声时:深度 diff / 上游复现文档入口 |
| ../docs/linux-hdmi/UPSTREAM_SOF_Kaisa_HDMI_REPRO.md | 提交 SOF/ALSA 上游所需材料与邮件模板 |