1、前言
Com-P6UL是盈鹏飞科技有限公司基于NXP原厂I.MX6UL芯片生产研发的核心板,本文将对CoM-P6UL适配NXP的基于Linux4.1.15版本的kernel板级源码的过程进行介绍。
2、开发环境
目标板:CoM-P6UL(RAM:256MB,Nand Flash:256MB)
主机:Linux ubuntu 4.15.0-70-generic
交叉编译工具链:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf
源码下载链接:http://git.freescale.com/git/
3、官方kernel移植适配
在上面给出的链接中,下载完源码后,可以先通过NXP官方的i.mx6ul evk的评估板配置文件进行编译,检查kernel源码是否能编译通过,后面再添加适配Com-P6UL核心板的文件:
解压kernel源码,并进入到kernel源码根目录:
$ tar -xvzf rel_imx_4.1.15_2.1.0_ga.tar.gz $ cd rel_imx_4.1.15_2.1.0_ga/
接下来,尝试开始编译NXP官方提供的kernel源码:
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- clean $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_mfg_defconfig or $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
在编译Linux内核之前需要先配置Linux内核,每个板子的默认配置文件在下面的目录:
rel_imx_4.1.15_2.1.0_ga/arch/arm/configs
对于NXP官方i.mx6ul芯片的evk评估板的配置文件可以使用imx_v7_mfg_defconfig和imx_v7_defconfig这两个配置文件,其中imx_v7_mfg_defconfig这个默认配置文件编译出来的Linux内核镜像zImage文件支持NXP官方的MfgTool软件,该软件能通过板载的USB OTG接口更新目标板的uboot、kernel和rootfs。
执行make编译命令后,如果在下面的目录中出现zImage镜像文件:
rel_imx_4.1.15_2.1.0_ga/arch/arm/boot
如下所示:
并在下面的目录下,出现NXP官方i.mx6ul芯片的evk评估板的设备树文件:
rel_imx_4.1.15_2.1.0_ga/arch/arm/boot/dts
如下所示:
表示NXP官方的Linux内核源码已经成功编译了。
接下来,需要修改Linux内核源码适配CoM-P6UL核心板,在前面我们编译出来的内核镜像和设备树文件是基于NXP官方的Demo评估板的,因此,需要进一步进行适配,编译出适合我们需要的zImage镜像文件和设备树文件。
4、小结