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

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

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

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

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

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

专业的嵌入式技术研发、推广、培训、认证机构嵌入式Linux就业班内部资料AKAE嵌入式研究中心版权所有构建嵌入式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.17.14.tar.bz2内核2.6.17.14patch-2.6.17.14-aka针对2410开发板制作的内核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幸运的是,已经有人写出了制作交叉编译器的脚本(http://www.kegel.com/crosstool),该脚本中提供了一系列源码包版本的匹配方案,使用者需要选择目标平台和源码包的版本匹配方案,执行该脚本会自动从官方网站(http://www.gnu.org/和http://www.kernel.org/)下载源代码,自动打补丁,然后自动完成所有的编译步骤。首先从http://www.kegel.com/crosstool下载crosstool-0.43.tar.gz,在主目录下解包~$tarxfcrosstool-0.43.tar.gz;cdcrosstool-0.43现在选择一种源码包的版本组合,各种版本组合的兼容性可以参考http://www.kegel.com/crosstool/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这说明,该脚本运行时,自动从http://www.gnu.org/和http://www.kernel.o