radxa rsdk 1 - 环境初始化过程

link:

Requires

  1. 安装
sudo apt-get update
sudo apt-get install git qemu-user-static binfmt-support
sudo apt-get install npm docker.io
sudo usermod -a -G docker $USER # 设置后重新ssh登陆后生效
  1. 卸载node npm并更新node npm, 使用nvm-cn: 🧊 nvm国内安装工具 进行

  2. 需要确保docker.io可访问,参考Docker/DockerHub 国内镜像源/加速列表 更新docker-repo。

下载工程代码

主代码:

git clone https://githubfast.com/RadxaOS-SDK/rsdk.git

子代码:

更改.gitmodules文件中的地址为国内地址,然后更新子模块

git pull --recurse-submodules

或者如果支持代理:

http_proxy=socks5h://127.0.0.1:6666 git submodule update --init --recursive

创建编译环境

run-rsdk-with-devcontainer-alone

使用run-rsdk-with-devcontainer-alone的方式,不使用vscode的那种(因为远程操作不太方便,实际github action应该也是使用的run-rsdk-with-devcontainer-alone方式)

创建

修改国内地址:

  • 去掉devcontainer.json中的substituters的注释

创建:

cd rsdk
npm install @devcontainers/cli
export PATH="$PWD/src/bin:$PWD/node_modules/.bin:$PATH"
rsdk devcon up # docker build + docker run
rsdk devcon # docker exec ... bash

过程解析

  • rsdk devcon对应调用 src/libexec/rsdk/rsdk-devcon脚本,内容就是执行devcontainer相关命令

  • devcontainer命令读取.devcontainer/devcontainer.json build docker镜像(ubuntu2204+nix,并安装direnv和devenv),并docker run(依次执行 onCreateCommand->updateContentCommand->postCreateCommand)

  • updateContentCommand中执行devenv test,该命令用于builds your developer environment,其会读取工作根目录下的devenv.nix配置文件,安装相应的nix packages等

  • postCreateCommand中调用rsdk-setup脚本,安装其他packages

进入编译容器

rsdk devcon # devcontainer exec --log-level debug --workspace-folder /data/products/radxa-sdk/rsdk/ bash
docker run --sig-proxy=false -a STDOUT -a STDERR --mount type=bind,source=/data/products/radxa-sdk/rsdk,target=/workspaces/rsdk --mount type=volume,src=nix-store-10jhkl6jv0q09rmrfelnekp65fqmqnujcreegkj79dpckr1odt0o,dst=/nix --mount type=bind,src=/data/products/radxa-sdk/rsdk/.devcontainer/.devenv,dst=/workspaces/rsdk/.devenv --mount type=bind,src=/data/products/radxa-sdk/rsdk/.devcontainer/.direnv,dst=/workspaces/rsdk/.direnv -l devcontainer.local_folder=/data/products/radxa-sdk/rsdk -l devcontainer.config_file=/data/products/radxa-sdk/rsdk/.devcontainer/devcontainer.json --ulimit nofile=1024:524288 --cap-add SYS_ADMIN --privileged -v /dev:/dev --entrypoint /bin/sh vsc-rsdk-21c6e73cad31875afa11a752dd4e199e0d77c7cba98bae8c4dbf965aeca71a7a-features-uid -c echo Container started

编译

export PATH="$PWD/src/bin:$PWD/node_modules/.bin:$PATH"
rsdk devcon
/workspaces/rsdk/src/libexec/rsdk/rsdk-build -M https://mirrors.lzu.edu.cn/radxa-apt/ rock-5b
/workspaces/rsdk/src/libexec/rsdk/rsdk-build --no-cache -d -M https://mirrors.lzu.edu.cn/radxa-apt/ rock-5b # --no-cache 类似distclean -d debug
posted @ 2025-06-15 15:02  LiYanbin  阅读(112)  评论(0)    收藏  举报