# ChromiumOS 5.15 内核:拉全历史、查提交、与 Ubuntu HWE 6.17 做关键文件 diff 面向:在仓库 [`chromiumos_kernel/v5.15/`](../chromiumos_kernel/v5.15) 对照 **ChromeOS** 与 **`kernel-src/linux-hwe-6.17-6.17.0/`**(Noble 源码树),为 **Kaisa HDMI / `STREAM_PCM_PARAMS`** 相关的新内核补丁做设计输入。 克隆说明与分支名见 [`docs/WORK_PROGRESS.md`](WORK_PROGRESS.md) 第二节。 --- ## 1. 为何要先 unshallow 若使用 `git clone --depth 1`,本地 **`git rev-list --count HEAD` 为 1**,则 **`git log -- sound/...` 几乎看不到 Chrome 的逐条提交**。需要拉长历史后再筛提交。 --- ## 2. 拉全历史(在 `chromiumos_kernel/v5.15` 内) ```bash cd /path/to/chromebox_10th_audio_driver/chromiumos_kernel/v5.15 git fetch --unshallow origin # 若 unshallow 失败,可改为重新克隆(不加 --depth 1),见 WORK_PROGRESS.md ``` 若出现 **`fatal: --unshallow on a complete repository does not make sense`**:说明当前目录**已经不是浅克隆**(完整仓库或已 unshallow 过),**无需再执行** `--unshallow`,直接进入下文用 `git rev-list --count HEAD` 与 `git log` 即可。 完成后确认: ```bash git rev-list --count HEAD ``` 应远大于 1。 --- ## 3. 按路径查看音频相关提交 ```bash cd /path/to/chromebox_10th_audio_driver/chromiumos_kernel/v5.15 git log --oneline -50 -- sound/soc/sof sound/soc/intel include/sound git log --oneline -30 -- drivers/soundwire ``` 可选关键字过滤(依赖提交标题写法): ```bash git log --oneline --grep=sof -- sound/soc/ git log --oneline --grep=hdmi -i -- sound/ ``` ### 输出「好多」时怎么收窄 - **`git fetch --unshallow` 本身会刷大量对象**,属正常;完成后用 `git rev-list --count HEAD` 确认历史已拉长即可。 - **`git log` 默认进 `less`**,上下滚动会像重复同一段;可 **`q`** 退出,或改用: ```bash GIT_PAGER=cat git log --oneline -30 -- sound/soc/sof sound/soc/intel # 或 git --no-pager log --oneline -30 -- sound/soc/sof sound/soc/intel ``` - **只关心 HDMI / SOF / rt5682 / IPC** 等,可缩小条数并加 grep(标题里不一定有 Kaisa,多试几个词): ```bash git --no-pager log --oneline -80 --grep='HDMI\|hdmi\|iDisp\|SOF\|sof\|rt5682\|ipc3\|hda-dai' -i -- sound/soc/sof sound/soc/intel ``` - **真正要对齐 Kaisa**,仍以 **`ipc3.c` / `pcm.c` / `hda-dai.c` 的 `diff -u`** 和(可选)`git log -L` / `git blame` 为主,不必读完几千条 log。 --- ## 4. 与 6.17 对三个优先文件做 `diff -u`(手工) 在**仓库根目录**(两棵树路径按你本机调整): ```bash diff -u \ chromiumos_kernel/v5.15/sound/soc/sof/ipc3.c \ kernel-src/linux-hwe-6.17-6.17.0/sound/soc/sof/ipc3.c | less diff -u \ chromiumos_kernel/v5.15/sound/soc/sof/pcm.c \ kernel-src/linux-hwe-6.17-6.17.0/sound/soc/sof/pcm.c | less diff -u \ chromiumos_kernel/v5.15/sound/soc/sof/intel/hda-dai.c \ kernel-src/linux-hwe-6.17-6.17.0/sound/soc/sof/intel/hda-dai.c | less ``` 重点对照与 **`SOF_IPC_STREAM_PCM_PARAMS`**、`hw_params`、HDMI/HDaudio DAI 相关的逻辑差异。 --- ## 5. 一键导出上述 diff 到本地文件(默认不进 git) ```bash ./scripts/export-chromeos-ubuntu-sound-file-diffs.sh ``` 输出目录:`patches/ubuntu-hwe-6.17/reference/`(已在 [`.gitignore`](../.gitignore) 中忽略,避免大文件误提交)。 可用环境变量覆盖路径: ```bash CH=/path/to/chromiumos_kernel/v5.15 \ UB=/path/to/kernel-src/linux-hwe-6.17-6.17.0 \ OUT=/tmp/kaisa-sound-diff \ ./scripts/export-chromeos-ubuntu-sound-file-diffs.sh ``` --- ## 6. 相关文档与脚本 - 差异规模统计:[`docs/CHROMEOS_vs_UBUNTU617_SOUND_AUTODIFF.md`](CHROMEOS_vs_UBUNTU617_SOUND_AUTODIFF.md),[`scripts/diff-chromeos-ubuntu-sound.sh`](../scripts/diff-chromeos-ubuntu-sound.sh) - 补丁目录说明:[`patches/ubuntu-hwe-6.17/README.md`](../patches/ubuntu-hwe-6.17/README.md) - 摘要:[`patches/ubuntu-hwe-6.17/DIFF_SUMMARY.txt`](../patches/ubuntu-hwe-6.17/DIFF_SUMMARY.txt)