Arm9+Linux fl2440 用buildroot-2012.08.tar.bz2制作交叉编译器

注:制作过程中最好不要用root账号,并且最好安装在/opt/目录下

1,准备下载,安装路径

[shaocongshuai@localhost ~]$ sudo chmod 777 /opt/

[shaocongshuai@localhost ~]$ cd /opt/
[shaocongshuai@localhost opt]$ ls
rh

2,下载源码包并准备编译目录结构

 所有的发行版可以在以下官网下载 :

     http://buildroot.net/downloads/

[shaocongshuai@localhost opt]$ wget http://buildroot.net/downloads/buildroot-2012.08.tar.bz2

[shaocongshuai@localhost opt]$ tar -xjvf buildroot-2012.08.tar.bz2

[shaocongshuai@localhost opt]$ sudo mv  rh/ buildroot-2012.08/
[shaocongshuai@localhost opt]$ cd buildroot-2012.08/
[shaocongshuai@localhost buildroot-2012.08]$ ls
board  boot  CHANGES  Config.in  configs  COPYING  docs  fs  linux  Makefile  package  rh  support  target  toolchain


3,开始配置编译安装:

[shaocongshuai@localhost buildroot-2012.08]$ export TERM=vt100  //防止make menuconfig 是出现乱码

[shaocongshuai@localhost buildroot-2012.08]$make menuconfig  //进行builroot配置

当然在执行这个命令是会提示缺少一些命令这个时候,就用yum 来安装,在来配置


buildroot-2012.08 make menuconfig 选项配置说明
=======================
Target Architecture (ARM (little endian))  --->
Target Architecture Variant (arm920t)  --->  根据自己的CPU来选择
Target ABI (EABI)  --->
Build options  --->
   ($(TOPDIR)/rh) Download dir
   ($(TOPDIR)/arm920t) Host dir
   [*] prefer static libraries
   其它选项都不要选,如果是要设置值的地方就使用默认值
Toolchain  --->   
   Kernel Headers (Linux 2.6 (manually specified version))  --->
   (2.6.37) linux version  选定内核版本为2.6.37
    ... ...
   [*] Enable compiler tls support 
   [*] Enable MMU support
   [*] Use software floating point by default
   [*] Enable large file (files > 2 GB) support
   [*] Enable IPv6 support
   [*] Enable RPC support
   [*] Enable WCHAR support
   [*]   Enable C++ support
   其它选项都不要选,如果是要设置值的地方就使用默认值
 System configuration  ---> 
   Init system (None)  --->  把Busbyox编译去掉
   这里面所有的都不要选,如果是要设置值的地方就使用默认值
 Package Selection for the target  --->
   这里面所有的选项都不要选,除了:
   Libraries  --->
      Compression and decompression  --->
 [*] lzo
 -*- zlib
 Host utilities  --->
   这里面所有的选项都不要选
 Filesystem images  --->
   这里面所有的选项都不要选
 Bootloaders  --->
   这里面所有的选项都不要选
 Kernel  ---
   这里面所有的选项都不要选


4,配置完之后

shaocongshuai@localhost buildroot-2012.08]$ make

这个过程会报错,提示安装一些命令,然后我们就用yum安装,在重新make

这个编译过程得花一些时间

如果出现下面这些提示,则表明编译成功

touch /opt/buildroot-2012.08/output/target/etc/ld.so.conf
mkdir -p /opt/buildroot-2012.08/output/target/var/cache/ldconfig
if [ -x "/opt/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig" ]; \
        then \
                /opt/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig -r /opt/buildroot-2012.08/output/target; \
        else \
                /sbin/ldconfig -r /opt/buildroot-2012.08/output/target; \
        fi
/opt/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig: skipping /usr/X11R6/lib: No such file or directory
( \
                echo "NAME=Buildroot"; \
                echo "VERSION=2012.08"; \
                echo "ID=buildroot"; \
                echo "VERSION_ID=2012.08"; \
                echo "PRETTY_NAME=\"Buildroot 2012.08\"" \
        ) >  /opt/buildroot-2012.08/output/target/etc/os-release
>>>   Generating root filesystem image rootfs.tar
rm -f /opt/buildroot-2012.08/output/build/_fakeroot.fs
echo "chown -R 0:0 /opt/buildroot-2012.08/output/target" >> /opt/buildroot-2012.08/output/build/_fakeroot.fs
cat target/generic/device_table.txt target/generic/device_table_dev.txt > /opt/buildroot-2012.08/output/build/_device_table.txt
echo -e '\n \n' >> /opt/buildroot-2012.08/output/build/_device_table.txt
echo -e '\n \n' >> /opt/buildroot-2012.08/output/build/_device_table.txt
echo "/opt/buildroot-2012.08/arm920t/usr/bin/makedevs -d /opt/buildroot-2012.08/output/build/_device_table.txt /opt/buildroot-2012.08/output/target" >> /opt/buildroot-2012.08/output/build/_fakeroot.fs
echo " tar -c""f /opt/buildroot-2012.08/output/images/rootfs.tar -C /opt/buildroot-2012.08/output/target ." >> /opt/buildroot-2012.08/output/build/_fakeroot.fs
chmod a+x /opt/buildroot-2012.08/output/build/_fakeroot.fs
/opt/buildroot-2012.08/arm920t/usr/bin/fakeroot -- /opt/buildroot-2012.08/output/build/_fakeroot.fs
rootdir=/opt/buildroot-2012.08/output/target
table='/opt/buildroot-2012.08/output/build/_device_table.txt'


看一下各目录下有没有相应的内容

[shaocongshuai@localhost buildroot-2012.08]$ ls arm920t/usr/bin/
aclocal                                    arm-linux-ldconfig                         arm-unknown-linux-uclibcgnueabi-g++        autoconf
aclocal-1.11                               arm-linux-ldd                              arm-unknown-linux-uclibcgnueabi-gcc        autoheader
arm-linux-addr2line                        arm-linux-nm                               arm-unknown-linux-uclibcgnueabi-gcc-4.5.4  autom4te
arm-linux-ar                               arm-linux-objcopy                          arm-unknown-linux-uclibcgnueabi-gccbug     automake
arm-linux-as                               arm-linux-objdump                          arm-unknown-linux-uclibcgnueabi-gcov       automake-1.11
arm-linux-c++                              arm-linux-ranlib                           arm-unknown-linux-uclibcgnueabi-gprof      autoreconf
arm-linux-cc                               arm-linux-readelf                          arm-unknown-linux-uclibcgnueabi-ld         autoscan
arm-linux-c++filt                          arm-linux-size                             arm-unknown-linux-uclibcgnueabi-ld.bfd     autoupdate
arm-linux-cpp                              arm-linux-strings                          arm-unknown-linux-uclibcgnueabi-ldconfig   faked
arm-linux-elfedit                          arm-linux-strip                            arm-unknown-linux-uclibcgnueabi-ldd        fakeroot
arm-linux-g++                              arm-unknown-linux-uclibcgnueabi-addr2line  arm-unknown-linux-uclibcgnueabi-nm         ifnames
arm-linux-gcc                              arm-unknown-linux-uclibcgnueabi-ar         arm-unknown-linux-uclibcgnueabi-objcopy    ldconfig
arm-linux-gcc-4.5.4                        arm-unknown-linux-uclibcgnueabi-as         arm-unknown-linux-uclibcgnueabi-objdump    ldd
arm-linux-gccbug                           arm-unknown-linux-uclibcgnueabi-c++        arm-unknown-linux-uclibcgnueabi-ranlib     libtool
arm-linux-gcov                             arm-unknown-linux-uclibcgnueabi-cc         arm-unknown-linux-uclibcgnueabi-readelf    libtoolize
arm-linux-gprof                            arm-unknown-linux-uclibcgnueabi-c++filt    arm-unknown-linux-uclibcgnueabi-size       m4
arm-linux-ld                               arm-unknown-linux-uclibcgnueabi-cpp        arm-unknown-linux-uclibcgnueabi-strings    makedevs
arm-linux-ld.bfd                           arm-unknown-linux-uclibcgnueabi-elfedit    arm-unknown-linux-uclibcgnueabi-strip 

[shaocongshuai@localhost buildroot-2012.08]$ ls arm920t/usr/lib/
gcc        libfakeroot-0.so  libfakeroot.so  libgmp.so     libgmp.so.10.0.5  libltdl.so    libltdl.so.7.2.2  libmpc.so    libmpc.so.2.0.0  libmpfr.so    libmpfr.so.4.1.1
ldscripts  libfakeroot.la    libgmp.la       libgmp.so.10  libltdl.la        libltdl.so.7  libmpc.la         libmpc.so.2  libmpfr.la       libmpfr.so.4

[shaocongshuai@localhost buildroot-2012.08]$ ls arm920t/usr/include/
gmp.h  libltdl  ltdl.h  mpc.h  mpf2mpfr.h  mpfr.h

[shaocongshuai@localhost buildroot-2012.08]$ ls arm920t/usr/arm-unknown-linux-uclibcgnueabi/lib/
libgcc_s.so  libgcc_s.so.1  libmudflap.a  libmudflap.la  libmudflapth.a  libmudflapth.la  libstdc++.a  libstdc++.a-gdb.py  libstdc++.la  libsupc++.a  libsupc++.la

[shaocongshuai@localhost buildroot-2012.08]$ ls arm920t/usr/arm-unknown-linux-uclibcgnueabi/sysroot/lib/
ld-uClibc-0.9.33.2.so  libcrypt.so.0      libdl.so.0        libnsl-0.9.33.2.so      libpthread.so.0        librt-0.9.33.2.so      libutil-0.9.33.2.so
ld-uClibc.so.0         libc.so.0          libm-0.9.33.2.so  libnsl.so.0             libresolv-0.9.33.2.so  librt.so.0             libutil.so.0
libcrypt-0.9.33.2.so   libdl-0.9.33.2.so  libm.so.0         libpthread-0.9.33.2.so  libresolv.so.0         libuClibc-0.9.33.2.so

[shaocongshuai@localhost buildroot-2012.08]$ ls arm920t/usr/arm-unknown-linux-uclibcgnueabi/sys-include/
gmp.h  libltdl  ltdl.h  mpc.h  mpf2mpfr.h  mpfr.h

[shaocongshuai@localhost buildroot-2012.08]$ du -sh output/
1.9G    output/

由于这个目录很大,所以我们可以删掉它

[shaocongshuai@localhost buildroot-2012.08]$ sudo rm -rf output/

rh目录下的源码包也可以删去,减少空间

[shaocongshuai@localhost buildroot-2012.08]$ ls rh/
autoconf-2.68.tar.gz    binutils-2.21.1.tar.bz2       gcc-4.5.4.tar.bz2  libtool-2.2.10.tar.gz  lzo-2.06.tar.gz    mpc-0.9.tar.gz      uClibc-0.9.33.2.tar.bz2
automake-1.11.5.tar.gz  fakeroot_1.18.2.orig.tar.bz2  gmp-5.0.5.tar.bz2  linux-2.6.37.tar.bz2   m4-1.4.16.tar.bz2  mpfr-3.1.1.tar.bz2  zlib-1.2.7.tar.bz2

[shaocongshuai@localhost buildroot-2012.08]$ sudo rm -rf rh/

这样我们的编译的工具目录能保证是最小的

[shaocongshuai@localhost opt]$ du -sh buildroot-2012.08/
110M    buildroot-2012.08/

附上:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值