NXP 官方提供的 Linux 源码编译后只能在自己的开发板上运行,所以以 NXP 的开发板作为参考,将 Linux
内核移植到 i.MX6UL 终结者开发板上。
76.1.1.1 配置交叉编译工具链
进入内核目录 linux-imx-rel_imx_4.1.15_2.1.0_ga 下,修改 Makefile 文件,在 Makefile 文件中有 ARCH 和
CROSS_COMPILE 这两个的变量,通过这两个变量指定交叉编译工具。修改如下图所示:
修改这两个变量的值后在编译时,就不用在指定编译工具了。
76.1.1.2 配置并编译 Linux 内核
每个板子都有对应的默认的配置文件,在编译 Linux 内核之前,需要根据目标开发板选择不同的配置文
件 , 这 些 配 置 文 件 保 存 在 arch/arm/configs 目 录 下 。 NXP 官 方 的 开 发 板 默 认 对 应 的 配 置 文 件 是
imx_v7_mfg_defconfig。
进入到 Ubuntu 虚拟机的 Linux 源码目录下,执行以下命令来配置内核:
make clean //编译之前先清理一下
make imx_v7_mfg_defconfig //配置 Linux 内核
配置完成后,会生成 .config 文件,如下两个图所示:
配置完成后就可以进行编译了,使用下面的命令:
make -j8 //编译 Linux 内核
编译完成如下图所示:
编译完成后,我们会得到两个文件。
1 Linux 内核镜像文件:arch/arm/boot/zImage。
2 设备树文件:arch/arm/boot/dts/imx6ull-14x14-evk.dtb。
通过编译官方 Linux 源码得到了 Linux 内核和设备树文件。Linux 内核源码的编译流程是一样的,不同开
发板对应的配置文件和设备树文件不一样。因此在移植 Linux 源码到自己的开发板时需要添加对应的内核配
置文件和设备树文件。
更多内容关注:北京迅为