目录
概述
1 搭建编译环境
2 下载和编译uboot-imx
2.1 下载软件包
2.2 编译代码
3 总结
概述
本文主要讲述如何快速匹配和编译NXP官方uboot-imx。文中总结了生成u-boot文件的整个流程,笔者通过实操的方法,一步步从编译器下载,编译环境配置,到u-boot 的make文件编写的运行,直到生成.bin 和.dtb 文件。笔者没有将u-boot.bin文件下载到开发板上运行,本文主要体验如何使用原汁原味的代码包,来产生想要的文件的流程。
1 搭建编译环境
下载编译器,该编译器的下载地址:
https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/
下载软件包,将其放入到ubuntu中,解压编译器包,解压命令如下:
tar xvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar
解压完成后,可以看见如下文件:
2 下载和编译uboot-imx
2.1 下载软件包
下载nxp官方提供的软件包地址:
https://github.com/nxp-imx/uboot-imx
在ubuntu上,使用git命令下载代码:
git clone https://github.com/nxp-imx/uboot-imx
2.2 编译代码
在目录uboot-imx中创建build.sh文件,文件中编写如下代码,其主要实现功能:
代码第2行: 配置编译器的地址
代码第3行:配置板卡的配置文件
代码第5行:清除之前的编译生成的文件
代码第6行:使能编译器
代码第7行:编译代码
源代码内容为:
#!/bin/sh
COMPILE_PATH=/home/mftang/ctools/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
BOARD_CONFIG=mx6ull_14x14_evk_emmc_defconfig
make ARCH=arm CROSS_COMPILE=${COMPILE_PATH} distclean
make ARCH=arm CROSS_COMPILE=${COMPILE_PATH} ${BOARD_CONFIG}
make ARCH=arm CROSS_COMPILE=${COMPILE_PATH} all -j16
在uboot-imx/目录下,执行如下命令配置和编译u-boot源代码:
/.build.sh
执行命令后,可以看见生成.config 文件,说明此时配置成功
继续编译源代码,会生成一个.bin文件和.dtb设备树文件
3 总结
通过阅读uboot-imx的源代码可的,从https://github.com/nxp-imx/uboot-imx 地址下载的NXP官方源码才是最完整的,笔者比较了野火和正点原子提供的所谓NXP官方源代码文件,里面删减了许多文件,所以按照其开发板文档提供方法移植u-boot,许多文件是找不到的。从本文提供的下载路径去下载的软件包中,完整包含所有代码。
配置相关的文件:
设备树相关的文件: