一、SDK下载
在Window上下载好最新的SDK,并把他放拉到虚拟机里的Ubuntu22.04上
二、搭建编译环境
Firefly维基教程上,需要安装编译环境,直接使用 sudo apt-get install 软件名,安装全部软件。
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 \
三、SDK初始化与更新
重点看:README-IMPORTANT.md 这个文件夹的教程
3.1 SDK初始化
下载rk3588_repo_sdk_v0.1.0a.7z、bundle文件夹和md5sum.txt等SDK所在文件夹中的所有文件。将该大小约为12GB的资源移动至虚拟机ubuntu内后,输入以下命令计算MD5码,并对比所给md5sum.txt内的完整文件的MD5码。
md5sum rk3588_repo_sdk_v0.1.0a.7z
确保该文件在下载和传输的过程中未损坏后,解压该文件,并进入解压得到的文件夹rk3588中,使用repo工具 链接Firefly仓以进行SDK的初始化。
cd rk3588
.repo/repo/repo sync -l
.repo/repo/repo start rk3588/firefly --all
文件夹前面是.在ubuntu是看不到的,要用命令查看,如果不是最新版的SDK可能会报错,记得找最新的SDK。
3.2 SDK更新
检查当前SDK的版本,以内核版本为例,进入rk3588中的kernel文件夹,使用"git tag"命令即可查看当前版本号。使用以下命令将先前下载得到的bundle文件夹里的文件拷贝至rk3588文件夹中后,执行更新脚本。
cp bundle/* rk3588/
./update.sh
直接执行脚本可能报错,要用 chmod 777 文件名 给脚本可执行权限。
四、固件编译
4.1 下载Ubuntu根文件系统
参考Firefly提供的Wiki教程进行Ubuntu固件的编译。 由于是交叉编译,在编译固件之前需要下载根文件并放在SDK路径下。
在ITX-3588J官方资料下载页内可以找到下载链接。完成下载后拉到虚拟机ubuntu22.04上,使用以下命令进行解压和重命名
7z x Ubuntu20.04-Gnome_RK3588_v2.11-52a_20220421.img.7z
mkdir ubuntu_rootfs
mv Ubuntu20.04-Gnome_RK3588_v2.11-52a_20220421.img ubuntu_rootfs/rootfs.img
确保进入rk3588目录下,使用以下命令根据板子型号选择配置文件,并直接编译完整的固件。各种型号板子的配置文件都存在于SDK内,比如该配置文件在device/rockchip/rk3588/目录下。
./build.sh itx-3588j-ubuntu.mk
./build.sh
编译生成的固件会部分以链接的形式保存在rockdev目录中,可以通过"ls -l"命令查看链接指向的情况。 完整的Ubuntu固件会在rockdev/pack/中。如果只需要进行部分固件编译,请参考Wiki教程中的"部分编译"部分调整编译命令。
五、烧写固件
编译生成的完整固件会保存到 rockdev/pack/
目录。
把生成的文件拉回Window电脑上用瑞微芯开发工具烧写,或直接在ubuntu下用官方提供的linux软件烧写。