ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

imx6ull之linux内核移植

2021-02-07 12:34:25  阅读:430  来源: 互联网

标签:dtb 内核 linux dts imx imx6ull arm


imx6ull开发环境之系统安装请参考:https://www.cnblogs.com/gxlblogs/p/14382547.html

imx6ull交叉编译工具链安装 请参数:https://www.cnblogs.com/gxlblogs/p/14382831.html

 

开发板:飞凌 OKMX6ULL-S + 7寸电阻屏

交叉编译工具链:gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf

linux内核:linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

 

一、内核编译

  1、将内核通过ftp上传至linux虚拟机,解压:tar -jxvf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

  2、修改Makefile

    cd linux-imx-rel_imx_4.1.15_2.1.0_ga/

    vi Makefile

    跳至252行(252G),复制2行(2yy),在这两行下面粘贴(p),去掉注释#,修改为:

      ARCH ?= arm
      CROSS_COMPILE ?= arm-linux-gnueabihf-

    保存退出

    

  3、试编译

    make distclean

    make imx_v7_mfg_defconfig

    make

    然后我们可以得到zImage和dtb文件,分别在./arch/arm/boot/zImage和./arch/arm/boot/dts/imx6ull-14x14-evk.dtb,这两个文件是我们需要的文件

    

 

  4、移植说明

    这里生成的zImage和dtb是NXP官方evk开发板所适应的,而对于飞凌开发板,dtb文件不够适应,需要修改,而zImage文件经过测试是适应的,后面如果缺少驱动时可通过make menuconfig配置即可;

    这里提一下,为什么不直接用飞凌提供的内核,而非要从官方的移植,是因为使用飞凌提供的内核时,在移植tslib时,运行ts_calibrate时一直挂,怀疑与framebuffer有关,尝试了很多,ts_calibrate也不正常,故决定更换内核,结果问题得到解决;

 

     但飞凌内核中的设备树文件还是和开发板适配的,故可参考其设备树文件进行修改官方内核的设备树;

  5、创建自己的defconfig和dts文件

    cd ./arch/arm/configs/

    cp imx_v7_mfg_defconfig imx6ull_defconfig

    cd ./arch/arm/boot/dts

    cp imx6ull-14x14-evk.dts imx6ull-S-emmc-800x480cr7.dts

    vi ./arch/arm/boot/dts/Makefile 找到dtb-$(CONFIG_SOC_IMX6ULL)在后面追加imx6ull-S-emmc-800x480cr7.dtb

    

    参考飞凌的dts/imx6ull.dtsi,dts/imx6ull-14x14-evk.dts以及dts/imx6ull-S-emmc-800x480cr7.dts修改官方内核的dts/imx6ull.dtsi以及我们刚才复制的dts/imx6ull-S-emmc-800x480cr7.dts文件

    飞凌在dtsi中有少量修改,在dts/imx6ull-14x14-evk.dts中有大量修改,而在dts/imx6ull-S-emmc-800x480cr7.dts中则是引用了dts/imx6ull-14x14-evk.dts文件,而我们直接使用文件对比工具对比,把差异都合并到dts/imx6ull-S-emmc-800x480cr7.dts即可

  6、再次编译

    make distclean

    make imx6ull_defconfig

    make

    好,我们把生成的zImage和dtb文件复制到~/tftp中

    cp arch/arm/boot/zImage ~/tftp/

    cp arch/arm/boot/dts/imx6ull-S-emmc-800x480cr7.dtb ~/tftp/

二、内核测试

  在uboot中配置好nfs启动(这里不详细介绍),将文件系统放于~/rootfs中(这里不详细介绍),给开发板上电,会看到加载zImage和dtb,并且也可以正常挂载nfs,即内核移植成功。

  

 

   

标签:dtb,内核,linux,dts,imx,imx6ull,arm
来源: https://www.cnblogs.com/gxlblogs/p/14384466.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有