如何将自己的linux板卡信息添加到linux内核呢?

本章,我也是通过修改第三方半导体厂商开发板提供的 Linux BSP 包移植到我们自己的平台上。我选择的是nxp厂商官方的evk开发板,使用他们官方的内核修改为自己板卡的内核。

添加开发板默认配置文件

在编译linux内核之前,也要像编译uboot一样,需要先用配置文件设置好参数,这里我选择复制imx_v7_mfg_defconfig文件,因为通过这个文件配置出来的内核可以使用nxp提供的一个mfgtool工具进行烧录下载,非常方便。
将 目 录 下 的 imx_v7_mfg_defconfig 重 新 复 制 一 份 , 命 名 为imx_myboard_emmc_defconfig

之后就可以通过命令:make imx_myboard_emmc_defconfig来配置我们自己板卡对应的linux内核了。

添加开发板对应的设备树文件

进入目录 arch/arm/boot/dts 中,复制一份 imx6ull-14x14-evk.dts,然后将其重命名为 imx6ull-myboard-emmc.dts

dts 是设备树源码文件,编译 Linux 的时候会将其编译为.dtb 文件。imx6ull-myboard-emmc.dts创 建 好 以 后 我 们 还 需 要 修 改 文 件 arch/arm/boot/dts/Makefile , 找 到 “ dtb-$(CONFIG_SOC_IMX6ULL)”配置项,在此配置项中加入“imx6ull-myboard-emmc.dtb”

这样编译 Linux 的时候就可以从 imx6ull-myboard_emmc.dts 编译出 imx6ull-alientek-emmc.dtb 文件了。

编译测试

接 下 接 编 译 测 试 一 下 , 我 们 可 以 创 建 一 个 编 译 脚 本 ,imx6ull_myboard_emmc.sh:

四个步骤分别为:清理工程、配置linux内核、图形化配置linux内核、编译。
编译完成以后就会在目录 arch/arm/boot 下生成 zImage 镜像文件。在 arch/arm/boot/dts 目录下生成 imx6ull-myboard-emmc.dtb 文件。这两个就是我们需要烧录进开发板的linux镜像以及设备树文件了。

移植Linux内核的基本步骤

关于 Linux 内核的移植就讲解到这里,简单总结一下移植步骤:
①、在 Linux 内核中查找可以参考的板子,一般都是半导体厂商自己做的开发板。
②、编译出参考板子对应的 zImage 和.dtb 文件。
③、使用参考板子的 zImage 文件和.dtb 文件在我们所使用的板子上启动 Linux 内核,看能否启动。
④、如果能启动的话就万事大吉,如果不能启动那就悲剧了,需要调试 Linux 内核。不过一般都会参考半导体官方的开发板设计自己的硬件,所以大部分情况下都会启动起来。启动Linux 内核用到的外设不多,一般就 DRAM(Uboot 都初始化好的)和串口。作为终端使用的串口一般都会参考半导体厂商的 Demo 板。
⑤、修改相应的驱动,像 NAND Flash、 EMMC、 SD 卡等驱动官方的 Linux 内核都是已经提供好了,基本不会出问题。重点是网络驱动,因为 Linux 驱动开发一般都要通过网络调试代码,所以一定要确保网络驱动工作正常。如果是处理器内部 MAC+外部 PHY 这种网络方案的话,一般网络驱动都很好处理,因为在 Linux 内核中是有外部 PHY 通用驱动的。只要设置好复位引脚、 PHY 地址信息基本上都可以驱动起来。
⑥、 Linux 内核启动以后需要根文件系统

嵌入式linux 内核移植篇相关推荐

  1. 嵌入式linux内核移植

    获取linux内核 移植linux内核首先我们需要先获内核源码,可以从linux官网下载:https://www.kernel.org,但是一般做法是 根据cpu类型从它们的半导体厂商网站获取,因为半 ...

  2. 嵌入式Linux内核移植相关代码分析(转)

    本文通过整理之前研发的一个项目(ARM7TDMI +uCLinux),分析内核启动过程及需要修改的文件,以供内核移植者参考.整理过程中也同时参考了众多网友的帖子,在此谢过.由于整理过程匆忙,难免 错误 ...

  3. 基于龙芯 2K1000 的嵌入式 Linux 系统移植和驱动程序设计(二)

    第 3 章 嵌入式软件系统移植 本课题中嵌入式系统正常工作的前提是嵌入式软件系统完整且能正常工作, 以便为之后的软件开发提供一个能够正常工作的平台.引导程序 PMON 需要完成 内核引导,嵌入式 Li ...

  4. linux裁剪内核和移植,嵌入式Linux内核裁剪及移植的研究与实现

    摘要: 嵌入式操作系统是嵌入式系统的软件核心,它管理系统中所有的软件和硬件资源,并且满足嵌入式系统的专用性和可裁剪性.嵌入式Linux以其开源,可裁剪以及模块化设计等特点,吸引了国内外众多研发人员的青 ...

  5. ARM在嵌入式linux内核裁剪与移植的应用

    微处理器用一片或少数几片大规模集成电路组成的中央处理器.这些电路执行控制部件和算术逻辑部件的功能.微处理器与传统的中央处理器相比,具有体积小,重量轻和容易模块化等优点.微处理器的基本组成部分有:寄存器 ...

  6. 基于ARM的嵌入式linux 内核的裁剪与移植

    0 引言     微处理器的产生为价格低廉.结构小巧的CPU和外设的连 接提供了稳定可靠的硬件架构,这样,限制嵌入式系统发展的瓶颈就突出表现在了软件方面.尽管从八十年代末开始,已经陆续出现了一些嵌入式 ...

  7. 嵌入式Linux内核和文件系统,在IXP435上移植嵌入式Linux内核和根文件系统

    简要介绍如何在IXP435上移植嵌入式Linux内核和根文件系统 1.安装交叉编译工具 为什么要先安装交叉编译工具?由于我们的Linux操作系统是安装在嵌入式处理器平台上的,需要在主机上编译出开发板需 ...

  8. 【正点原子Linux连载】第三十七章 Linux内核移植 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  9. Linux内核移植和根文件系统制作(详细步骤精讲)

    第一章移植内核 1.1 Linux内核基础知识 1.1.1 Linux版本 1.1.2 什么是标准内核 1.1.3 Linux操作系统的分类 1.1.4 linux内核的选择 1.2 Linux内核启 ...

  10. uboot和Linux内核移植

    这篇文章是一个读者昨晚发给我的,文章很长,里面的细节也比较多,但是微信公众号只能发 50000 字的文章,如果想阅读全文. 请发送「 uboot和Linux内核移植 」到公众号后台获取下载链接. 这篇 ...

最新文章

  1. 观点 | 医疗AI:新瓶装旧酒VS新瓶装新酒?——道彤投资创始合伙人孙琦
  2. Oracle执行计划相关(待补充)
  3. 01-VMware-workstation14安装
  4. pytorch dataset_【小白学PyTorch】16.TF2读取图片的方法
  5. 68 cookie在登录中的作用
  6. excel文件导入hive乱码_将excel中的数据导入hive
  7. java获取文件后缀名(正则表达式)+文件名
  8. pyside qt for python 在ubuntu下构建依赖
  9. linux下sybase数据库安装教程,Unix下Sybase数据库的安装说明及基本操作
  10. 已解决:不小心卸载pip后(重新安装pip的两种方式)
  11. linux设置双屏拼接_双屏、3屏拼接——A卡、N卡——Windows、Linux
  12. ISO 3166-1标准国家代码表
  13. ios下input框 数字键盘问题
  14. codeforces884D(大概是构造,优先队列)
  15. 计算机编程 高斯消元,高斯-若尔当消元法
  16. python 监控键盘输入_python 监控键盘输入
  17. 中创生日会 | 烟火向星辰,所愿皆成真
  18. LAMP(CentOS)环境详细配置步骤
  19. 帮用户解决以往消费中的例如信息不透明、使用不便捷、无法按照服务质量付费等痛点(转)...
  20. 游戏中常见的漏洞和预防措施

热门文章

  1. 万稞pw80线切割编程软件_数控编程软件(CAM)大盘点,你选用的哪种?
  2. 一批工业机械网站交换友情链接
  3. 友勤签约中芝软件系统(上海)有限公司Oracle Crystal Ball Suite软件项目
  4. sql注入之——sqlmap教程
  5. 使用scala使用fastjson将map转json报错
  6. c语言学生管理系统下载,学生管理系统(C语言)
  7. Python-基础学习笔记
  8. 微信小程序代码最大限制2M的解决方案
  9. 什么是java 前端_为什么很多人选择前端而不选择 Java?
  10. Xshell/Xftp个人完全免费版