《华清远见学习手记》之 嵌入式Linux开发环境的建立

本文介绍如何使用crosstool-0.43脚本工具包在Ubuntu 8.10环境下制作支持软浮点运算的arm架构交叉编译器,包括环境配置、工具安装、版本调整及环境变量设置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

嵌入式Linux开发环境的建立

 

     [实验内容]

           通过运用crosstool-0.43.tar.gz脚本工具包来制作自己的交叉编译器。此编译器能够编译u-boot-1.3.1, linux-2.6.22.6内核。

 

     [实验环境]

           1. Ubuntu8.10发行版

           2. linux-2.6.22.6内核

           3. FS2410平台

     [实验步骤]

           crosstool是由美国人Dan Kegel 开发的一套可以自动编译不同匹配版本gcc和glibc、并作测试的脚本程序。

           下载地址: h t t p://kegel.com/crosstool/crosstool-0.43.tar.gz

 

           (1)工具的安装

           制作之前确保你的系统中已经安装了下面的工具包:bison, flex, build-essential。

           安装方法: 1. sudo apt-get install XXX

                            sudo apt-get install bison flex build-essential patch libncurses5-dev

 

                           2. sudp dpkg -i XXX.deb

                           常用的软件包有:

                           bison_13a2.3.dfsg-4build1_i386.deb

                           build-essential_11.4_i386.deb

                           flex_2.5.33-10build1_i386.deb

                           libncurses5-dev_5.6+20071124-1ubuntu2_i386.deb

                           m4_1.4.8-1build1_i386.deb (首先安装)

                           patch_2.5.9-5_i386.deb

            注意:以上都是在普通用户下进行的。

 

            (2) 降Gcc的版本

            Ubunut8.10默认的gcc为4.3.2, 这个版本对语法要求较高,目前不宜选用,选择gcc-4.1,同时保留gcc4.3.2。

             安装gcc-4.1有两种方法:

                           1. sudo apt-get install gcc-4.1

                           2. 用sudo dpkg -i xxx.deb 安装包下列软件包:

                           gcc-4.1_4.1.2-23ubuntu3_i386.deb

                           gcc-4.1-base_4.1.2-23ubuntu3_i386.deb

                           cpp-4.1_4.1.2-23ubuntu3_i386.deb

 

                           安装好以后,需要修改gcc的软件链接:

                           sudo rm /usr/bin/gcc (删除gcc ,它是gcc4.3.2的软链接文件)

                           sudo ln -s  /usr/bin/gcc-4.1 (建立gcc到gcc-4.1的软链接)

 

             (3) 修改sh版本

              如果运行 ls -la /bin/sh 看到的链接是dash,则请运行以下命令:

              sudo dpkg-reconfigure dash

              选择no 以删除 dash。

 

             (4) 我们需要建立两个目录: crosstool 和 downloads

              crosstool 是存放工具链的目录,downloads 是存放编译crosstool所需的源码包的目录。

              mkdir /home/boat_man/downloads

              cp  gcc-3.4.5.tar.gz   glibc-2.3.6.tar.gz   linux-2.6.22.6.tar.gz   crosstool-0.43.tar.gz    binutils-2.15.tar.gz glibc-linuxthreads-2.3.3.tar.gz    linux-libc-headers-2.6.12.0.tar.bz2    /home/boat_man/downloads

              如果downloads 下没有这些源码包,在编译的时候crosstool 会自己下载,但是下载的时间比较长,所以我们还是把这些软件包提前下载下来,放到downloads 下。

 

              (5) 解压crosstool软件包,并进入其目录,查看重要的脚本文件

               cd  /home/boat_man/downloads

               tar  xzvf  crosstool-0.43.tar.gz

               cd crosstool-0.43

               在这个目录下有很多所支持的处理器对应的 .sh 脚本和 .dat 配置文件。我们选择支持软浮点运算的demo-arm-softfloat.sh

 

               (6) 修改 demo-arm-softfloat.sh

               vim demo-arm-softfoat.h

               修改下面两句:

               TARBALLS_DIR=$HOME/downloads

               RESULT_TOP=/opt/crosstool

               为:

               TARBALLS_DIR=/home/boat_man/dowloads (你的源码存放的目录)

               RESULT_TOP=/home/boat_man/crosstool (你即将生成的工具链存放目录)

 

                (7) 修改 gcc-3.4.5-glibc-2.3.6.dat

                修改内容为:

                BINUTILS_DIR=binutils-2.15

                GCC_DIR=gcc-3.4.5

                GLIBC_DIR=glibc-2.3.6

                LINUX_DIR=linux-2.6.22.6

                LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

                GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6

                注意:这里表示我们使用的源码包的版本,必须 downloads中的源码版本一致。

 

                (8) ./demo-arm-softfloat.sh

                执行这个脚本,在我的机器上大约半个多小时可以编完。

 

                (9)  修改环境变量

                 sudo vim /etc/bash.bashrc

                 在文件末尾加上如下语句:

                 PATH=$PATH:/home/boat_man/crosstool/gcc3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:

                 export PATH

 

                (10)重新打开一个终端

                 arm-softfloat-linux-gnu-gcc -v

                 如果最后一行能显示出: gcc version 3.4.5 ,那说明你的交叉工具链构建成功了。

 

                (11) 恢复gcc 版本和 sh

                 sudo rm /usr/bin/gcc

                 sudo ln -s /usr/bin/gcc-4.3  /usr/bin/gcc


                 sudo dpkg-reconfigure dash 

                 选择yes 以重新安装 dash。


                OK,我们的交叉编译工具arm-softfloat-linux-gnu-gcc 就算大功告成了!

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值