预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共22页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

HYPERLINK""HYPERLINK""目录TOCTOC构建嵌入式Linux系统1.取本实验相关的软件包到ftp下载以下软件包:文件名备注binutils-2.16.1.tar.bz2gcc-4.0.2.tar.bz2glibc-2.3.6.tar.bz2glibc-linuxthreads-2.3.6.tar.bz2linux-2.6.15.4.tar.bz2linux-libc-headers-2.6.12.0.tar.bz2制作交叉编译工具链所需的源码包crosstool-0.43.tar.gz制作交叉编译工具链的脚本和补丁crosstool.tar.bz2已制作好的交叉编译工具链,需要解包到/opt目录使用linux-2.6.27.tar.bz2内核2.6.27patch-2.6.27-aka针对2440开发板制作的内核patchzImage已编译好的内核,可直接下载到开发板rootfs-basic.tar基本根文件系统打包,由于有设备文件,所以解包需要root权限rootfs-basic.cramfs采用cramfs文件系统格式的基本根文件系统映像,可直接下载到开发板busybox-1.9.1.tar.bz2busybox源码包,嵌入式根文件系统基本命令集sqlite-3.4.0.tar.gzsqlite源码包,嵌入式数据库libcgi-1.0.tar.gzlibcgi源码包,用于编写CGI程序的C函数库qtopia-core-opensource-src-4.2.2.tar.gzQtopiaCore源码包,Qt的嵌入式版本2.交叉编译工具链要做嵌入式Linux开发,首先需要有交叉编译工具链(crosscompilingtoolchain),也就是在主机(x86PC)上可编译生成目标板可执行文件(ARM指令)的编译工具。和普通的编译工具链一样,交叉编译工具链也包括编译、链接、修改目标文件的各种程序,如gcc、glibc、ld、gas、objdump、readelf等等。交叉编译工具链本身也是需要编译生成的,要得到一套完整的交叉编译工具链需要编译以下源码包:binutilsgccglibclinux(内核)linux-libc-headersglibc-linuxthreads这些源码包具有非常强的版本依赖关系,如果源码包的版本不匹配,在编译过程中会出现各种各样的问题,有些问题需要对源码做些修改或者打补丁,有些问题则是没有解决办法的,只能更换匹配较好的版本。编译的步骤也是比较复杂的,主要有以下几步:根据目标平台配置内核源代码,生成内核头文件编译binutils编译器的自举(bootstrap),也就是先编译出gcc的部分功能(没有glibc支持,只有C编译器没有C++编译器)编译glibc编译完整的gcc首先从stool下载crosstool-0.43.tar.gz,在主目录下解包~$tarxfcrosstool-0.43.tar.gz;cdcrosstool-0.43现在选择一种源码包的版本组合,各种版本组合的兼容性可以参考l/crosstool-0.43/buildlogs/,在此我们选择在arm平台上glibc版本较高,兼容性较好的一个组合:gcc-4.0.2cgcc-4.0.2glibc-2.3.6binutils-2.16.1linux-2.6.15.4hdrs-2.6.12.0修改crosstool-0.43目录下的脚本demo-arm.sh,取消这一行开头的#号注释符:#eval`catarm.datgcc-4.0.2-glibc-2.3.6.dat`shall.sh--notest同时将原本没有注释的这一行注释掉(前面加#号):eval`catarm.datgcc-4.1.0-glibc-2.3.2-tls.dat`shall.sh--notest注意该脚本开头有TARBALLS_DIR=$HOME/downloadsRESULT_TOP=/opt/crosstool这说明,该脚本运行时,自动从和下载相关的源码包到主目录的downloads目录下,如果你已经下载过这些源码包,将它们拷到downloads目录下就可以不必再次下载了。对应于我们选择的版本组合,downloads目录下的源码包有:binutils-2.16.1