为什么要迁移到另一个系统构建器?

rsdk 是 Radxa 系统构建器的又一次进化。主要目标是为了摆脱 debos,原因如下:

  1. (以前)缺乏 ARM64 支持
  2. 我们使用 pagefile 来解决 dkms 编译失败的问题,这 需要 KVM 可用.
  3. Go 模板有待改进。
  4. 提供的 actions 正在成为限制我们实现预期结果的因素。

除此之外,我们的系统已经发展到了 100 多个存储库,并通过各种 CI/CD 工作流相互连接。从操作的角度来看,我们还需要一个工具来集中管理它们,同时客户还可以使用同样的工具来复制我们的设置,供他们自己使用。

最后,我们想简短地回答一个常见问题“我在哪里可以下载 X 的 SDK”。到目前为止,由于系统设计的复杂性,我们的回答一直是对系统设计的简要说明。我们想做一个更符合客户期望的系统,其中所有相关的 Radxa 源代码只有一个入口。

因此,rsdk 诞生了。

使用 devcontainer 运行 rsdk

Info

This is the preferred method to run rsdk.

请首先按照 Visual Studio Code 的文档进行操作:

  1. 安装 Visual Studio Code
  2. 设置 devcontainer

然后使用 git 克隆该项目:

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

在 Visual Studio Code 中打开项目。项目的右下角上会弹出一个通知,询问你是否要在 devcontainer 中重新打开。点击,然后等待容器设置完成。

常见问题

  1. devcontainer 设置暂停,出现您可能受到 GitHub 的速率限制.消息

    您可能受到 GitHub 的速率限制。请遵循输出中列出的说明。

  2. devcontainer 启动失败。

    请编辑 .devcintainer/devcontainer.json,并调整 runArgs 属性。

使用已发布的 Debian 软件包运行 rsdk

待发布

本地运行 rsdk

Warning

This is not a well supported or tested installation method.

When you have issues, please check the source code for up-to-date runtime dependencies.

We do not answer support questions related to this type of installation.

要本地运行 rsdk,您最好使用 Ubuntu 系统,因为 devcontainer 基于此系统。

请首先在您的系统上安装 devenv

可选择安装 direnv,然后在项目文件夹中运行 direnv allow 来启用它。

然后运行 devenv shell 进入开发 shell。这个 shell 将对您的 PATH 变量进行操作,使开发依赖可用。

如果安装了 direnv,就不必在进入项目目录使用 SDK 时运行上述命令。不过,direnv shell 缺少 starship 集成和 rsdk 自动补全,因为它只保存环境变量。

有一些额外的系统配置和软件包 devenv 目前无法管理。它们主要由 rsdk-setup 中的 install_native_dependency 函数负责。

基本用法

rsdk 自带 bash-completion,可帮助用户使用 CLI。

在终端中输入 rsdk 后,如果没有子命令建议,按两次 Tab 键后,应运行 rsdk shell 进入开发环境。

进入开发环境之后,您可以使用自动补全功能查询支持的命令列表。

Running a command without any argument will display its help text.

从旧工具链迁移

rbuild

rsdk buildrbuild 的替代。它使用相同的参数排序,并支持类似的输入值。

如果没有提供套件或版本参数,rsdk build 将使用 src/share/rsdk/configs/products.json 中定义的值,而不是 bullseyecli

rsdk build 并不支持所有 rbuild 选项。请查看 help 命令以了解更多详情。

.rbuild-config 文件现在由 devenv.local.nix 取代,选项名称也进行了调整。您可以查看 devenv.local.nix.example,了解语法。

rbuild json

该子命令被 src/share/rsdk/configs 下的配置文件取代。

rbuild shrink-image

不再需要这个子命令,因为现在图像缩小不再是选项,而是标准操作。

rbuild write-image

rsdk write-imagerbuild write-image 的替代。它使用相同的参数顺序。

rsdk

rsdk 命令是常用的 CLI 入口。

在不带任何参数的情况下运行时,将运行 rsdk-tui