首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>其他编程>正文

嵌入式Linux内核的交叉编译编译-基于2.6.26

http://www.oklinux.cn  2008-09-08  linuxidc   会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

测试环境: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阶段了,这阶段才是技术要求所在。


上一篇:交叉编译uim 1.5.2 for pdaxrom   下一篇:木马预警周报 Linux不受威胁

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·交叉编译uim 1.5.2 for pdaxrom
·Linux的文件处理挺强挺厉害
·在编写Linux下的gtk程序的时候遇到的问题
·升级Linux2.4.9内核到2.6.26.3版
·Linux Shell下一些有用的快捷键
·Linux下使用PHP时由参数“b”的想到的
·Linux下使用dirname命令
·Linux - 非阻塞socket编程处理EAGAIN错误
·Linux命令提示符段改变技巧
·Linux下面查找函数的方法
·非root用户安装perl模块
·bash的几个初始化文件
·Windows和Linux中任意字符串替换成换行符的问题
·Linux编译C确实很方便
·Linux下获取文件大小的方法
·新手学堂 用EditPlus文本编辑工具配置Java编译环境
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·交叉编译uim 1.5.2 for pdaxrom
·Linux的文件处理挺强挺厉害
·在编写Linux下的gtk程序的时候遇到的问
·升级Linux2.4.9内核到2.6.26.3版
·Linux Shell下一些有用的快捷键
·Linux下使用PHP时由参数“b”的想到的
·Linux下使用dirname命令
·Linux - 非阻塞socket编程处理EAGAIN错
·Linux命令提示符段改变技巧
·Linux下面查找函数的方法
·非root用户安装perl模块
·bash的几个初始化文件
  阅读排行
·Linux下Qtopia Core 4.3(QT/E)交叉编译
·开源空间 网络安全工具开发函数库Libne
·Linux编程时获取当前时间实例解析
·Linux环境下OpenGL编程学习
·Linux socket编程实例:echo服务器程序
·升级Redhat Linux 9.0内核有感
·Linux中断处理学习笔记
·GNU/Linux应用程序编程:用管道进行编
·Linux系统中限制用户进程CPU及内存占用
·Linux下安装g77 fortran complier过程
·解决Linux中Matlab中文乱码问题
·Linux环境下重新编译GCC-4.3.0
·Linux环境下Wine的中文显示以及freetyp
·Linux多线程编程学习之线程同步
·SUSE Linux中安装Quartus 7.2过程笔记
网摘收藏: