少于 1 分钟阅读 次阅读

概要:本文介绍了基于 Rockchip 平台的 Linux 固件结构,并详细说明了如何编译 u-boot、内核以及打包完整的 update.img 固件的流程。适用于需要定制和部署 RK 平台系统镜像的开发者。

1. 固件结构

Linux 的固件结构如下所示:

  • update.img 为完整固件,包含了所有其他固件部分。
  • 其他关键固件包括:
    • baseparameter.img:包含显示屏参数(若未包含,则使用设备树中的配置)。
    • resource.img:包含开机 logo。
    • boot.img:包含 DTS 和 Kernel。
    • rootfs.img:包含根文件系统。

可以选择刷写整包 update.img 进行更新,也可以按需单独更新特定的固件文件。


2. 编译打包

2.1 固件目录结构

在 SDK 根目录中的 rockdev 目录下,包含了各类具体的固件文件,如下所示:

➜  rockdev [11/13 15:52:56] git:(QY-3588-RT-XFCE-02) tree
.
├── baseparameter
├── baseparameter-1920
├── boot.img -> /mnt/hdd/RK3588_linux_5.10.160/RK3588_linux_5.10.160/kernel/boot.img
├── MiniLoaderAll.bin -> ../u-boot/rk3588_spl_loader_v1.15.113.bin
├── misc.img -> ../device/rockchip/rockimg/blank-misc.img
├── mnt
├── oem.img
├── parameter.txt -> ../device/rockchip/rk3588/parameter.txt
├── recovery.img -> ../buildroot/output/rockchip_rk3588_recovery/images/recovery.img
├── rootfs
├── rootfs.ext4
├── uboot.img -> ../u-boot/uboot.img
├── Ubuntu_20.04.6_LTS_HW_ext4_20251018062502.7z
├── Ubuntu_20.04.6_LTS_HW_ext4_20251113071941.7z
├── update.img
└── userdata.img

2 directories, 14 files

2.2 编译步骤

编译 u-boot

在 SDK 根目录下执行:

./build.sh uboot

编译内核

在 SDK 根目录下执行:

./build.sh kernel

编译完成后会在 rockdev 目录下生成 boot.img 文件。


2.3 打包 update.img

  1. 编译完成 u-boot 与 kernel。
  2. 将根文件系统镜像复制到 rockdev 目录下,并命名为 rootfs.ext4
  3. 在 SDK 根目录执行以下命令进行打包:
    ./build.sh updateimg
    

注意:根文件系统镜像并不是通过编译生成的,而是在运行系统中进行必要修改后,使用根文件系统打包脚本生成最终的镜像文件。

留下评论