获取linux内核

移植linux内核首先我们需要先获内核源码,可以从linux官网下载:https://www.kernel.org,但是一般做法是
根据cpu类型从它们的半导体厂商网站获取,因为半导体厂商提供的linux源码对其支持更加全面,我们移植
时所需要配置的东西会更少,例如我们所使用的cpu是NXP的生产的,那么我们就从NXP官网获取linux源码
包,再此源码包上添加支持我们自己开发代码。

编译linux内核

拿到linux内核源码包,我们就可以将其编译得到linux内核镜像zImage或uImage了,具体的编译步骤为:1.make distclean2.make xxxxxx_defconfig3.make执行完以上3个步骤就可以得到linux内核镜像文件zImage了,但是个镜像文件zImage能运行在我们自己开发板上吗?答案显然是no,注意到步骤2,make xxxxxx_defconfig中的xxxxxx_defconfig其实是一个配置文件,这个配置文件是由用户写的针对某个特定开发板的配置文件(路径:arch/arm/configs),所以以上编译得到的zImage是适配 xxxxxx开发板的内核镜像,不适用于我们自己的开发板。

在linux中添加用户开发板支持

想要让linux源码包编译出来的zImage也使用于我们自己的开发板,那么我们首先需要在linux源码包下添加一个属于
我们开发板的配置文件:my_baod_defconfig,其次添加我们开发板相关的源代码并修改同目录下的Makefine,具体
如下:1.cd arch/arm/configssudo cp xxxxxx_defconfig my_baod_defconfig2.cd arch/arm/boot/dtssudo cp xxxxxx.dts my_baod.dts3.修改 arch/arm/boot/dts目录下的makefile: 给dtb-$(CONFIG_SOC_IMX6ULL) 选项添加 my_baod.dts,这样编译的时候才会编译我们我们增加的源码文件。4.编译内核源码得到zImagemake distclen,  make my_boad_defconfig make menuconfig  //进入图形配置文件,如果不需要修改my_boad_defconfig中的配置可以省略此步骤make
**注意:如果zImage不是运行在x86架构上,我们在编译内核源码时需要指定 CPU架构和编译器类型,以arm架构的
CPU为例,编译方法具体如下:**1.make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean2.make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- my_boad_defconfig 3. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig4.make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. linux移植会话层层协议,Linux内核移植-南京林业大学毕业设计.DOC

    Linux内核移植-南京林业大学毕业设计 南京林业大学 本科毕业设计(论文) 题 目:嵌入式LINUX在ARM9系统中的移植 院 (系) 信息与科学技术学院 专 业 计算机科学与技术 学 生 谢监荣 ...

  9. linux 内核移植和根文件系统的制作【转载】

    原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...

最新文章

  1. vue-quill-editor上传内容由于图片是base64的导致字符太长的问题解决
  2. Calendar日历简单用法
  3. android 卡片3d效果_小米发布伸缩镜头技术:卡片机失业,多摄下岗?
  4. 新手入门指导:Vue 2.0 的建议学习顺序
  5. ASP.NET MVC实用技术:开篇
  6. 力扣76,最小覆盖字串(JavaScript)
  7. LWM2M,MQTT与CoAP区别和联系
  8. 【综述笔记】一些弱监督语义分割论文
  9. css定位(二)---css中粘性定位(sticky)---C3新增属性
  10. Bzoj3236:[Ahoi2013]作业:莫队算法+树状数组
  11. CAD二次开发(c#)利用选择集获取标注尺寸
  12. 【基础】SimpleDateFormat日期格式转换详解
  13. 编译linux内核报错,/bin/sh: 1: flex: not foundscripts/Makefile.host:9: recipe for target ‘scripts/kconfig/
  14. Gitlab回滚到上次提交
  15. Java 虚拟机笔记
  16. vue 高德地图api爬坑之路(一)初始化
  17. 【mariadb的安装】
  18. PROJECT2: 华为云 >> 企业云平台完整架构实例应用分解(第一部分Web端)
  19. 尽量避免bug的一些手法
  20. Linux服务器架设-FTP服务器配置实例

热门文章

  1. 饥荒高脚鸟蛋孵化教程
  2. JS标准时间时间格式化
  3. HTML 几种特别分割线特效 详细出处参考:http://www.jb51.net/web/28414.html
  4. api数据接口文档_接口文档示例(Taobao/jd/pinduoduo/开放接口调用)
  5. 常用文本编辑器(NotePad++,UtraEdit)
  6. day55 虚拟机 centos linux命令 搭建linux架构师必背命令
  7. Chrome浏览器手动调节模拟网速
  8. python对整数进行因数分解_浅谈将一个正整数分解质因数的逻辑思维和Python开发设计...
  9. Hadoop3.2.0 HDFS DataNode管理员指南
  10. 计算机硬盘会消失,凡是能转的最后都会消失:盘点电脑硬盘发展史