4.3.2编译器重编译linux2.6.37 (支持EABI)流程及问题记录
来源:互联网 发布:类似哔哩哔哩的软件 编辑:程序博客网 时间:2024/06/05 10:47
平台工具及其版本
宿主机: Windows xp;Vmware7.1.3build-324285;虚拟机Ubuntu10.10
目标平台:工装(s3c2440处理器)256M Nand Flash,64M SDRAM,2MNOR Flash
交叉开发环境:arm-linux-xxx-4.3.2,支持EABI
linux kernel版本:2.6.37
因使用3.4.1交叉编译环境编译应用程序时常出现某些故障,所以决定更换4.3.2版编译器。从而内核和文件系统也得使用4.3.2编译器重新编译。以下内容并不全面,仅记录了本人所遇见的重要问题。现将内核重编译流程及遇到的问题记录如下:
一、安装4.3.2版交叉编译环境
将交叉编译环境安装到/usr/local/arm/4.3.2目录下。在/etc/profile末尾加环境变量
exportPATH="/usr/local/arm/4.3.2/bin:$PATH"
这里有个问题要强调下:arm/4.3.2/bin目录下的编译指令arm-linux-gcc和arm-linux-g++是两个shell脚本。内容如下:
#!/bin/bash
execarm-none-linux-gnueabi-gcc -march=armv4t $*
#!/bin/bash
execarm-none-linux-gnueabi-g++ -march=armv4t $*
可以发现编译指令仍是EABI类型的,并且指定了运行平台类型为armv4t。注意:使用不同的处理器时,应当注意此处的平台类型是否合适。
二、内核源码重编译
源码拷贝自先前3.4.1编译好的文件,
1、修改“Makefile”文件
183 行“ARCH?=(SUBARCH)” 修改为“ARCH ?= arm”
184 行“CROSS_COMPILE ?= ” 修改为“CROSS_COMPILE ?=/usr/local/arm/4.3.2/bin/arm-linux-”
此时就是让编译器使用exec arm-none-linux-gnueabi-*** -march=armv4t $*指令编译内核。
2、make clean
进入内核源码根目录下执行make clean清除先前编译的目标文件及可执行文件。
3、make menuconfig
重新配置相关选项。必须选中该项以支持EABI方式编译内核
Kernel Features
[ ] Use the ARM EABI to compile the kernel
将它选中后自动多出下面一行
[*] Use the ARM EABIto compile the kernel
[*] Allow old ABI binaries to run with this kernel (EXPERIMENTAL)(NEW)
4、编译内核
进入内核源码根目录下执行make zImage,完成后在/arch/arm/boot/目录下就生成了zImage内核可执行文件。
详细流程可参考:
http://mail.ustc.edu.cn/~lizhijie/TQ2440/linux2.6.31-porting-to-TQ2440.html
- 4.3.2编译器重编译linux2.6.37 (支持EABI)流程及问题记录
- 4.3.2编译器重编译linux2.6.37 (支持EABI)流程及问题记录
- Linux2.6编译记录
- uboot1.1.6源码编译的EABI问题
- ijkPlayer编译流程记录
- 编译linux2.6.11内核,出现问题
- linux2.6下驱动模块编译问题
- Arm linux2.6.21内核编译问题
- linux2.6.32.2内核支持arm-linux-gcc 2.95.3静态编译的程序(实录)
- [学习记录]编译.a静态库尝试及问题记录
- Linux2.6内核编译裁剪记录(Kernel panic
- Android编译问题记录
- DB编译问题记录
- Yarn编译问题记录
- Android编译问题记录
- ODL编译问题记录
- 编译问题记录
- 编译问题总结记录
- 在C#中,怎么保留小数点后两位
- volatile的功能及应用
- Visual Studio 2005 -- Error code 1603 for this component means "Fatal error during installation.
- MySQL数据库服务器逐渐变慢 该如何分析与解决 【待看】
- 光盘安装Ubuntu 11.10图解教程
- 4.3.2编译器重编译linux2.6.37 (支持EABI)流程及问题记录
- PC总线带宽与内存带宽的计算
- 对KMP算法的理解
- Android学习笔记(二)之----我的第一个Android应用—HelloWord
- 构建linux根文件系统 (支持EABI)
- strlen与sizeof区别(转载)
- javaweb原理及其相关知识
- jar 生成war 文件
- c# gridview操作:绑定特定列、导出Excel、导出WORD