I.MX6U-系统移植-5-linux内核编译和移植

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)

I.MX6U-系统移植-5-linux内核编译和移植_第1张图片

I.MX6U-系统移植-5-linux内核编译和移植_第2张图片

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

I.MX6U-系统移植-5-linux内核编译和移植_第3张图片

 3.重新制作脚本文件

I.MX6U-系统移植-5-linux内核编译和移植_第4张图片

 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

I.MX6U-系统移植-5-linux内核编译和移植_第5张图片

2.5网络驱动修改

因为Linux驱动是网络调试,所以需要先把网络驱动调好。

1.引脚接口不对,所以删除

I.MX6U-系统移植-5-linux内核编译和移植_第6张图片

2.添加正点原子引脚信息

I.MX6U-系统移植-5-linux内核编译和移植_第7张图片

 3.修改正点原子引脚的时钟配置

I.MX6U-系统移植-5-linux内核编译和移植_第8张图片

 4。修改正点原子引脚的属性,LAN8720A的PHY地址

I.MX6U-系统移植-5-linux内核编译和移植_第9张图片

I.MX6U-系统移植-5-linux内核编译和移植_第10张图片

 5。修改fec_main中的函数

I.MX6U-系统移植-5-linux内核编译和移植_第11张图片

6。配置linux内核,使能LAN8720驱动

I.MX6U-系统移植-5-linux内核编译和移植_第12张图片

 7.对LAN8720A进行软复位

I.MX6U-系统移植-5-linux内核编译和移植_第13张图片

 I.MX6U-系统移植-5-linux内核编译和移植_第14张图片

I.MX6U-系统移植-5-linux内核编译和移植_第15张图片

 

你可能感兴趣的:(imx6u学习,开发语言,linux,运维)