diff --git a/.gitignore b/.gitignore index 967c57dc9d..b6bcef4e9b 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,6 @@ reference/chromeos-ubuntu-sound-diffs/diff-u_*.txt # dh_* 本地缓存(勿提交;可能含旧路径如 kernel-src) debian/.debhelper/ -# ChromiumOS 内核对照树(体积大,默认不入库;仅保留 README) +# ChromiumOS 内核对照树(体积大:不入主仓库,但请在本机长期保留;说明见 chromiumos_kernel/README.md) chromiumos_kernel/v5.15/ chromiumos_kernel/v5.15-new/ diff --git a/REPO_INDEX.md b/REPO_INDEX.md index b2c2e7db88..94452652c5 100644 --- a/REPO_INDEX.md +++ b/REPO_INDEX.md @@ -7,7 +7,7 @@ | 路径 | 说明 | | ---- | ---- | | [`.cursor/`](./.cursor/) | Cursor 配置,非业务源码 | -| [`chromiumos_kernel/v5.15/`](./chromiumos_kernel/v5.15/) | 可选对照用 ChromiumOS kernel 工作树(**默认不入库**;深克隆/镜像/分支说明见 [`chromiumos_kernel/README.md`](./chromiumos_kernel/README.md)) | +| [`chromiumos_kernel/v5.15/`](./chromiumos_kernel/v5.15/) | 可选对照用 ChromiumOS kernel 工作树(**本机保留、主仓库不入库**;拉取/镜像/备份见 [`chromiumos_kernel/README.md`](./chromiumos_kernel/README.md)) | | [`reference/ucm2/`](./reference/ucm2/) | Kaisa UCM2 overlay;见 [reference/ucm2/README.md](./reference/ucm2/README.md) | | [`reference/chromeos-ubuntu-sound-diffs/`](./reference/chromeos-ubuntu-sound-diffs/) | 可选:本机 `diff -u` 生成物目录(见目录内 README) | | [`_bmad/`](./_bmad/) | BMad 模块;总表 [`_bmad/_config/bmad-help.csv`](./_bmad/_config/bmad-help.csv) | diff --git a/chromiumos_kernel/README.md b/chromiumos_kernel/README.md index ce57dac005..63fbc6d9ef 100644 --- a/chromiumos_kernel/README.md +++ b/chromiumos_kernel/README.md @@ -1,30 +1,66 @@ # chromiumos_kernel -本目录为 **ChromiumOS `third_party/kernel`** 对照树,默认放在 `v5.15/`(目录名可与分支无关;当前克隆的远程分支以该目录内历史为准)。 +这里放 **ChromiumOS `third_party/kernel`** 的对照树。Google 源站体积大、链路不稳,**建议把已经拉下来的目录当作「本机资产」长期保留**,不要指望每次对比都重新全量克隆。 -## 深克隆(完整历史) +## 本仓库里的约定 -在 `v5.15` 目录下执行: +- **`v5.15/`**(以及你自建的 **`v5.15-new/`** 等)在父仓库 **`.gitignore` 里被忽略**:**不会**随 `chromebox_10th_audio_driver` 推到远端,避免主仓库体积爆炸、克隆变慢。 +- 父仓库只跟踪本 **`README.md`**,用来记录怎么拉、怎么备份、怎么换分支。 + +目录名 `v5.15` 只是习惯命名;**实际内核版本以你 `git checkout` 的分支为准**(例如 `chromeos-6.1`)。不确定当年 ChromeOS 测的是哪一版时,保留一棵树 + 在目录里 `git branch -a` / `git describe` 自己看即可。 + +## 第一次怎么拉(相对稳) + +单分支 + 部分克隆(减小单次传输,仍可能遇 500/TLS,需重试): ```bash -git fetch --unshallow origin +cd /path/to/chromebox_10th_audio_driver/chromiumos_kernel +rm -rf v5.15-new +git clone --single-branch --branch chromeos-6.1 \ + --filter=blob:none --no-tags \ + https://chromium.googlesource.com/chromiumos/third_party/kernel.git \ + v5.15-new ``` -若尚未克隆,可直接深克隆(无 `--depth`): +满意后改名为 `v5.15` 或继续用 `v5.15-new`(记得 `.gitignore` 里已有对应目录名时可按需增删)。 + +需要更多历史时,在克隆目录里**小步**加深,比一次 `fetch --unshallow` 容易成功: ```bash -git clone https://chromium.googlesource.com/chromiumos/third_party/kernel.git -cd kernel -git checkout chromeos-6.1 # 或与设备/文档一致的分支 +cd v5.15-new +git config http.version HTTP/1.1 +git config remote.origin.tagOpt --no-tags +git fetch --deepen=500 origin chromeos-6.1 +# 成功可重复执行,或把 500 调大 ``` -网络不稳定时可增大缓冲后重试 `fetch --unshallow`: +仍失败时:换时间段/换出口网络;或在能稳定访问的机器上拉完后 **整目录备份**(见下)。 + +## 想「保留」又不想再从 Google 拉:自建镜像(推荐) + +在 **能稳定访问 googlesource** 的机器上做一次裸镜像,推到你的内网 Git(例如 `192.168.2.22`),以后所有机器只拉内网: ```bash -git config http.postBuffer 2147483648 -git fetch --unshallow origin +git clone --mirror https://chromium.googlesource.com/chromiumos/third_party/kernel.git +cd kernel.git +git remote add internal http://192.168.2.22:3000//chromiumos-kernel-mirror.git +git push --mirror internal ``` -## 与本仓库的关系 +本机日常对照: -父仓库 **不包含** `v5.15/.git`:内核以**普通文件树**提交,便于与你的远端 **一次 `git push` 带上全部源码**。更新内核时可在本机拉取/合并后,再删掉 `v5.15/.git` 重新提交父仓库,或改用子模块/单独镜像(按需)。 +```bash +git clone http://192.168.2.22:3000//chromiumos-kernel-mirror.git chromiumos_kernel/v5.15 +cd chromiumos_kernel/v5.15 +git checkout chromeos-6.1 +``` + +把 `/chromiumos-kernel-mirror.git` 换成你在 Gitea/GitLab 上实际建的**空仓库**地址。 + +## 本机备份(不依赖 Git 服务器) + +整目录打包即可(含 `.git`,换机可继续 `fetch`): + +```bash +tar -C chromiumos_kernel -cJf chromiumos_kernel_backup.tar.xz v5.15 +```