跳到主要内容

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 rk3588_linux6.1_rkr4_sdk.repo.tar
.repo/repo/repo sync -l

添加板子 ROCK 5C 支持

使用 Radxa 维护的 rockchip 仓库。

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

使用 Radxa 维护的 u-boot 仓库。

cd u-boot
git remote add radxa https://github.com/radxa/u-boot.git
git fetch radxa
git checkout -b next-dev-buildroot remotes/radxa/next-dev-buildroot

使用 Radxa 维护的 kernel 仓库。

cd kernel
git remote add radxa https://github.com/radxa/kernel.git
git fetch radxa
git checkout -b linux-6.1-stan-rkr4.1-buildroot remotes/radxa/linux-6.1-stan-rkr4.1-buildroot

构建 SDK

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

./build.sh

然后选中配置文件 rockchip_rk3588s_rock_5c_defconfig

构建完成后,将会在 rockdev/ 目录下生成镜像。系统镜像文件是 update.img

烧录镜像

烧录镜像到 eMMC 中

在 Linux/Mac OS 主机上,使用 upgrade_tool 工具,通过 Type-A 烧录口,将系统镜像 update.img 烧写到 eMMC 中。

upgrade_tool uf update.img

在 Windows 主机上,使用 RKDevTool 工具,通过 Type-A 烧录口,将系统镜像 update.img 烧写到 eMMC 中。

烧录镜像到 MicroSD Card 中

使用 SDDiskTool 将生成的镜像烧录到 MicroSD Card 中。

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 工具。