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
- Mega:https://mega.nz/file/kjZExAzL#pzw5des1W_rDzTm-P2iLAJ-n9RLYQY-gEVajpm3U_sQ
- 百度网盘:https://pan.baidu.com/s/1bm4IXy7tJ-sBDVdMxehRAQ?pwd=1pty
解压 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
使用 Radxa 维护的 rkwifibt 仓库。
cd external/rkwifibt
git remote add radxa https://github.com/radxa/rkwifibt.git
git fetch radxa
git checkout -b develop remotes/radxa/develop
使用 Radxa 维护的 buildroot 仓库。
cd buildroot
git remote add radxa https://github.com/radxa/buildroot.git
git fetch radxa
git checkout -b rockchip/2024.02 remotes/radxa/rockchip/2024.02
添加wifi模组配置
在构建SDK之前先将wifi相关的配置打开,步骤如下:
启用 AIC8800D80_USB 宏
在SDK的顶层目录执行 make menuconfig,搜索关键字 “aic” 找到supported modules 选项,将模块选择成 AIC8800D80 USB,如下所示

选择完成之后,会将wifi模组的驱动文件编译到rootfs中。
启用 BR2_PACKAGE_RKWIFIBT_AIC8800D80_USB_FIRMWARE 宏
wifi模组想要正常工作,需要加载固件。
在 buildroot/configs/rockchip_rk3588_defconfig文件中 添加 BR2_PACKAGE_RKWIFIBT_AIC8800D80_USB_FIRMWARE=y,如下所示

启用BR2_PACKAGE_RKWIFIBT_AIC8800D80_USB_FIRMWARE后会将wifi固件安装在系统中。
构建 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 电脑下操作。
-
-
烧录 SD 卡
-
我们需要烧录相对应的 RK 格式的完整镜像。
-
RK 格式的完整镜像指使用 Rockchip 基于 Buildroot 发布的一系列 Linux SDK 所编译出的
update.img镜像 -
打开 SDDiskTool 的可执行文件 SD_Firmware_Tool.exe,插入 SD 卡。
注意插入多个存储设备时,请确认好要烧录的 SD 卡,否则将导致其他存储设备被覆盖。
-
可移动磁盘设备选择要烧录的 SD 卡,功能模式选择 SD 启动,升级固件要是 RK 格式的完整镜像,最后点击开始创建烧录镜像。
-
烧录过程请耐心等待,镜像分区很多,如果镜像很大,烧录时间会较长。
-
在烧录时,如果遇到清空 MBR 的问题,需要把 SD 卡磁盘标签类型从 dos 改为 gpt
- Windows
- Linux
-
windows 下使用命令提示符删除所有分区并转换为 gpt
-
按 Win + X,选择 Windows Terminal(管理员) 或 命令提示符(管理员)。
-
输入以下命令并按回车:
-
diskpart
- 然后,输入以下命令来列出所有磁盘:
list disk
- 找到你的 SD 卡(假设它是磁盘 3),输入:
select disk 3
-
(如果你的 SD 卡是其他磁盘号,请相应修改 3 为正确的数字。)
-
清除磁盘上的所有分区:
clean
-
(这将删除 SD 卡上的所有分区和数据。)
-
转换磁盘为 GPT 格式:
convert gpt
- 输入 exit 退出 diskpart 工具。
-
Linux 下用 fdisk 命令将标签格式改为 gpt
- 找到你的 SD 卡(假设它是 /dev/sdb ),输入:
sudo fdisk /dev/sdb
-
输入
p,会显示当前磁盘的标签格式及分区 -
接着输入
g将磁盘转换为 gpt 格式 -
然后输入
wq保存退出即可