zephyrrtos.cnZEPHYR RTOS 本土生态工作组
Zephyr RTOS · 国内镜像 · west 工作流

zephyrrtos.cn 项目导入

在国内直连 github.com/zephyrproject-rtos/* 经常慢到无法完成 west update。 这里给出一条命令的做法:把 Zephyr 官方仓库整体重定向到 zephyrrtos.cn 国内镜像, 之后 west init / west update / 手动 git clone 全部走镜像, 命令与官方流程完全一致,不需要改工程文件。

它是怎么工作的

核心只有一条 git 配置:url.<镜像前缀>.insteadOf <官方前缀>

git config --global url."https://www.zephyrrtos.cn:3000/zephyrrtos_china/".insteadOf "https://github.com/zephyrproject-rtos/"

① 透明重定向

git 在访问任何 https://github.com/zephyrproject-rtos/… 时,会自动改写为镜像地址—— 包括你自己敲的 git clone、工程里写死的 URL。

② west 同样生效

west 拉取模块也是调用 git,因此 west init / west update 无需任何额外配置; manifest 里的 remote 保持官方地址即可。

③ 镜像按需同步

镜像侧定期执行 west update 后把 zephyr 与各模块 push --mirror 到 Gitea 组织,模块清单以 west list 为准。

镜像不是公开仓库:组织 zephyrrtos_china 需要账号访问。 先在 zephyrrtos.cn 申请账号(见 如何加入),并在账号里配置公钥访问令牌

从零搭建(Ubuntu / Debian)

也可以直接下载 zephyr_cn_setup.sh 一次跑完(下面就是它的步骤)。

  1. 安装构建依赖 west、CMake、Ninja、devicetree 编译器、Python 开发包等。
    sudo apt install --no-install-recommends git cmake ninja-build gperf \
      ccache dfu-util device-tree-compiler wget python3-dev python3-venv python3-tk \
      xz-utils file make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1
  2. Python 虚拟环境 + west
    python3 -m venv ~/zephyrproject/.venv
    source ~/zephyrproject/.venv/bin/activate
    pip install west
  3. 启用镜像重定向
    git config --global url."https://www.zephyrrtos.cn:3000/zephyrrtos_china/".insteadOf "https://github.com/zephyrproject-rtos/"
    git config --global --get-regexp 'url\..*\.insteadOf'   # 确认已写入
  4. 初始化工作区
    cd ~/zephyrproject
    west init .
    west update          # 走国内镜像,模块会一次性拉齐
  5. 获取工具链 SDK
    git clone https://www.zephyrrtos.cn:3000/zephyrrtos_china/zephyr_sdk
    SDK 体量大,走镜像比直连 GitHub Releases 稳定得多。
  6. 编译第一个样例
    source ~/zephyrproject/.venv/bin/activate
    cd ~/zephyrproject/zephyr
    west build -b <your_board> samples/hello_world
想在远端沙盒里做这套初始化(板子上编译、本地下命令)?见 远端开发沙盒(ROCK 5B+):板子已具备 west / cmake / ninja / git 工具链。

已有工程怎么切到镜像

只想用一次(不动全局)git clone https://www.zephyrrtos.cn:3000/zephyrrtos_china/zephyr.git
只对当前仓库改远端git remote set-url origin https://www.zephyrrtos.cn:3000/zephyrrtos_china/zephyr.git
只对当前工作区生效把重定向命令里的 --global 换成 --local(在工程根目录执行)
恢复官方源git config --global --unset url."https://www.zephyrrtos.cn:3000/zephyrrtos_china/".insteadOf
临时绕过镜像单次命令用 -c url."https://github.com/zephyrproject-rtos/".insteadOf="",或直接写官方地址克隆
凭据不要写进脚本或工程文件。推荐 git credential / SSH key / 访问令牌等方式; 把口令拼进 URL(例如 https://user:password@host/…)会随 git 记录、日志与截图一起泄露。

排错

403 / 401 认证失败镜像需登录:确认账号存在、公钥或令牌已配置;检查 git config --global --get-regexp url 里的地址无误。
仍从 GitHub 拉取确认重定向已写入(--get-regexp),且命令是在配置生效后执行;子模块可能带独立配置。
某个模块 404该模块可能尚未同步到镜像。用 west list 看模块与实际 URL,并把缺失模块反馈给我们。
west update 中断直接重跑即可(git 支持断点续传);必要时 west update --narrow -o=--depth=1 浅克隆加速。
端口与协议镜像地址使用 https://www.zephyrrtos.cn:3000(HTTPS,含 www 与裸域两种写法均可解析)。
问智能体 Zephyr 问题问答 · 直接问智能体