Files
chromebox_10th_audio_driver/patches/ubuntu-hwe-6.17
2026-04-05 13:24:31 +08:00
..
2026-04-05 08:30:54 +08:00
2026-04-05 08:30:54 +08:00
2026-04-05 13:24:31 +08:00
2026-04-05 13:24:31 +08:00

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、iDisp TRIGGER_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_debugfile sound/soc/sof/intel/hda-dai.c +p。与 0001/0002 无源码重叠,可独立应用。见 STREAM_PCM_PARAMS_CHROME_UBUNTU_NOTES.md §6.1。

如何应用新补丁

  1. kernel-src/linux-hwe-6.17-6.17.0/ 对齐与运行内核一致的源码树。

  2. 将补丁存于本目录;建议顺序:先 000100020003 可选且与 0001/0002 独立(仅改 hda-dai.c)。

  3. 必须通过环境变量指定路径,每次执行一次 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
    # 可选0003hda-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
    
  4. 编译见 kernel-src/README.mdscripts/ubuntu-hwe-617-build.sh

预检(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失败原因(上下文不匹配等)。顺序:先 000100020003 独立,可单独 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_debugSOF_DBG_DUMP_IPC_MESSAGE_PAYLOADbit 11,单独开启时十进制为 2048(与其它标志按位或即可组合)。

  • spcm_dbg 基于 dev_dbg:默认不刷屏;需打开 dynamic debug,例如(路径以本机为准):

    sudo sh -c 'echo "file ipc3-pcm.c +p" > /sys/kernel/debug/dynamic_debug/control'
    

    或使用 debugfsdynamic_debug 的等价写法;再配合 dmesg -w 观察。

设计补丁前请先完成 ChromeOS 5.15 与 6.17 的对照流程,见 docs/kernel-build/OPERATION_ChromeOS_Kernel_Deep_Diff.mdDIFF_SUMMARY.txtSTREAM_PCM_PARAMS / HDMI 专项结论见 STREAM_PCM_PARAMS_CHROME_UBUNTU_NOTES.md

验证说明与一键脚本:见 VERIFY_PATCHES.md;真机执行:../../scripts/verify-ubuntu-hwe617-patches-runtime.shRUN_HDMI_TEST=0 可跳过 speaker-test)。