更新源码

This commit is contained in:
2026-04-04 18:13:40 +08:00
parent 2e20b8e2c5
commit beed35ec13
31 changed files with 1632 additions and 209 deletions

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Kaisa辅助开启 SOF IPC 观测并采集 dmesg需在真机以 root 运行)
# 详见 docs/OPERATION_Kaisa_SOF_HDMI_Trace.md
# 详见 docs/linux-hdmi/OPERATION_Kaisa_SOF_HDMI_Trace.md
set -euo pipefail

View File

@@ -0,0 +1,30 @@
#!/usr/bin/env bash
# 0001 或用户态基线之后仍无声时:深度 diff / 上游复现 的入口(对应计划 todo「if-still-broken」
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
CH="${CH:-$REPO_ROOT/chromiumos_kernel/v5.15}"
echo "=== 文档(按顺序)==="
echo " $REPO_ROOT/docs/kernel-build/OPERATION_ChromeOS_Kernel_Deep_Diff.md"
echo " $REPO_ROOT/patches/ubuntu-hwe-6.17/STREAM_PCM_PARAMS_CHROME_UBUNTU_NOTES.md"
echo " $REPO_ROOT/patches/ubuntu-hwe-6.17/DIFF_SUMMARY.txt"
echo " $REPO_ROOT/docs/linux-hdmi/UPSTREAM_SOF_Kaisa_HDMI_REPRO.md"
echo ""
echo "=== 导出 ChromeOS vs 6.17 关键文件 diff需两棵完整树==="
if [[ -d "$CH/sound/soc" ]]; then
"$REPO_ROOT/scripts/export-chromeos-ubuntu-sound-file-diffs.sh" || true
else
echo "跳过: 未找到 ChromiumOS 5.15 树 CH=$CH"
echo "克隆说明见: $REPO_ROOT/docs/meta/WORK_PROGRESS.md"
fi
echo ""
UB="$REPO_ROOT/kernel-src/linux-hwe-6.17-6.17.0"
echo "=== 音频子树差异统计(需 CH + $UB/sound/soc==="
if [[ ! -d "$UB/sound/soc" ]]; then
echo "跳过: Ubuntu 树无 sound/soc请准备 kernel-src"
elif [[ ! -d "$CH/sound/soc" ]]; then
echo "跳过: 无 ChromiumOS 树 $CH/sound/soc见 WORK_PROGRESS.md"
else
CH="$CH" UB="$UB" "$REPO_ROOT/scripts/diff-chromeos-ubuntu-sound.sh"
fi

View File

@@ -0,0 +1,23 @@
#!/usr/bin/env bash
# 预检 ChromiumOS 5.15 与 Ubuntu HWE 6.17 两棵树是否存在,存在则运行 diff + export。
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
CH="${CH:-$REPO_ROOT/chromiumos_kernel/v5.15}"
UB="${UB:-$REPO_ROOT/kernel-src/linux-hwe-6.17-6.17.0}"
ok=1
if [[ ! -d "$CH/sound/soc" ]]; then
echo "缺少 ChromiumOS 树: $CH/sound/soc — 见 docs/meta/WORK_PROGRESS.md 第二节"
ok=0
fi
if [[ ! -d "$UB/sound/soc" ]]; then
echo "缺少 Ubuntu 源码树: $UB/sound/soc — 见 kernel-src/README.md"
ok=0
fi
if [[ "$ok" -ne 1 ]]; then
echo "预检失败。补全后重跑: $0"
exit 1
fi
CH="$CH" UB="$UB" "$REPO_ROOT/scripts/diff-chromeos-ubuntu-sound.sh"
CH="$CH" UB="$UB" "$REPO_ROOT/scripts/export-chromeos-ubuntu-sound-file-diffs.sh"
echo "OK."

View File

@@ -0,0 +1,40 @@
#!/usr/bin/env bash
# Dry-run 验证 patches/ubuntu-hwe-6.17/0001 能否打在 HWE 6.17 源码树上(无需完整 debian/)。
# 完整 deb 构建仍须按 kernel-src/README.md apt source 后使用 ubuntu-hwe-617-build.sh。
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
SRC="${SRC:-$REPO_ROOT/kernel-src/linux-hwe-6.17-6.17.0}"
PATCH="${PATCH:-$REPO_ROOT/patches/ubuntu-hwe-6.17/0001-ASoC-SOF-ipc3-pcm-await-DSP-reply-for-FREE-and-trigger.patch}"
if [[ ! -f "$SRC/sound/soc/sof/ipc3-pcm.c" ]]; then
echo "ERROR: 未找到 $SRC/sound/soc/sof/ipc3-pcm.c请设置 SRC= 或按 kernel-src/README.md 准备源码树)" >&2
exit 1
fi
if [[ ! -f "$PATCH" ]]; then
echo "ERROR: 补丁不存在: $PATCH" >&2
exit 1
fi
echo "SRC=$SRC"
echo "PATCH=$PATCH"
if [[ -f "$SRC/debian/rules" ]]; then
echo "OK: 检测到 debian/rules可进行 fakeroot debian/rules binary-generic"
else
echo "注意: 当前树无 debian/(常见于仅检出部分内核目录);补丁校验仍可进行,完整包需 apt source linux-hwe-6.17"
fi
cd "$SRC"
set +e
out="$(patch -p1 --dry-run --forward < "$PATCH" 2>&1)"
st=$?
set -e
if [[ "$st" -eq 0 ]]; then
echo "OK: patch --dry-run 通过(干净树可执行 ubuntu-hwe-617-build.sh apply"
elif echo "$out" | grep -qiE 'previously applied|Reversed \(or previously applied\) patch detected'; then
echo "OK: 当前 ipc3-pcm.c 已包含该补丁内容(无需重复 apply"
else
echo "$out" >&2
echo "ERROR: dry-run 失败,请核对内核版本是否与补丁目标一致" >&2
exit 1
fi