测试环境:Fedora 9 Linux 2.6.26 / gcc 4.3.0 / arm-Linux-gcc 3.4.1

本 文主要介绍如何构建在x86平台上交叉编译各平台上的嵌入式Linux内核。要完成一下步骤,首先必须确认有相应的交叉编译工具链。工具链可以自己编译获 得,但是对于初学者我们不推荐这么作,网上大有许多编译好的优秀的工具链。本文将以编译ARM平台上的内核为例子,其他平台基本步骤差异不大。为了显示最 新性,也采用可2.6.26版本的内核。

首先必须获得最新版本的内核,可以在ftp.kernel.org上下载我们需要的2.6.26的内核。获得相应内核包后,解压:

对于 Linux-2.6.26.tar.gz为

tar zxvf Linux-2.6.26.tar.gz

对于 Linux-2.6.26.tar.bz2为

tar xjvf Linux-2.6.26.tar.bz2

之后进入Linux-2.6.26文件夹内。

如果机器上已有2.6.26内核代码,也可以直接使用,但要清除上次编译的遗留物,可以

make distclean

准 备结束后,我们开始配置内核。在本机编译内核时,我们可以直接make menuconfig之类,就合根据我们机器当前内核的配置生产.config文件。但对于嵌入式当然就很困难。幸亏Linux支持上百种平台。对于不同 平台都有默认的配置文件,对于我们使用的arm,可以在/arch/arm/configs文件夹下看到

我们要根据自己所使用的平台来选择。如使用PXA270的,可以选择em_x270_defconfig。之后只要运行

make ARCH=arm CROSS_COMPILE=arm-Linux- em_x270_defconfig

对于我们使用的两个宏ARCH和CROSS_COMPILE,分别是指我们选择的体系结构(Linux在内核代码树arch文件夹中列出支持的体系结构)和交叉编译器的前缀。

之后就可以再运行

make menucnfig

进行修改。

之后就是编译了,对于嵌入式大多是编译成镜像文件,这里编译成zImage

make ARCH=arm CROSS_COMPILE=arm-Linux- zImage

如果有选择模块,还要

make ARCH=arm CROSS_COMPILE=arm-Linux- modules

make ARCH=arm CROSS_COMPILE=arm-Linux- INSTALL_MOD_PATH= modules_install

宏INSTALL_MOD_PATH是选择模块安装的根目录,这里我们选择的是我们为嵌入式准备的寄生文件系统路径,默认是本机的根目录(即/),如果设置这个宏会把模块安装大/lib/modules文件夹中,有时候这是灾难性的。

这 样就搞定了,是不是缺了什么?我们差点忘记了编译好的zImage。他在什么地方?对于一般而言是在 Linux-2.6.26/arch/$ARCH/boot里,本次是在 Linux-2.6.26/arch/arm/boot 找到他了,一看居然有1.5兆这么大。怎么变小能?关键就是在make menucnfig阶段了,这阶段才是技术要求所在。

嵌入式linux内核编译感想,嵌入式Linux内核的交叉编译编译-基于2.6.26相关推荐

  1. linux 编译配置内核路由功能,嵌入式Linux2.6路由功能的实现

    1 Linux2.6路由分析 1.1静态与动态路由 静态路由是网络管理员再已知网络拓扑情况下手动添加的路由信息:而动态路由则是路由器根据对网络拓扑变化的检测动态改变路由信息.静态路由,linux2.6 ...

  2. linux内核编译选项ccl,嵌入式Linux学习笔记(一)

    注:所有内容基于友善之臂Mini2440开发板 一.嵌入式Linux开发环境的构建 嵌入式开发一般分为三个步骤: 1.编译bootloader,烧到开发板 2.编译嵌入式Linux内核,烧到开发板 3 ...

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

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

  4. linux内核培训广州,嵌入式Linux驱动开发高级培训班-华清远见嵌入式培训中心

    课程目标 本课程以案例教学为主,系统地介绍Linux下有关FrameBuffer.MMC卡.USB设备的驱动程序开发.参加本课程学习的学员,因为具备了Linux设备驱动开发基础,所以本课程针对性较强, ...

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

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

  6. linux内核编译感想,Linux内核编译小结

    初步了解Linux编译内核: Linux默认内核存放路径为/boot Linux内核的版本号: LINUX采用双树系统:一为稳定树,二为开发树.一般是新特性及实验性改进首先在开发树中进行,经过测试后, ...

  7. (三)内核移植--从零开始自制linux掌上电脑(F1C200S)<嵌入式项目>

    目录 一.bootloader.kernel.rootfs联系 二.内核移植 1. 内核源码获取 2. 内核配置与编译

  8. linux内核开发基础(linux内核源码、树莓派源码编译、SD卡挂载)

    首先下载树莓派linux内核源码: 下载网址:https://github.com/raspberrypi/linux 在树莓派使用指令:uname -r查看当前树莓派的版本号,然后选择对应的linu ...

  9. Linux 之八 完整嵌入式 Linux 环境及构建工具、(交叉)编译工具链、CPU 体系架构

      最近,工作重心要从裸机开发转移到嵌入式 Linux 系统开发,由于之前对嵌入式 Linux 环境并不是很了解,因此,第一步就是需要了解如何搭建一个完整的嵌入式 Linux 环境.现在将学习心得记录 ...

最新文章

  1. Oracle去除表中重复记录
  2. 使用window.performance分析web前端性能
  3. 计算机毕业设计中基于python的快递查询系统
  4. kotlin半生对象_Kotlin单一对象,Kotlin伴侣对象
  5. 夜神安卓模拟器安装xposed框架
  6. java图形化元件竖直排列_Java:图形化比较排序
  7. 广告牌定时器怎么设置时间_定时器怎么调时间
  8. 【GD32F303开发之串口通信】
  9. 7-13 统计工龄 (20分)
  10. GC算法精解(五分钟让你彻底明白标记/清除算法)
  11. curaengine linux编译,CuraEngine_vs-master 在vs编译的curaengine - 下载 - 搜珍网
  12. 用计算机做动画效果,动画图片多种效果制作步骤
  13. Generative Adversarial Zero-shot Learning via Knowledge Graphs翻译
  14. 嘀咕网李松聊LBS创业:烧3000万美元是起点
  15. java基础面试题 一
  16. http状态码大全201,304,301,405等等.......
  17. 小程序开发系列之基础部分-开发工具
  18. 逃出你的肖申克(二):你的灯亮着吗?
  19. Windows用命令压缩和解压
  20. 智慧农业解决方案:温室大棚远程监控

热门文章

  1. [分享]组织机构图控件
  2. Win10 资源管理器窗口无边框的问题
  3. 【MySQL】简单命令总结
  4. 简单的一点总结:关于优惠券功能
  5. 循序渐进Python3(七) -- 2-- 面向对象进阶
  6. C#中常用的经典文件操作方法
  7. css设置元素继承父元素宽度_CSS设置超链接A标签宽度和高度
  8. 计算机网络和通讯原理图,第章 计算机网络通信原理.ppt
  9. 子对象是什么java_面向对象编程(什么是对象)——java
  10. 聚类分析在用户行为中的实例_聚类分析在用户分类中的应用