IMX6ULL官方linux移植

1.开发环境

  1. gcc: 100ask_imx6ull-sdk\ToolChain\gcc-linaro-6.2.1-2016.11-x86_64_arm-linux- gnueabihf
  2. linux: linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
  3. 主机系统: ubuntu18.04
    gcc可以在百问网提供的bsp包找到,uboot使用的是nxp官方的uboot, 点击下载Linux。

2.编译下载NXP官方Linux

2.1 编译官方Linux

  1. nxp官方提供的linux是用于官方的evk开发板,需要参考官方的代码来移值,解压linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
tar -jxvf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

 
 
 
  1. 修改顶层Makefile,加入ARCHCROSS_COMPILE变量,不然每次编译都需指定,很麻烦,将252,253行注释掉。添加后如下:
ARCH		?= arm
CROSS_COMPILE	?= arm-linux-gnueabihf-

  
  
  
  1. 配置并编译Linux。进入源码根目录,执行:
make distclean
make imx_v7_mfg_defconfig /* 此文件为nxp官方evk板的配置文件,编译完后zImage支持mfg烧写 */
make -j12

编译完后会生成arch/arm/boot/zImagearch/arm/boot/dts/imx6ull-14x14-evk.dtb,这两个文件是我们需要的。编译时间跟机器配置有关,我用的I7-9750,16G内存编译了大概5分钟。make cleanmake distclean的区别:make clean仅仅是清除之前编译的可执行文件及配置文件。而make distclean要清除所有生成的文件。

2.2 通过tftp下载测试官方的Linux

linux在启动后,需要一个根文件系统,可以使用100ASK官方提供的根文件系统,然后使用tftp从ubuntu中下载之前编译好的官方Linux,最后通过bootz来启动Linux。

  1. 先通过100ask提供的100ask_imx6ull_flashing_tool下载整个系统到EMMC中,然后将之前移值好的uboot下载到开发板中,可以使用烧写裸机的方法来烧写u-boot.imx。烧写完成后,启动开发板,串口输出如下:
    在这里插入图片描述
    可以看到开发板没有启动成功,原因是在mmc里面的文件系统识别不了,所以加载不了linux内核和设备树,然后uboot从网络启动,但是没有设置ip地址。
  2. 设置ipaddr,serverip等环境变量,在uboot命令行执行:
setenv ipaddr 192.168.101.6 //开发板 IP 地址
setenv ethaddr 00:04:9f:04:d2:35 //开发板网卡 MAC 地址
setenv gatewayip 192.168.101.1 //开发板默认网关
setenv netmask 255.255.255.0 //开发板子网掩码
setenv serverip 192.168.101.5 //服务器地址,也就是 Ubuntu 地址
saveenv //保存环境变量
  1. 设置好后,连接网线到开发板(开发板网线接在路由器上),ubuntu中设置好tftp服务器,并将刚才编译好的arch/arm/boot/zImagearch/arm/boot/dts/imx6ull-14x14-evk.dtb复制到tftp目录下,然后在uboot中执行:

                
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值