1. 编译 Linux 固件¶
1.1. 编译 Ubuntu 固件¶
本章介绍 Ubuntu 固件的编译流程,推荐在 Ubuntu 20.04 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。
本教程的编译部分适用于 v0.1.0a 以上 SDK 版本
$ readlink -f .repo/manifest.xml
/home/daijh/p/rk3576/.repo/manifests/rk3576/rk3576_linux_release_20240606_v0.1.0a.xml
1.1.1. 准备工作¶
1.1.1.1. 搭建编译环境¶
sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool \
expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \
qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib \
unzip \
device-tree-compiler ncurses-dev \
1.1.2. 编译 SDK¶
1.1.2.1. 编译前配置¶
在 device/rockchip/rk3576/
目录下,有不同板型的配置文件,选择配置文件:
./build.sh firefly_rk3576_aio-3576jd4_ubuntu_defconfig
1.1.2.2. 编译¶
1.1.2.2.1. 全自动编译¶
下载根文件系统:Rootfs,放到 SDK 路径下
7z x Ubuntu[xx.xx]-xxxx_RK3576_vx.x.xx_xxxxxxxx.7z
mkdir prebuilt_rootfs/
mv Ubuntu[xx.xx]-xxxx_RK3576_vx.x.xx_xxxxxxxx.img prebuilt_rootfs/rk3576_ubuntu_rootfs.img
开始编译
./build.sh
生成的完整固件会保存到 output/update/
目录。
1.1.2.2.2. 部分编译¶
编译 u-boot
./build.sh uboot
编译 kernel
./build.sh extboot
编译 recovery
./build.sh recovery
下载根文件系统:Rootfs,放到 SDK 路径下
7z x Ubuntu[xx.xx]-xxxx_RK3576_vx.x.xx_xxxxxxxx.7z
mkdir prebuilt_rootfs/
mv Ubuntu[xx.xx]-xxxx_RK3576_vx.x.xx_xxxxxxxx.img prebuilt_rootfs/rk3576_ubuntu_rootfs.img
打包固件,生成的完整固件会保存到
output/update/
目录。
./build.sh updateimg