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
构建 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 1
- (如果你的 SD 卡是其他磁盘号,请相应修改 3 为正确的数字。)
-
清除磁盘上的所有分区:
clean
- (这将删除 SD 卡上的所有分区和数据。)
-
转换磁盘为 GPT 格式:
convert gpt
-
输入 exit 退出 diskpart 工具。
-
-
Linux 下用 fdisk 命令将标签格式改为 gpt
-
找到你的 SD 卡(假设它是 /dev/sdb ),输入:
sudo fdisk /dev/sdb
-
输入
p
,会显示当前磁盘的标签格式及分区 -
接着输入
g
将磁盘转换为 gpt 格式 -
然后输入
wq
保存退出即可
-