本帖最后由 maskmoo 于 2024-7-16 00:02 编辑
如果想对系统部分参数进行调整或者针对特定功能进行二次开发则需要对开发板的出厂源码进行修改和重新编译,本文参照【正点原子】DLIMX93开发板资料(A盘)-基础资料\10、用户手册\06【正点原子】ATK-DLIMX93固件更新参考文档V1.0.pdf 进行编译环境搭建和源码和Uboot的编译实践。
1 安装 ARM 交叉编译工具链
网盘资料路径:IMX93 开发板\开发板光盘 A 盘-基础资料\05、开发工具\01、交叉编译器
fsl-imx-xwayland-glibc-x86_64-imx-image-full-armv8a-imx93evk-toolchain-6.1-mickledore.sh工具链是由基于 NXP 官方 yocto 文件系统生成的交叉编译工具链,主要是用作编译文件系统相关的命令和程序(包含 Qt 和 AI 相关程序)。
修改脚本的权限
chmod u+x fsl-imx-xwayland-glibc-x86_64-imx-image-full-armv8a-imx93evk-toolchain-6.1-mickledore.sh
安装交叉编译工具链
默认安装到/opt/fsl-imx-xwayland/6.1-mickledore 这个目录
./fsl-imx-xwayland-glibc-x86_64-imx-image-full-armv8a-imx93evk-toolchain-6.1-mickledore.sh
安装完的工具链目录大小为 24GB,此工具链包含 Qt、AI 等相关库,需要提前准备好足够的空间。
确认工具链自带的 GCC 版本来验证是否安装成功
source /opt/fsl-imx-xwayland/6.1-mickledore/environment-setup-armv8a-poky-linux
aarch64-poky-linux-gcc --version
2 正点原子出厂系统源码编译及镜像构建
出厂系统源码位于网盘资料路径:IMX93 开发板\开发板光盘 A 盘-基础资料\01、程序源码\01、正点原子 Linux 出厂系统源码
提前在ubuntu20.04 环境中安装以下工具,避免编译时提示缺少工具库
sudo apt-get install make gcc libssl-dev g++ git libncurses5-dev libncursesw5-dev libyaml-dev
sudo apt-get install u-boot-tools python3-pyelftools device-tree-compiler bison flex expect
U-Boot编译
在编译 uboot 前需要安装一下库
sudo apt-get install bison flex
解压源码
tar -xjf uboot-2023.04-v1.0.tar.bz2
使用正点原子提供的一键编译脚本 build.sh。此脚本中包含了使能交叉编译器、编译 U-Boot 源码、打包 flash.bin 等操作。
其中 flash.bin 文件就是可以烧写到开发板的固件,由 imx-mkimage 工具生成,包括u-boot.bin、u-boot-spl.bin、bl31.bin、tee.bin 等文件。
内核源码及模块编译
解压linux-6.1.55-v1.0.tar.bz2 内核源码
tar -xjf linux-6.1.55-v1.0.tar.bz2
其中适配于 ATK-DLIMX93 开发板硬件资源的 Linux内核源码设备树路径为 arch/arm64/boot/dts/freescale/dts/,设备树文件为 imx93-11x11-atk.dts
同样使用一键编译脚本 build.sh进行编译
最终编译生成的内核 Image 镜像和设备树文件,个设备树兼容正点原子的多款屏幕。