跳到主要内容

生成 RadxaOS 镜像

安装 rsdk

rsdk 是目前 RadxaOS 的生成环境,其有以下几个特点:

  1. 生成环境容器化,无需额外配置生成依赖
  2. 模块化的生成代码,修改方便
  3. 支持 x86、ARM64 平台上运行

这里简单介绍如何安装 rsdk

方法一:通过 DevContainer 安装(推荐用于开发环境)

  1. 首先,请安装所需的依赖项:
x86 Linux PC
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
  1. 使用以下命令克隆项目并安装 DevContainer:
x86 Linux PC
git clone --recurse-submodules https://github.com/RadxaOS-SDK/rsdk.git
cd rsdk
npm install @devcontainers/cli
export PATH="$PWD/src/bin:$PWD/node_modules/.bin:$PATH"
rsdk devcon up
rsdk devcon

当终端出现以下所示,表明现在处于 rsdk 的 dev 容器 shell 中

x86 Linux PC
██████╗ ███████╗██████╗ ██╗  ██╗
██╔══██╗██╔════╝██╔══██╗██║ ██╔╝
██████╔╝███████╗██║ ██║█████╔╝
██╔══██╗╚════██║██║ ██║██╔═██╗
██║ ██║███████║██████╔╝██║ ██╗
╚═╝ ╚═╝╚══════╝╚═════╝ ╚═╝ ╚═╝
RadxaOS Software Development Kit

Please run `rsdk shell` to enter the full development shell.

direnv: export +AR +AS +CC +CONFIG_SHELL +CXX +DETERMINISTIC_BUILD +DEVENV_DOTFILE +DEVENV_PROFILE +DEVENV_ROOT +DEVENV_RUNTIME
+DEVENV_STATE +DEVENV_TASKS +HOST_PATH +IN_NIX_SHELL +LD +LOCALE_ARCHIVE +NIX_BINTOOLS +NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
+NIX_BUILD_CORES +NIX_CC +NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu +NIX_CFLAGS_COMPILE +NIX_ENFORCE_NO_NATIVE +NIX_HARDENING_ENABLE +NIX_LDFLAGS
+NIX_PKG_CONFIG_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu +NIX_STORE +NM +NODE_PATH +OBJCOPY +OBJDUMP +PKG_CONFIG +PKG_CONFIG_PATH +PYTHONHASHSEED +PYTHONNOUSERSITE
+PYTHONPATH +RANLIB +READELF +SIZE +SOURCE_DATE_EPOCH +STARSHIP_SESSION_KEY +STRINGS +STRIP +\_PYTHON_HOST_PLATFORM +\_PYTHON_SYSCONFIGDATA_NAME +\_\_structuredAttrs +buildInputs
+buildPhase +builder +cmakeFlags +configureFlags +depsBuildBuild +depsBuildBuildPropagated +depsBuildTarget +depsBuildTargetPropagated +depsHostHost +depsHostHostPropagated
+depsTargetTarget +depsTargetTargetPropagated +doCheck +doInstallCheck +dontAddDisableDepTrack +hardeningDisable +mesonFlags +name +nativeBuildInputs +out +outputs +patches
+phases +preferLocalBuild +propagatedBuildInputs +propagatedNativeBuildInputs +shell +shellHook +stdenv +strictDeps +system ~PATH ~XDG_DATA_DIRS

vscode ➜ /workspaces/rsdk (main) $

仓库详细使用,请参考 rsdk 页面。

如需要在 rsdk 基础上进行二次开发,则请继续阅读文档 Build customization

方法二:从源码构建 rsdk deb 包(推荐 Debian 12)

对于 Debian 12 系统,您可以从源码构建 rsdk 的 deb 包,无需使用 DevContainer。构建并安装后即可本地使用 rsdk 命令。

  1. 克隆源码仓库:
x86 Linux PC

git clone --recurse-submodules https://github.com/RadxaOS-SDK/rsdk.git
cd rsdk

如果您的系统不是基于 RadxaOS(或尚未配置 Radxa 软件源),请先添加 Radxa 的签名密钥环并添加软件源以满足构建依赖:

x86 Linux PC

# 安装签名密钥环

keyring="$(mktemp)"
version="$(curl -L https://github.com/radxa-pkg/radxa-archive-keyring/releases/latest/download/VERSION)"
curl -L --output "$keyring" "https://github.com/radxa-pkg/radxa-archive-keyring/releases/latest/download/radxa-archive-keyring_${version}\_all.deb"
sudo dpkg -i "$keyring"
rm -f "$keyring"

# 添加 Radxa APT 软件源并更新包索引

sudo tee /etc/apt/sources.list.d/70-radxa.list <<< "deb [signed-by=/usr/share/keyrings/radxa-archive-keyring.gpg] https://radxa-repo.github.io/bookworm/ bookworm main"
sudo apt-get update

(注:如果您已使用 RadxaOS 或已经配置了相应的软件源,可跳过上述步骤。)

提示

如果你访问 github 困难,可以使用国内的镜像 git 和软件源站点:


git clone https://gitcode.com/radxaos-sdk/rsdk.git
sudo tee /etc/apt/sources.list.d/70-radxa.list <<< "deb [trusted=yes] https://mirrors.sdu.edu.cn/radxa-repo/bookworm/ bookworm main"

  1. 安装构建相关依赖并准备构建环境:
x86 Linux PC

sudo apt-get update
sudo apt-get install devscripts dpkg-dev build-essential
sudo apt build-dep .

  1. 构建 deb 包:
x86 Linux PC

dpkg-buildpackage -us -uc -b

  1. 构建成功后,生成的 deb 包位于上级目录(..),可通过以下命令安装:
x86 Linux PC

sudo apt install ../rsdk\_\*.deb

  1. 安装完成后,使用 rsdk 命令启动 TUI 向导(步骤同方法一)。

使用 rsdk

rsdk 命令是通用的 CLI 入口;当不带任何参数运行时,默认会启动 rsdk-tui 向导。

开始 TUI 向导:在终端中运行 rsdk

  • 在向导中选择要运行的任务,使用 方向键 导航,按 Enter 键确认当前窗口中的操作,按 Esc 退出当前窗口。

  • 在下面的示例中,我们选择 Build system image

x86 Linux PC
┌─────────────────┤ RSDK ├──────────────────┐
│ Please select a task: │
│ │
│ Build system image │
=========
│ About │
│ │
<Ok> <Cancel>
│ │
└───────────────────────────────────────────┘

选择要构建的产品。注意:使用 空格键 来选择产品,被选择的项会在括号内显示 *(仅按 Enter 键不会选择产品):

提示

若没有找到对应产品的型号,请根据自己产品的 SoC 型号选择对应选项。

示例:Radxa CM4 / NX4 和 ROCK 4D 使用瑞芯微 RK3576 SoC,应选择 radxa-rk3576

以 rock-5b 为例:

x86 Linux PC
┌─────────────────┤ RSDK ├──────────────────┐
│ Please select a product: │
│ │
( ) radxa-e25 │
(*) rock-5b-6_1 │
( ) rock-5b │
│ │
<Ok> <Cancel>
│ │
└───────────────────────────────────────────┘

选择 Yes 开始构建,rsdk-tui 会运行相应的 CLI 命令来完成该任务。

在开始实际构建前,向导会询问是否要配置可选的包镜像(Radxa 的 radxa-deb 镜像以及可选的 Debian/Ubuntu 镜像)。如果选择 No,将使用默认镜像并直接进入确认;如果选择 Yes,向导会引导你选择镜像(可以选择默认项)。在镜像选择过程中如果取消,将返回到是否配置镜像的问题。

提示

建议国内用户选择使用镜像源,以提高下载软件包速度。

示例:选择 Radxa APT 镜像:

x86 Linux PC
┌─────────────────┤ RSDK ├──────────────────┐
│ Select Radxa APT mirror (radxa-deb): │
│ │
(*) Use official Radxa repository │
( ) mirrors.aghost.cn │
( ) mirrors.cqu.edu.cn │
( ) mirrors.lzu.edu.cn │
( ) mirrors.hust.edu.cn │
( ) mirrors.sdu.edu.cn │
( ) mirror.nju.edu.cn │
( ) mirror.nyist.edu.cn │
│ │
<Ok> <Cancel>
│ │
└───────────────────────────────────────────┘

然后可以选择可选的 Debian/Ubuntu 镜像(或保留默认):

x86 Linux PC
┌─────────────────┤ RSDK ├──────────────────┐
│ Select Debian/Ubuntu mirror (optional): │
│ │
(*) Use default Debian/Ubuntu mirror │
( ) mirrors.ustc.edu.cn │
( ) mirrors.tuna.tsinghua.edu.cn │
( ) mirrors.cqu.edu.cn │
( ) mirrors.lzu.edu.cn │
( ) mirrors.hust.edu.cn │
( ) mirrors.sdu.edu.cn │
( ) mirror.nju.edu.cn │
( ) mirror.nyist.edu.cn │
│ │
<Ok> <Cancel>
│ │
└───────────────────────────────────────────┘

确认并开始构建:在镜像配置(如果有)完成后,向导会展示所选产品和镜像的汇总(对应于将要执行的最终 CLI 命令),请仔细检查摘要并选择 Yes 开始构建,或选择 No 返回修改:

x86 Linux PC
┌─────────────────┤ RSDK ├──────────────────┐
│ │
│ Are you sure to build with: │
│ │
│ Product: rock-5b-6_1 │
│ Radxa mirror: https://mirrors.example/ │
│ Debian/Ubuntu mirror: https://mirrors/ │
│ Are you sure to build for 'rock-5b-6_1'? │
│ │
│ │
<Yes> <No>
│ │
└───────────────────────────────────────────┘
  • 高级构建请使用 rsdk-build 命令。

编译结束之后会生成一个 out 目录,output.img 即最终生成的镜像:

x86 Linux PC

vscode ➜ /workspaces/rsdk (main) $ ls out/rock-5b_bookworm_kde/
build-image config.yaml debs manifest output.img rootfs.tar seed.tar.xz

仓库详细使用,请参考 rsdk 页面。

如需要在 rsdk 基础上进行二次开发,则请继续阅读文档 Build customization

常见问题

  1. 开发容器设置暂停并提示:You might be rate limited by GitHub。您可能受到 GitHub 的速率限制。请按照输出中列出的说明进行操作。
  2. 启动开发容器失败。请编辑 .devcontainer/devcontainer.json,并调整 runArgs 属性。

    您需要登录 GitHub 才能发表评论。如果您已登录,请忽略此消息。

    Radxa-docs © 2026 by Radxa Computer (Shenzhen) Co.,Ltd. is licensed under CC BY 4.0