Ubuntu HWE 6.17:内核补丁目录
当前状态
0001-ASoC-SOF-ipc3-pcm-await-DSP-reply-for-FREE-and-trigger.patch:对齐 ChromiumOS 5.15,对STREAM_PCM_FREE与 trigger 使用sof_ipc_tx_message()+struct sof_ipc_reply,替代sof_ipc_tx_message_no_reply()。0002-ASoC-SOF-ipc3-pcm-dump-STREAM_PCM_PARAMS-fields.patch:诊断用,在sof_ipc3_pcm_hw_params中当SOF_DBG_DUMP_IPC_MESSAGE_PAYLOAD置位时,用spcm_dbg打印STREAM_PCM_PARAMS关键字段;不改变 IPC 载荷或发送时机。历史上曾误试的旧补丁(dpcm_playback、iDispTRIGGER_POST等)已删除,与当前 0002 无关。0003-ASoC-SOF-hda-dai-dev_dbg-hda_link_dma_hw_params.patch:诊断用,在hda_link_dma_hw_params()内、snd_hdac_ext_bus_link_set_stream_id()前增加dev_dbg(link, stream_tag);不改变行为。需dynamic_debug:file sound/soc/sof/intel/hda-dai.c +p。与 0001/0002 无源码重叠,可独立应用。见STREAM_PCM_PARAMS_CHROME_UBUNTU_NOTES.md§6.1。
如何应用新补丁
-
在
kernel-src/linux-hwe-6.17-6.17.0/对齐与运行内核一致的源码树。 -
将补丁存于本目录;建议顺序:先 0001 再 0002;0003 可选且与 0001/0002 独立(仅改
hda-dai.c)。 -
必须通过环境变量指定路径,每次执行一次
apply:export PATCH="$PWD/patches/ubuntu-hwe-6.17/0001-ASoC-SOF-ipc3-pcm-await-DSP-reply-for-FREE-and-trigger.patch" ../scripts/ubuntu-hwe-617-build.sh apply export PATCH="$PWD/patches/ubuntu-hwe-6.17/0002-ASoC-SOF-ipc3-pcm-dump-STREAM_PCM_PARAMS-fields.patch" ../scripts/ubuntu-hwe-617-build.sh apply # 可选:0003(hda-dai dev_dbg) # export PATCH="$PWD/patches/ubuntu-hwe-6.17/0003-ASoC-SOF-hda-dai-dev_dbg-hda_link_dma_hw_params.patch" # ../scripts/ubuntu-hwe-617-build.sh apply
启用 0002 的可读日志
-
snd-sof模块参数sof_debug:SOF_DBG_DUMP_IPC_MESSAGE_PAYLOAD为 bit 11,单独开启时十进制为2048(与其它标志按位或即可组合)。 -
spcm_dbg基于dev_dbg:默认不刷屏;需打开 dynamic debug,例如(路径以本机为准):sudo sh -c 'echo "file ipc3-pcm.c +p" > /sys/kernel/debug/dynamic_debug/control'或使用
debugfs中dynamic_debug的等价写法;再配合dmesg -w观察。
设计补丁前请先完成 ChromeOS 5.15 与 6.17 的对照流程,见 docs/kernel-build/OPERATION_ChromeOS_Kernel_Deep_Diff.md 与 DIFF_SUMMARY.txt。STREAM_PCM_PARAMS / HDMI 专项结论见 STREAM_PCM_PARAMS_CHROME_UBUNTU_NOTES.md。