Files
chromebox_10th_audio_driver/docs/meta/WORK_PROGRESS.md
2026-04-04 20:52:05 +08:00

7.2 KiB
Raw Blame History

工作进度与源码获取说明(换机交接)

面向机型:Google KaisaChromebox 10 代);核心问题:Linux HDMI 无声(STREAM_PCM_PARAMS IPC 约 -5Windows 3.5mm 无声;对照:ChromeOS 上 HDMI / 3.5mm 正常


文档导航与 Linux HDMI 阶段

资源 路径
全文档索引(按主题) INDEX.md
Linux HDMI 路线图(分阶段行动、已排除项、成功标准) ../linux-hdmi/Linux_HDMI_Audio_Roadmap.md
项目根 README任务与 L1L4 映射) ../../README.md

协作时:在本文或路线图「五、维护」中注明当前卡在哪一阶段(例如:阶段 2 已装自编内核、阶段 3 待克隆 chromiumos_kernel/v5.15)。


一、当前结论与状态

方向 状态
固件intel-signed vs community 已实验:单独换固件不能恢复 HDMI;可能影响插拔检测,需按 OPERATION 文档回退
拓扑 与 ChromeOS 等效(采集结论见 audio_topology/ANALYSIS_Audio.md
Ubuntu HWE 6.17 补丁 0001FREE/trigger不解决 STREAM_PCM_PARAMS)、0002STREAM_PCM_PARAMS 字段 spcm_dbg 诊断,不改载荷)在 patches/ubuntu-hwe-6.17/STREAM_PCM_PARAMS 对照见 STREAM_PCM_PARAMS_CHROME_UBUNTU_NOTES.md;真机 IPC 载荷观测见 docs/linux-hdmi/OPERATION_Kaisa_SOF_HDMI_Trace.mdaudio_topology/collected/README_TRACE_KAISA.md。上游复现包清单见 docs/linux-hdmi/UPSTREAM_SOF_Kaisa_HDMI_REPRO.md。另见 DIFF_SUMMARY.txtdocs/kernel-build/OPERATION_ChromeOS_Kernel_Deep_Diff.mddocs/linux-hdmi/REANALYSIS_Linux_HDMI_Audio_Kaisa.md
Mainline 5.15kernel.ubuntu.com如 v5.15.201 真机:HDMI 仍无声3.5mm、WiFi 也异常(相对 6.17)。不等于 ChromeOS 5.15不建议作修复主线,应 GRUB 回 6.17 并装全 HWE 模块包
全量内核编译 fakeroot debian/rules binary-generic 已在具备足够磁盘的环境完成kernel-src/ 下产出 linux-image-unsigned-*linux-modules-* 等 deb常见遇阻磁盘空间不足(建议 ≥3550GB);勿在同一源码树混用裸 makedebian/rules(需 make ARCH=x86 mrproper 清根目录后再打包)
Windows 侧 CoolStar / Chrultrabook 成套驱动 与设备管理器排错为主;见 docs/windows/OPERATION_Windows_Audio.md

二、源码一ChromiumOS / ChromeOS 内核对照「HDMI 正常」)

用途:对照 SOF / Intel boards / ACPI match 等与 HDMI 相关的驱动差异(分支示例:release-R144-16503.B-chromeos-5.15)。

官方仓库HTTPS

  • https://chromium.googlesource.com/chromiumos/third_party/kernel

克隆示例(浅克隆 + 指定分支)

mkdir -p /path/to/chromiumos_kernel && cd /path/to/chromiumos_kernel
git clone --depth 1 -b release-R144-16503.B-chromeos-5.15 \
  https://chromium.googlesource.com/chromiumos/third_party/kernel.git v5.15

可选:只检出音频相关目录(减小体积)(在 v5.15 内执行):

cd v5.15
git sparse-checkout init --cone
git sparse-checkout set sound/soc/intel sound/soc/sof include/sound

本仓库内路径(若已存在)chromiumos_kernel/v5.15/(以你机器实际为准)。


三、源码二Ubuntu HWE 6.17 内核(与当前运行内核一致)

用途:与 ChromeOS 5.15 做 diff / 打补丁 / 编译验证(与当前 Ubuntu 包版本一致)。

注意:二进制包名可能是 linux-image-*,但源码包名linux-hwe-6.17不是 linuxapt source linux=6.17... 会失败)。

启用源码仓库Noble 示例):

sudo sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.sources
sudo apt update

查本机内核对应的源码包与版本

dpkg -s "linux-image-$(uname -r)" | grep -E '^Source:|^Version:'
apt-cache showsrc linux-hwe-6.17 | grep -E '^Package:|^Version:' | head

下载源码(把 Version: 换成 apt-cache showsrc 里与当前内核一致的那一行)

mkdir -p /path/to/chromebox_10th_audio_driver/kernel-src && cd /path/to/chromebox_10th_audio_driver/kernel-src
apt source linux-hwe-6.17=6.17.0-19.19~24.04.2

解压得到目录类似:linux-hwe-6.17-6.17.0/,以及 .dsc / .orig.tar.gz / .diff.gz(大文件已被 .gitignore 忽略,不提交仓库;见 kernel-src/README.md)。

编译 generic 包(需足够磁盘与依赖)

sudo apt build-dep linux-hwe-6.17
cd /path/to/chromebox_10th_audio_driver/kernel-src/linux-hwe-6.17-6.17.0
export CONCURRENCY_LEVEL="$(nproc)"
fakeroot debian/rules clean
fakeroot debian/rules binary-generic

仓库内辅助脚本scripts/ubuntu-hwe-617-build.shscripts/ubuntu-hwe-617-deps-packages.txtREADME 中有入口。


四、换机后建议最短路径

  1. 克隆本仓库 chromebox_10th_audio_driver
  2. 按需在本仓库 kernel-src/ 下重新拉取 Ubuntu 源码(用新机器上的 uname -r / dpkg -s / apt-cache showsrc 核对版本号;24.04 上可直接 apt build-dep linux-hwe-6.17)。
  3. 按需重新克隆 ChromiumOS kernel 分支(或从旧机拷贝 chromiumos_kernel/ 目录)。
  4. 阅读:docs/linux-hdmi/Linux_HDMI_Audio_Roadmap.mddocs/INDEX.mdaudio_topology/REPAIR_Plan_Audio.mdaudio_topology/ANALYSIS_Audio.md

五、文档索引

文档 说明
docs/INDEX.md 全文档索引
docs/linux-hdmi/Linux_HDMI_Audio_Roadmap.md Linux HDMI 分阶段路线图
audio_topology/REPAIR_Plan_Audio.md Linux / Windows 修复总览
audio_topology/ANALYSIS_Audio.md 三平台对比与 dmesg 要点
audio_topology/OPERATION_Force_Intel_Signed_Firmware.md Linux SOF 固件与回退
docs/windows/OPERATION_Windows_Audio.md Windows CoolStar / ALC5682
README.md(仓库根) 任务列表与参考链接
docs/linux-hdmi/OPERATION_Kaisa_SOF_HDMI_Trace.md Kaisadynamic_debug + sof_debug=0x800、采集 dmesg
docs/linux-hdmi/SOF_FIRMWARE_TOPO_Kaisa_CHECKLIST.md 固件/tplg 与基线核对
docs/linux-hdmi/UPSTREAM_SOF_Kaisa_HDMI_REPRO.md 上游 issue/邮件复现包与模板


六、ChromeOS 对照计划执行状态(本仓库快照)

  • 预检脚本(两棵树齐全后自动跑 diff + exportscripts/preflight-chromeos-ubuntu-diff.sh
  • 常见阻塞:未克隆 chromiumos_kernel/v5.15/;或仅有部分 kernel-src/linux-hwe-6.17-6.17.0/(缺 debian/ 则无法 binary-generic,需在本机 apt source linux-hwe-6.17=… 拉完整源码包)。
  • 0002诊断0002-*.patch 仅在 sof_debug 含 payload dump 位时打印 STREAM_PCM_PARAMS 字段;行为性新补丁仍不宜无依据大块移植,见 STREAM_PCM_PARAMS_CHROME_UBUNTU_NOTES.md,优先 trace / 上游复现 后再写最小 hunk。

本文档随工作机迁移更新;不修改 .cursor/plans/ 下的计划文件。