在编译前需要按照前面的方法始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。
全自动编译包含所有镜像编译,包括:uboot编译、Kernel编译、Recovey编译、文件系统编译、编译完成镜像的更新与打包。
按照前面的方法初始化编译环境后,还需要设置RK_ROOTFS_SYSTEM环境变量,通过设置此变量,可以决定打包哪个文件系统:
打包buildroot文件系统,则设置RK_ROOTFS_SYSTEM为buildroot,如下所示:
$ export RK_ROOTFS_SYSTEM=buildroot
打包Debian文件系统,则设置RK_ROOTFS_SYSTEM为debian,如下所示:
$ export RK_ROOTFS_SYSTEM=debian
打包Ubuntu文件系统,则设置RK_ROOTFS_SYSTEM为ubuntu,如下所示:
$ export RK_ROOTFS_SYSTEM=ubuntu
查看当前终端设置的RK_ROOTFS_SYSTEM环境变量的值,执行命令:
$ echo $RK_ROOTFS_SYSTEM
下面以编译buildroot文件系统为例,使用全自动编译方法进行编译:
配置RK_ROOTFS_SYSTEM环境变量为buildroot,执行命令:
$ export RK_ROOTFS_SYSTEM=buildroot
查看RK_ROOTFS_SYSTEM环境变量是否配置正确,执行命令:
$ echo $RK_ROOTFS_SYSTEM
如下图所示:
可以看到输出为buildroot,说明配置正确。
执行全自动编译脚本,命令如下:
$ ./build.sh
如下图所示:
编译完成,此时终端最下行显示(END),按下“q”键退出,如下图所示:
最终,编译完成,如下图所示:
上图中提示“确认板级的电源域配置”,这里已经配置好,请不要改动,改动错误会导致CPU芯片烧坏。
编译完成后,所有烧写所需要的镜像将都会链接到rockdev目录,可以到rockdev目录下查看,如下图所示:
如需拷贝镜像到Windows参考第4.7节《镜像拷贝》
如需烧写自己编译的镜像请参考第六章《固件烧写》
单独编译
说明:单独编译涉及镜像较多,较为复杂,若不是十分必须建议使用全自动编译,简单、方便。
Uboot编译
在编译前需要按照前面的方法初始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。
进入源码目录(目录需按个人实际路径修改),执行命令:
$ cd ~/dianyu/sail_rk356x_linux_release_v1.3.0_20220620/
如下图所示:
编译uboot,执行命令:
$ ./build.sh uboot
如下图所示:
编译完成如下图所示:
编译后在 u-boot 目录生成两个镜像文件,分别是:
rk356x_spl_loader_v1.13.112.bin(这个文件就是MiniLoaderAll.bin,只是名字不同)
uboot.img
如下图所示:
Kernel编译
在编译内核前需要按照前面的方法初始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。
进入源码目录(目录需按个人实际路径修改),编译kernel,执行命令:
$ ./build.sh kernel
如下图所示:
编译完成如下图所示:
红底字为提示电源域配置,源码中已经配置好,务必不要改动,否则会导致芯片烧坏。
编译后在 kernel 目录生成内核镜像文件:boot.img,如下图所示:
Recovery编译
在编译前需要按照前面的方法初始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。
进入源码目录(目录需按个人实际路径修改),编译Recovery,执行命令:
$ ./build.sh recovery
如下图所示:
编译完成后在 buildroot/output/sail_rk3568_recovery/images 目录生成recovery.img镜像,如下图所示:
文件系统编译
在编译前需要按照前面介绍的方法初始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。
注:在编译完成后进行固件打包的时候,会打包最后一次编译的文件系统,所以这里建议仅编译需要使用的文件系统,不需要的则不编译,否则在最后打包固件时可能会打包成不需要的文件系统。
Buildroot文件系统编译
进入源码目录(目录需按个人实际路径修改),编译Buildroot,执行命令:
$ ./build.sh buildroot
如下图所示:
编译后在 buildroot/output/sail_rk3568/images 目录生成rootfs.ext4镜像。如下图所示:
Debian文件系统编译
按下述方法编译的Debian系统,用户名是:linaro 密码:linaro
进入源码目录(目录需按个人实际路径修改),安装依赖包,执行如下所示命令:
注意,一定要在开发板源码目录下执行下述命令,否则会安装失败
$ sudo apt-get install binfmt-support qemu-user-static live-build
$ sudo dpkg -i debian/ubuntu-build-service/packages/*
$ sudo apt-get install -fy
安装过程如下图所示:
安装完成后,编译Debian,执行命令:
$ ./build.sh debian
如下图所示:
编译过程中会提示输入密码,直接输入即可(密码默认是隐式的)。
编译后在 debian 目录生成 linaro-rootfs.img 镜像。如下图所示: