主页 > IT业界  > 

编译linuxSDK

编译linuxSDK

参考正点原子

编译环境是 ubuntu20.04。Linux 源码包是rk356x_linux_XXXXXXX.tar.gz。使用命令“ tar -vxf rk356x_linux_XXXXXXX.tar.gz解压,解压后会生成一个 rk356x_linux 文件夹。

1、编译 uboot ./build.sh uboot

编译成功生成

<SDK>/uboot/uboot.img <SDK>/uboot/rk356x_spl_loader_v1.13.112.bin  

2、编译 kernel ./build.sh kernel 编译成功生成<SDK>/kernel/boot.img

3、编译 Recovery

./build.sh recovery 编译成功生成rootfs.img,在目录下buildroot/output/rockchip_rk356x_recovery/images/

4、编译 rootfs

选择buildroot根文件系统

./build.sh buildroot

编译成功生成rootfs.img,在目录下 buildroot/output/rockchip_rk3568/images/  

5、打包镜像

./build.sh firmware 将前面编译的镜像移动到 rockdev 目录下

./build.sh updateimg 将 rockdev 目录下的镜像打包 update.img 镜像

6、SDK 板级配置文件

板级配置文件位于目录<SDK>/device/rockchip/rk356x/。xxx.mk文件就是板级配置文件,.mk 文件其实是一个 sh 脚本文件,通过 export 导出一些环境变量。

7、uboot

U-Boot 源码在<SDK>/u-boot 目录 RK3568 的设备树文件是<U-Boot>/arch/arm/dts/rk3568-evb.dts,该设备树文件包 含了 rk3568.dtsi 和 rk3568-u-boot.dtsi。原生的 U-Boot 只支持 U-Boot 自己的 DTB, RK 平台在原生 U-Boot 基础上增加了 kernel DTB 机制的支持,即 U-Boot 会使用 kernel DTB 去初始化外设。U-Boot 设备树负责初始化存储、调试串口等基础外设;而 kernel 设备树初始化存储、调试 串口之外的外设,譬如 LCD 显示、 千兆网等。执行 U-Boot 代码时先用 U-Boot 的设备树完成存 储、调试串口的初始化操作,然后从存储上加载 kernel 的设备树并转而使用这份设备树继续初 始化其余外设。 MiniLoaderAll.bin由 rk356x_spl_loader_v1.13.112.bin 重命名而来。MiniLoaderAll.bin 由两部分构成: TPL(Tiny Program Loader) + SPL(Secondary Program Loader)构成。TPL 运行在 SRAM 中(片内内存), 由 rk3568 芯片内部所固化的 Maskrom(BootROM)代码引导启动;其作用是负责完成 DRAM 的初始化工作、并启动 SPL; SPL 运行在 DDR, SPL的作用是负责完成系统的 lowlevel 初始化、 完成 uboot.img 的加载和引导工作。

Linux 系统的镜像启动顺序为: Maskrom → MiniLoaderAll.bin → uboot.img → boot.img → rootfs.img 还可以进行细分: Maskrom → TPL(ddr bin) → SPL(miniloader) → Trust(ATF + OP-TEE) → u-boot → kernel → rootfs

U-Boot中, RK3568平台使用的defconfig配置文件为: <U-Boot>/configs/rk3568_defconfig  

标签:

编译linuxSDK由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“编译linuxSDK