实验三 交叉编译环境的搭建
- 格式:doc
- 大小:48.50 KB
- 文档页数:5
实验三交叉编译环境的搭建
一、实验目的
1、掌握使用crosstool-0.43脚本创建交叉编译环境的方法
2、掌握搭建不同版本的Linux内核的交叉编译环境的方法
3、掌握在Linux系统中查看各种软件版本的方法
二、实验原理
ARM芯片搭建的硬件开发平台本身不具有编译能力,编译工作只能由PC机上的Linux 系统或PC机上用虚拟机安装的Linux系统担任,为了能开发出能在ARM硬件环境下运行的程序,PC机上的Linux系统或PC机上用虚拟机安装的Linux系统需要安装交叉编译环境,编译出ARM硬件环境能运行的程序。
ARM硬件环境要运行PC机上的Linux系统或PC机上用虚拟机安装的Linux系统开发出的程序,需通过网络文件共享系统进行,通过文件共享的方式将PC机上的Linux系统或PC机上用虚拟机安装的Linux系统开发出的程序共享到ARM硬件平台上。
三、实验步骤
1、相关软件的准备
1.1 运行环境介绍
PC机安装虚拟机VMware10.0、PC机Linux系统为RedHat AS5,、PC机Linux内核版本Linux2.6.34、PC机Linux系统gcc编译器版本为gcc-4.1.2、ARM硬件平台CPU 为s3c2410、ARM硬件平台Linux内核版本为Linux2.6.24.4。
1.2交叉编译器所需资源及下载地址
【binutils-2.16.1.tar.bz2】/gnu/binutils/
【glibc-2.3.2.tar.bz2】/gnu/glibc/
【glibc-linuxthreads-2.3.2.tar.bz2】/gnu/glibc/
【linux-2.6.24.4.tar.bz2】/pub/linux/kernel/v2.6/ 【gdb-6.5.tar.bz2】/gnu/gdb/
【gcc-4.1.1.tar.bz2】/gnu/gcc/gcc-4.1.1/ 【gcc-3.3.6.tar.bz2】/gnu/gcc/gcc-3.3.6/ 【linux-libc-headers-2.6.12.0.tar.bz2】/gnu/binutils/ 【crosstool-0.43.tar.bz2】/crosstool
2、安装环境准备
2.1crosstool-0.43的准备
将下载好的crosstool-0.43.tar.bz2文件复制到/opt目录下,操作步骤为:
1、确定虚拟机Linux系统samba服务器配置完成且自动挂载windows下的某个盘。
2、将crosstool-0.43.tar.bz2文件放在windows下的某个盘中。
3、在虚拟机Linux中的/mnt/hgfs/下能看到windows的盘符。
4、将crosstool-0.43.tar.bz2文件复制到/opt目录下,命令为:
#cp /mnt/hgfs/(windows disk)/ crosstool-0.43.tar.bz2 /opt/
例:crosstool-0.43.tar.bz2文件放在windows下D盘的task3文件夹下,操作为:#cp /mnt/hgfs/D/task3/ crosstool-0.43.tar.bz2 /opt/ -R
5、复制完成后解压该文件,命令为:
#cd /opt
#tar –jxvf crosstool-0.43.tar.bz2
解压完成后在/opt/下就存在一个crosstool-0.43文件夹。
6、将crosstool-0.43文件夹改名为crosstool,命令为:
#mv crosstool-0.43 crosstool(当前路径为:/opt/)
7、更改crosstool所属用户为非当前非root用户,命令为:
#sudo chown –R 当前普通用户名:当前普通用户名crosstool(当前路径为:/opt/) 例:当前普通用户为:scs,则命令为:
# sudo chown –R scs:scs crosstool
2.2 其他相关软件的准备
1、在普通用户的文件夹下新建一个名为downloads的文件夹,命令为:
#mkdir /home/普通用户文件夹/downloads
例:当前普通用户为scs
# mkdir /home/scs/downloads
2、将上述准备的相关文件复制到这个文件夹内,命令为:
#cp /mnt/hgfs/D/task3/binutils-2.16.1.tar.bz2 ./(当前路径为downloads下)
#cp /mnt/hgfs/D/task3/ glibc-2.3.2.tar.bz2 ./(当前路径为downloads下)
#cp /mnt/hgfs/D/task3/ glibc-linuxthreads-2.3.2.tar.bz2 ./(当前路径为downloads下)
#cp /mnt/hgfs/D/task3/ linux-2.6.24.4.tar.bz2 ./(当前路径为downloads下)
#cp /mnt/hgfs/D/task3/ gcc-4.1.1.tar.bz2 ./(当前路径为downloads下)
#cp /mnt/hgfs/D/task3/ gcc-3.3.6.tar.bz2 ./(当前路径为downloads下)
3、将复制在downloads下的文件全部解压,命令为:
#tar –jxvf binutils-2.16.1.tar.bz2 (当前路径为downloads下,其他文件同此)
2.3相关文件的修改
1.修改demo-arm9tdmi.sh文件
进入/opt/crosstool/下,打开demo-arm9tdmi.sh文件,命令为:
#vi demo-arm9tdmi.sh
就可以查看demo-arm9tdmi.sh文件里面的内容为:
#!/bin/sh
# This script has one line for each known working toolchain
# for this architecture. Uncomment the one you want.
# Generated by generate-demo.pl from buildlogs/all.dats.txt
set -ex
TARBALLS_DIR=/home/xxxx/download #这里相关准备软件的存放目录RESULT_TOP=/opt /crosstool #这里是你生成一系列文件的目录,相当于脚本编译后生成文件的所在目录
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"
export GCC_LANGUAGES
# Really, you should do the mkdir before running this,
# and chown /opt/crosstool to yourself so you don't need to run as root.#此句提醒编译时不要用root用户编译,要用普通用户编译
mkdir -p $RESULT_TOP
#eval `cat arm9tdmi.dat gcc-2.95.3-glibc-2.1.3.dat` sh all.sh --notest