6.3 KiB
Kaisa:SOF 观测日志存放说明
操作规范:../../docs/linux-hdmi/OPERATION_Kaisa_SOF_HDMI_Trace.md。本目录存 jack-Kaisa 在 dynamic_debug + sof_debug=0x800 下的 dmesg,供 STREAM_PCM_PARAMS IPC 载荷分析(非通用说明文)。
症状基线(计划「下一处修改」分叉用,2026-04-05)
| 维度 | 当前仓库内结论 |
|---|---|
| 内核 IPC | dmesg_verify_ipc_minus5_jack-Kaisa_6.17.0-20-generic_20260405_043947.txt:三条 HDMI(plughw:0,2/3/4)均无 ipc tx error / -5,属 IPC 成功路径。 |
| 主诉分叉 | 若 仍偶发 -5:采失败当次 ring,优先 §6.1 link 层 ftrace / 0003 dev_dbg(见 patches/ubuntu-hwe-6.17)。若 IPC 一直成功但显示器无声:优先 PipeWire 默认 sink / 物理口与 PCM 编号,并行 Chrome vs 6.17 sof_rt5682 diff(见 patches/ubuntu-hwe-6.17/reference/diff-u_*boards*.txt)。 |
命名建议
dmesg_sof_TRACE_STREAM_PCM_PARAMS_jack-Kaisa_<uname -r>_<YYYYMMDD_HHMMSS>.txt
示例:dmesg_sof_TRACE_STREAM_PCM_PARAMS_jack-Kaisa_6.17.0-19-generic_20260404_153000.txt
已有基线(无载荷 dump)
dmesg_sof_STREAM_PCM_PARAMS_HDMI3_jack-Kaisa_6.17.0-19-generic_20260404.txt— 含ipc tx error/ pcm4(HDMI3) / stream_tag 1uname_dpkg_linux-image_jack-Kaisa_6.17.0-19_20260404.txt— 自编 unsigned 内核生效证明
2026-04-04:A 步(dynamic_debug + 尚未重启)
- 已写入
/etc/modprobe.d/sof-ipc-payload.conf:options snd_sof sof_debug=0x800(重启后cat /sys/module/snd_sof/parameters/sof_debug应为 2048 方有 IPC 载荷十六进制)。 - 已执行
scripts/collect-kaisa-sof-trace.sh(开启sound/soc/sof/ipc3*.c、hda-pcm、hda-dai的dynamic_debug +p)。 - 采集:
dmesg_sof_TRACE_AB_stepA_6.17.0-20-generic_20260404_210012.txt— 可见ipc tx: 0x60010000、pcm2 (HDMI1)、cmd=1 dai iDisp1 Pin等(重启前sof_debug仍为 0,无Message payloadhex)。
2026-04-04:带 IPC 载荷(sof_debug=2048)
dmesg_sof_TRACE_PAYLOAD_jack-Kaisa_6.17.0-20-generic_20260404_210954.txt— 含Size of payload、Message payload:十六进制;0x60010000(STREAM_PCM_PARAMS)载荷 100 字节;可与struct sof_ipc_pcm_params及STREAM_PCM_PARAMS_CHROME_UBUNTU_NOTES.md对照解码。h3-topology-check-jack-Kaisa_20260404.md— 真机alsatplg -d解码sof-cml-rt5682.tplg.zst:核对 PCM2 / HDMI1 / iDisp1 与 IPCcomp_id=0x14(Story B / H3)。dmesg_storyC_STOCK_6.17.0-20-generic_jack-Kaisa_20260405_025700.txt— Story C 基线:官方 signed6.17.0-20下 SOF/HDMI 相关 dmesg 摘录 + 末尾上下文(试 HDMI 后采集更佳;若需「仅本次播放」可先sudo dmesg -C再播再采)。dmesg_storyC_STOCK_6.17.0-20-generic_jack-Kaisa_20260405_032031.txt—collect-storyc-dmesg.sh clear→save STOCK;若文件几乎无 SOF 行,请 clear 后务必试播 HDMI 再save一次。dmesg_storyC_PATCHED_*_042242.txt/…_042458.txt— 早期 PATCHED;042458 曾因sudo不继承 环境变量仍为 0,2。…_042627.txt(plughw:0,3)、…_042637.txt(0,4)、…_042646.txt(0,2) —auto PATCHED plughw:…全测;dmesg -C后 ring 仍常为空(短测未必打 SOF 到 printk),与 H2 对照见stories-hdmi-kaisa-bp-2026-04-04.md。
2026-04-05:§6.1 link 路径观测(dynamic_debug + plughw:0,3 / 0,4)
-
dmesg_hda_link_trace_jack-Kaisa_6.17.0-20-generic_20260405_043735.txt—dmesg -C→speaker-test -D plughw:0,3(pcm3 / HDMI2)。含STREAM_PCM_PARAMS、ipc tx: 0x60010000与后续0x60040000/0x60050000/0x60030000;未见ipc tx error/ -5(当次为成功路径)。comp_id=0x1a,dai iDisp2 Pin。 -
dmesg_hda_link_trace_jack-Kaisa_6.17.0-20-generic_pcm4_20260405_043745.txt— 同上,plughw:0,4(pcm4 / HDMI3)。comp_id=0x20,同样无 -5。 -
说明:已对
sound/hda/core/ext/controller.c写file … +p;snd_hdac_ext_bus_link_set_stream_id()内无dev_dbg,dmesg 中不会出现该函数名。若要观察 link/stream_id,需 ftrace 或 临时 printk 补丁,见STREAM_PCM_PARAMS_CHROME_UBUNTU_NOTES.md§6.1。 -
dmesg_verify_ipc_minus5_jack-Kaisa_6.17.0-20-generic_20260405_043947.txt—dmesg -C后依次speaker-testplughw:0,2/0,3/0,4(HDMI1/2/3)。无ipc tx error/STREAM_PCM_PARAMS ipc failed/-5;每条 HDMI 在0x60010000后均有后续 IPC,属成功路径(当次会话验证)。 -
hda_link_ftrace_6.17.0-20-generic_20260405_044331.txt—scripts/collect-hda-link-ftrace.sh(plughw:0,3)采集的 function_graph:hda_link_dma_hw_params→snd_hdac_ext_bus_link_set_stream_id→ … →sof_ipc3_pcm_hw_params,用于 §6.1 时序对照。 -
上游投递索引:
UPSTREAM_REPRO_PACKAGE_INDEX.md(与docs/linux-hdmi/UPSTREAM_SOF_Kaisa_HDMI_REPRO.md配套)。
操作步骤
见仓库 docs/linux-hdmi/OPERATION_Kaisa_SOF_HDMI_Trace.md;一键辅助脚本:scripts/collect-kaisa-sof-trace.sh(需 root)。
Story C:「仅本次 HDMI 试播」的 dmesg(先清空再采)
一键(推荐):clear → 自动对 aplay -l 中首个 HDMI 跑 speaker-test(约 10s 超时)→ 保存。
sudo /path/to/repo/scripts/collect-storyc-dmesg.sh auto STOCK
sudo /path/to/repo/scripts/collect-storyc-dmesg.sh auto PATCHED plughw:0,3
分步:
sudo /path/to/repo/scripts/collect-storyc-dmesg.sh clear
# 紧接着用 speaker-test / 播放器只走 HDMI 一次
sudo /path/to/repo/scripts/collect-storyc-dmesg.sh save STOCK
# 换自编 unsigned 内核并重启后,同样流程再执行 save PATCHED
产出:audio_topology/collected/dmesg_storyC_<STOCK|PATCHED>_<uname -r>_<主机>_<时间戳>.txt。
指定 HDMI 设备(避免 sudo 丢环境):sudo …/collect-storyc-dmesg.sh auto PATCHED plughw:0,3(第 3 参数)。勿依赖 VAR=value sudo … 除非 sudo -E。