1.解压NXP官方移植linux 4.1.15版本
1.在linux/IMX6ULL/linux/目录下新建alienteklinux目录,并将NXP官方移植linux 4.1.15版本拷贝到此目录下,并解压如下图所示:
2.解压完成后重新命名如下图所示:
3.拷贝.vscode配置文件夹到当前目录下,如下图所示:
2.配置linux源码工程
1.进入arch/arm/configs目录下拷贝imx_v7_mfg_defconfig文件,并将其重命名为imx_alientek_emmc_defconfig 如下如所示:
2.进入arch/arm/boot/dts目录下拷贝设备树文件并重命名,如下图所示:
3.打开imx6ull-alientek-emmc.dts文件将本文件引用头文件#include “imx6ull-14x14-evk.dts”改为#include “imx6ull-alientek.dts”,如下图所示:
4..dts是设备树源码文件,编译Linux的时候会将设备树源码文件编译为.dtb文件。imx6ull-alientek-emmc.dts和imx6ull-alientek.dts文件创建好以后还需要修改arch/arm/boot/dts/Makefile文件,找到“dtb-$(CONFIG_SOC_IMX6ULL)”配置项,在此配置项中加入imx6ull-alientek-emmc.dtb和imx6ull-alientek.dtb,如下图所示:
第420行imx6ull-alientek.dtb,这样编译Linux的时候就可以从imx6ull-alientek.dts编译出imx6ull-alientek.dtb文件了。
第421行imx6ull-alientek-emmc.dtb,这样编译Linux的时候就可以从imx6ull-alientek-emmc.dts编译出imx6ull-alientek.dtb文件了。
3.编译Linux源码并测试
1.经过上面的设置在Linux内核里面已经添加了ALIENTEK-ALPHA EMMC版本开发板,接下来使用命令编译测试,编译Linux内核命令如下图所示:
2.编译完成以后就会在目录arch/arm/boot下生成zImage镜像文件。在arch/arm/boot/dts目录下生成imx6ull-alientek-emmc.dtb文件。编译完成进入上面的两个目录查看Linux镜像文件和设备树文件,如下图所示:
3.将生成的Linux镜像文件(zImage)和设备树文件(imx6ull-alientek-emmc.dtb)拷贝到ubuntu服务器tftpboot目录下,如下图所示:
4.将ALIENTEK-ALPHA开发板ENET2网络接口使用网线连接到路由器,重启开发板,在uboot命令模式下使用setenv和saveenv命令设置bootcmd环境变量使用tftp命令下载Linux镜像文件和设备树文件,如下图所示:
5.设置完成后重启开发板,uboot启动后自动从tftboot目录下下载Linux镜像文件和设备树文件,下载完成后启动Linux内核,如下图所示:
由上图可知Linux启动完成后出现上述错误是由于缺少根文件系统,ALIENTEK-ALPHA开发板出厂时已经在EMMC上烧录了系统,根文件系统存储在EMMC的分区2中因此根文件系统存储路径为root=/dev/mmcblk1p2,将uboot中bootargs环境变量设置为如下值:bootargs=‘console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw ’设置完bootargs环境变量后Linux启动后就可以进入到Linux系统里面使用命令进行操作,如下图所示: