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

linux内核imx6,imx6ull之linux内核移植相关推荐

  1. go移植linux内核书名叫啥,Go语言移植Linux内核数据结构hlist

    hlist(哈希链表)可以通过相应的Hash算法,迅速找到相关的链表Head及节点. 在有些应用场景,比Go标准库提供的list(一种双向链表)更合适. 依照list.h中的源码,我实现了一个Go语言 ...

  2. zedboard移植linux内核,zedboard-嵌入式Linux系統移植

    1.在構建好嵌入式開發環境的基礎上進行下一步開發移植工作. 2.編譯U-Boot 首先在線獲取U-Boot源碼,在源碼include/configs/zynq_zed.h中,修改IP地址(CONFIG ...

  3. linux内核中启动页面,Linux内核启动过程分析

    下面给出内核映像完整的启动过程: arch/x86/boot/header.S: --->header第一部分(以前的bootsector.S):  载入bootloader到0x7c00处,设 ...

  4. linux下的系统调用函数到内核函数的追踪

    Original from: http://blog.chinaunix.net/uid-28458801-id-3468966.html 使用的 glibc : glibc-2.17 使用的 lin ...

  5. 编译内核,busybox,dropbear组装linux小系统

    应用程序使用以下软件 busybox提供命令环境 dropbear提供ssh服务实现远程管理. 查看本物理机的硬件,来确认编译内核时选择相应的驱动.硬件信息获取方法: cat /proc/cpuinf ...

  6. linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解-转

    前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式--在一个独立的文件夹通过makefile配合内核源码路径完成 那么如何将驱动直接编译进内核呢? ...

  7. 修改linux编译配置文件,Porting:linux内核编译、配置、修改配置文件、添加.c文件到内核...

    一.linux内核 $:'uname -a $:'uanme -r // 查看linux内核版本,开发板上进入linux后是一样的命令. 早起常常使用的版本:linux 2.6.x 开发板上使用的版本 ...

  8. 【操作系统】Linux内核和Windows系统的内核有什么区别?

    本文内容转载自"拉勾教育"的讲义,更多课程信息请关注拉勾教育.本人在学习之余记记笔记,顺便当当搬运工! 目录 Linux内核和Windows系统的内核有什么区别? 什么是内核? 内 ...

  9. 嵌入式linux内核启动过程,嵌入式Linux:ARM Linux启动流程

    ARM Linux启动流程大致为:bootloader---->kernel---->root filesystem.bootloader 是一上电就拿到cpu 的控制权的,而bootlo ...

最新文章

  1. 贝叶斯思想概述:从贝叶斯定理到贝叶斯网络
  2. C/C++如何检查系统内存泄露与使用情况?
  3. 只能看到部分局域网计算机,为什么局域网中只能看到部分电脑
  4. C# 移动鼠标方法
  5. 神经网络与机器学习 笔记—核方法和径向基函数网络(上)
  6. mfc连接ubuntu mysql数据库_Ubuntu 16.04 Linux系统下使用C++连接mysql数据库
  7. python字符串截取_Python-变量-No3
  8. npm run build 打包 之后怎么用_npm 组件你应该知道的事
  9. Java-类加载器-类运行时结构-。。。。
  10. 用shell脚本一键搭建LNMP环境实战
  11. 运输层--TCP协议(2)
  12. 博客改版日记9.7——内测先锋队总动员
  13. java dns 解析域名解析_JavaWeb(3)DNS域名解析
  14. 硬盘发展史之机械硬盘
  15. 【通讯术语】VoLTE
  16. 侯捷C++->参数传递与返回值
  17. 懒人畅听网,有声小说类目数据采集,多线程速采案例,Python爬虫120例之23例
  18. 银河麒麟和鸿蒙系统,国产银河麒麟操作系统V10发布 兼容300万APP厉害了
  19. random.shuffle
  20. 关于普通表单多文件上传的处理方法

热门文章

  1. vue 组件 全局组件和局部组件component
  2. [转]SQL中的case when then else end用法
  3. SSH框架hibernate无法添加或修改,saveorupdate方法失效
  4. 10-12-顺序表地址排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版...
  5. 如何在合并复制中改变表结构?
  6. ServletContext读取图片
  7. base64 golang 图片_golang基础学习-base64使用
  8. apache mediawiki 安装_MediaWiki初探:安装及使用入门
  9. img 显示base64_用 PySimpleGUI 做程序(7)--显示图片
  10. c语言数组前缀和,关于最大子数组问题