将RK3568用户资料中的源码文件OK3568-linux-source.tar.bz2.a*拷贝到虚拟机~/rk3568目录。
拷贝文件的方式有很多,笔者使用的是共享文件夹方式。
【注】OK3568源码使用分段压缩,每段最大4G,这样方便拷贝,因此有些存储器单文件最大支持4G。
$cat OK3568-linux-source.tar.bz2.a* >OK3568-linux-source.tar.bz2
$tar -xvf OK3568-linux-source.tar.bz2
$cd ~/rk3568/OK3568-linux-source
在device/rockchip/ok3568/目录下,有不同板型的配置文件,选择配置文件:
$./build.shBoardConfig-ok3568.mk
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
【注】编译一段时间后会弹出下图界面,需要选择,提取图中信息,VCCIO4和VCCIO6选择1800000其余选择3300000,使用上下方向按键选择选项,按回车确认选择即可。
编译recovery
【注1】确保作为普通用户编译Buildroot根文件系统,避免不必要的错误;
【注2】如果不想编译文件系统,也可直接从已有的镜像中解压后,将其拷贝到rockdev目录下。
打包固件,生成的完整固件会保存到rockdev/目录。
全自动编译会执行上述编译、打包操作,生成完整固件。
parameter.txt文件中包含了固件的分区信息,以parameter-buildroot.txt为例:
device/rockchip/ok3568/parameter-buildroot-fit.txt
CMDLINE属性是我们关注的地方,以uboot为例,0x00002000@0x00004000(uboot)中0x00004000为uboot分区的起始位置,0x00002000为分区的大小,以此类推。
package-file文件用于打包固件时确定需要的分区镜像和镜像路径,同时它需要与parameter.txt文件保持一致。
tools/linux/Linux_Pack_Firmware/rockdev/rk356x-package-file
bootloader Image/MiniLoaderAll.bin
parameter Image/parameter.txt
#resource Image/resource.img
recovery Image/recovery.img
userdata Image/userdata.img
#要写入backup分区的文件就是自身(update.img)
#SELF 是关键字,表示升级文件(update.img)自身
#在生成升级文件时,不加入SELF文件的内容,但在头部信息中有记录
#update-script update-script
#recover-script recover-script
编译源码可直接得到镜像,但是编译时间太长,有些部分不需要再次编译,只需要从已有的镜像中解包,然后再和新编译的部分组合打包即可,下面是制作方法。
https://github.com/TeeFirefly/rk2918_tools.git
$sudo cp afptool img_unpack img_maker mkkrnlimg/usr/local/bin
将update.img拷贝到Ubuntu中,然后使用命令解包:
$img_unpack update.img img
添加图片注释,不超过 140 字(可选)
解包到img目录,img目录会自动生成,解析成功之后,img目录下会生成loader.img和update.img。
添加图片注释,不超过 140 字(可选)
接下来进入到img目录,使用afptool-unpack 解压:
$afptool -unpack update.img update
文章评论(0条评论)
登录后参与讨论