目录
- 吐槽
- 镜像结构
- NXP官网需要下载哪写东西
- U-BOOT下载
- kernel下载
- 交叉编译器下载
-
- aarch64-poky-linux
- arm-none-eabi
- scfw_tcm.bin
- bl31.bin
- mx8qxc0-ahab-container.img
- u-boot.bin
- imx-mkimage包
- flash.bin
- 整体结构
吐槽
相对于IMX6,IMX8的开发环境搭起来简直要了笔者的老命,必须留一篇总结,不然估计明天就忘了搭建步骤了。。
镜像结构
除了设备树、kernel、根文件系统之外,区别最大的是U-boot
flash.bin相当于imx6的u-boot.imx,需要这么多东西
NXP官网需要下载哪写东西
https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX?tab=In-Depth_Tab
选择一个版本,我的是Linux 4.14.98_2.3.0
这里可以下载到一些文档、部分工具、demo
U-BOOT下载
git clone https://source.codeaurora.org/external/imx/uboot-imx -b rel_imx_4.14.98_2.3.0
从哪里知道的?
上面的链接下载i.MX 8QuadXPlus (C0) MEK包,打开里面的SCR-4.14.98_2.3.0.txt文件
kernel下载
同上
交叉编译器下载
aarch64-poky-linux
这个是代理商给的,因为没用过yocto,所以只能自己安装交叉编译器过日子了。
arm-none-eabi
下载:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
scfw_tcm.bin
下载上面NXP官网链接里面的SCFW Porting Kit
./imx-scfw-porting-kit-1.3.0.bin
同意它的协议
进入scfw_export_mx8qx_b0/
新建一个build脚本:
./build.sh
bl31.bin
同样是上面提到的SCR-4.14.98_2.3.0.txt文件里面有下载地址
git clone https://source.codeaurora.org/external/imx/imx-atf -b rel_imx_4.14.98_2.3.0
使能环境变量,make
报错,莫慌
unset LDFLAGS
然后再make
通过。
mx8qxc0-ahab-container.img
NXP不讲武德,藏这么深
https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-seco-2.5.4.bin
下载,./运行,同意,自动生成。
u-boot.bin
使用aarch64-poky-linux编译uboot
使能环境变量
make imx8qxp_mek_defconfig
make
imx-mkimage包
还是上面的txt文件
git clone https://source.codeaurora.org/external/imx/imx-mkimage -b rel_imx_4.14.98_2.3.0
flash.bin
将上面的四个文件放入imx-mkimage/iMX8QX
在imx-mkimage目录:
make SOC=iMX8QX flash REV=C0
收工
剩下的kernel编译就老样子了,rootfs官方下载的包里也有,问题也不大。
整体结构