Ubuntu HWE 6.17:内核补丁目录
仓库级文档体例:../../docs/meta/DOCUMENTATION_STYLE.md。真机验证步骤:VERIFY_PATCHES.md。
当前状态
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
预检(patch --dry-run)
在与运行内核版本一致的 kernel-src/linux-hwe-6.17-*/ 根目录下,对单个补丁文件:
cd /path/to/kernel-src/linux-hwe-6.17-6.17.0
patch -p1 --dry-run < /path/to/repo/patches/ubuntu-hwe-6.17/0001-....patch
输出应可判读 成功、已应用(reversed / already applied) 或 失败原因(上下文不匹配等)。顺序:先 0001 再 0002;0003 独立,可单独 dry-run。
禁止在未解决失败时 patch --force
若 patch -p1 --dry-run 失败,不得使用 patch --force 强行贴补丁。应核对:源码树版本是否与 uname -r / apt source 一致,或改为手工合并 hunk;将失败摘要与下一步记入 docs/meta/WORK_PROGRESS.md。
reference/(无完整树时的文本协作)
目录 reference/ 含关键文件的 unified diff 摘录(与 DIFF_SUMMARY.txt、仓库补丁一致),便于在未检出完整 kernel-src 时做 PR/审查式讨论;完整双树流程见 docs/kernel-build/OPERATION_ChromeOS_Kernel_Deep_Diff.md。
启用 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。
验证说明与一键脚本:见 VERIFY_PATCHES.md;真机执行:../../scripts/verify-ubuntu-hwe617-patches-runtime.sh(RUN_HDMI_TEST=0 可跳过 speaker-test)。