实验三 交叉编译环境的搭建

  • 格式:doc
  • 大小:48.50 KB
  • 文档页数:5

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三交叉编译环境的搭建

一、实验目的

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