跳到主要内容

Buildroot

环境准备

需要准备一台 Ubuntu 20.04/22.04 x86_64 主机。

也可以使用虚拟主机

  • ubuntu-22.04.5-live-server-amd64 虚拟主机,带 120G 硬盘容量。

安装编译依赖包

sudo apt update
sudo apt install python2 git rsync gcc g++ make device-tree-compiler bc flex bison lz4 libssl-dev libgmp-dev libmpc-dev expect expect-dev file unzip bzip2 fakeroot bsdmainutils
sudo ln -s /bin/python2 /bin/python

获取 Rockchip 原始 SDK

解压 SDK

在 Ubuntu PC 上,使用如下命令解压 SDK。

tar xvf rk356x_linux5.10_rkr8_sdk.repo.tar
.repo/repo/repo sync -l

添加板子 Zero 3E 板子支持

使用 Radxa 维护的 rockchip 仓库。

cd device/rockchip
git remote add radxa https://github.com/radxa/device-rockchip.git
git fetch radxa
git checkout -b rk3566_rk3568-linux-5.10 remotes/radxa/rk3566_rk3568-linux-5.10

使用 Radxa 维护的 kernel 仓库。

cd kernel
git remote add radxa https://github.com/radxa/kernel.git
git fetch radxa
git checkout -b linux-5.10-gen-rkr8-buildroot remotes/radxa/linux-5.10-gen-rkr8-buildroot

构建 SDK

在 SDK 的顶层目录,执行命令:

./build.sh

然后选中配置文件 rockchip_rk3566_radxa_zero_3e_defconfig

构建完成后,将会在 rockdev/ 目录下生成镜像。

使用 SDDiskTool 将生成的镜像烧录到 SDCard 中

SDDiskTool 是瑞芯微官方的 SD 卡烧录工具。

  • 下载 SDDiskTool

    • SDDiskTool 目前只有 Windows 版本,所以请在 Windows 电脑下操作。

    • 下载链接:SDDiskTool_cn_v1.74.zip

  • 烧录 SD 卡

    • 我们需要烧录相对应的 RK 格式的完整镜像。

    • RK 格式的完整镜像指使用 Rockchip 基于 Buildroot 发布的一系列 Linux SDK 所编译出的 update.img 镜像

    • 打开 SDDiskTool 的可执行文件 SD_Firmware_Tool.exe,插入 SD 卡。

      注意

      插入多个存储设备时,请确认好要烧录的 SD 卡,否则将导致其他存储设备被覆盖。

    • 可移动磁盘设备选择要烧录的 SD 卡,功能模式选择 SD 启动,升级固件要是 RK 格式的完整镜像,最后点击开始创建烧录镜像。

      ssdisk tool
    • 烧录过程请耐心等待,镜像分区很多,如果镜像很大,烧录时间会较长。

在烧录时,如果遇到清空 MBR 的问题,需要把 SD 卡磁盘标签类型从 dos 改为 gpt

  • windows 下使用命令提示符删除所有分区并转换为 gpt

    • 按 Win + X,选择 Windows Terminal(管理员) 或 命令提示符(管理员)。

    • 输入以下命令并按回车:

      diskpart
    • 然后,输入以下命令来列出所有磁盘:

      list disk
    • 找到你的 SD 卡(假设它是磁盘 3),输入:

      select disk 1
      • (如果你的 SD 卡是其他磁盘号,请相应修改 3 为正确的数字。)
    • 清除磁盘上的所有分区:

      clean
      • (这将删除 SD 卡上的所有分区和数据。)
    • 转换磁盘为 GPT 格式:

      convert gpt
    • 输入 exit 退出 diskpart 工具。