系统准备
系统:Ubuntu18.04
硬盘空间:尽管官方文档中说只需要40G,但笔者测试发现需要100G左右
在VMware中安装好Ubuntu18.04后,首先需要安装依赖项,在终端执行以下命令:
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 python-pip ncurses-dev pyelftools
为了避免安装出现问题,在执行以上命令前,最好先更新一下apt:
sudo apt-get upgrade
下载Linux SDK
可在firefly官网(https://www.t-firefly.com/doc/download/161.html)进行下载,或由商家提供,我们主要需要两个文件:
第二个压缩文件是SDK,第一个txt文件是用于检查md5校验和的,确保文件没问题。
使用repo提取文件
将.7z文件发送至Ubuntu端,执行
md5sum rk3588_repo_sdk_v0.1.0a.7z
检查计算出的校验和与md5sum.txt中内容是否一致。
解压.7z:
7z x rk3588_repo_sdk_v0.1.0a.7z
会在生成rk3588文件夹,进入该文件夹
使用repo检出文件:
.repo/repo/repo sync -l
.repo/repo/repo start rk3588/firefly --all
检出后的rk3588文件夹内容如下(可能略有不同,我这是执行过编译的文件夹):
SDK更新
下载bundle,将所有文件(一个.7z,一个update.sh脚本)移入rk3588文件夹:
mv bundle/* rk3588/
执行update.sh脚本:
./update.sh
即可完成SDK的更新。
生成.img
- 选择配置文件
进入rk3588/文件夹,执行
./build.sh launch
选择与自己板子匹配的.mk文件。
- 编译u-boot
进入rk3588/文件夹,执行
./build.sh uboot
会在 rk3588/rockdev/ 文件夹下生成 boot.img 以及 uboot.img
- 编译kernel
./build.sh kernel
- 编译recovery
./build.sh recovery
- 编译rootfs
./build.sh rootfs
除了分别编译以上四个部分外,也可以直接执行
./build.sh all
将会自动完成 uboot、kernel、recovery、rootfs 四个部分的编译。
想了解update.sh更详细的用法,可以查看其帮助文档:
./build.sh --help
在 rk3588/ 目录执行
./mkfirmware.sh
会将所有固件打包到 rk3588/rockdev/ 目录下
固件打包
为了方便固件下载,我们可以将以上几个分立固件打包成一个完整的update.img固件。
在 rk3588/tools/linux/Linux_Pack_Firemare/rockdev/ 文件夹下,执行
./mkupdate.sh
会在 rk3588/rockdev/ 文件夹下生成 update.img。或者在 rk3588/tools/linux/Linux_Pack_Firemare/rockdev/Image/ 也可以找到,后者是到前者的一个链接。
至此固件打包就完成了,可以通过下载工具将 update.img 下载到板卡中。
版权归原作者 今朝无言 所有, 如有侵权,请联系我们删除。