1.内核编译
1.1Linux内核编译流程:
1.distclean 清理工程
2.make XXXdefconfig 使用默认配置文件配置工程
3.make -j12 编译
4.make menconfig 配置图形化界面
uboot编译流程也是这样
编译成功后如下:
zImage:存放在:arch/arm/boot/
设备树:存放在:arch/arm/boot/dts
1.2编译单个的dts文件
make arc/arm/boot/dts/imx6ull-14x14-emmc-7-1024x600-c.dtb
在linux内核文件夹中使用。
2.移植
2.1编译linux内核
制作脚本文件(NXP官方linux)
2.2通过tftp下载zImage和dtb文件
tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-evk-emmc.dtb
bootz 80800000 - 83000000
2.3在linux中添加自己的开发板
修改内容包括:
1.imx_alientek_emmc_defconfig
2.imx6ull-14x14-evk.dts
1.复制一份官方的imx_v7_mfg_defconfig 为imx_alientek_emmc_defconfig
1.复制一份官方的imx6ull-14x14-evk.dts 为imx_alientek_emmc.dts
2.修改设备树的Makefile
3.重新制作脚本文件
2.4使能8线emmc
1.先设置bootcmd:把zImage和设备树通过网络下载以及bootz启动
2.设置bootargs,setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
但是emmc驱动有问题,因此进行修改如下:
2.1首先在imx6ull-alientek-emmc.dts中找到usdhc2,修改内容如下,然后进行编译设备树
make dtbs
2.5网络驱动修改
因为Linux驱动是网络调试,所以需要先把网络驱动调好。
1.引脚接口不对,所以删除
2.添加正点原子引脚信息
3.修改正点原子引脚的时钟配置
4。修改正点原子引脚的属性,LAN8720A的PHY地址
5。修改fec_main中的函数
6。配置linux内核,使能LAN8720驱动
7.对LAN8720A进行软复位