使用buildroot建立交叉编译工具[转]

若想详细地了解buildroot可参考该文档
http://buildroot.uclibc.org/buildroot.html
首先从此处
http://buildroot.uclibc.org/downloads/snapshots/
  下载最新的buildroot
buildroot-snapshot.tar.bz2
$ tar jxvf buildroot-snapshot.tar.bz2
$ cd buildroot
$ make menuconfig
配置项如下:Target
Architecture (arm)---à
Target Architecture variant (arm926t) --à
Target ABI (OABI) ---à
            Build
option --à
此项中只作如下修改
(arm-linux-gnu) GNU build hostname suffix 
其余都是默认的选项
Toolchain type (buildroot toolchain) --à
Toolchain Options ---à
              ---Kernel Header Options
                Kernel Headers (Linux 2.6.21.x
kernel headers) -à
              ----uClibc Options
                uClibc C library version
(uClinbc0.9.29) -à
(toolchain/uClibc/uClibc-0.9.29.config)
uClibc configuration files to
              [ ] Enable locale/gettext/i8n
support?
                Thread library implementation
(linux threads (stable/old))--à
              [ ] Thread library debugging
              -----Binutils options
                  Binutils version (binutils 2.17) --à
              () Additional binutils options
              -----Gcc options
                 GCC compiler version (gcc 3.4.6)

    [ ] Enable setjmp /longjmp exceptions?
    () Additional gcc options
    [ ]Build/install c++ compiler and libstdc++?
    [ ]Build/install Objective –C compiler and
runtime?
    [ ]Build/install Fortran compiler and runtime?

  • Build/install a shared libgcc?
                  -------Ccache Options
                       [ ]Enable ccache support?
                  --------Gdb Options
                       [ ]Build gdb debugger for the Target
          [ ]Build gdb server for the Target
                       [
    ]Build gdb for the Host
        ---------elf2flt 未配置该选项
                  ---------Common Toolchain Options  未配置该选项
         (-Os –pipe) Target Optimizations
  • Include target utils in
    cross toolchain
    Package
    Selection for the target --à
    busybox另外编译,这里未配置
    Target Options
  • ext2 root filesystem 其他为默认配置
    Board Support
    Options ---à
  • Atmel Target 其他未配置
    $ make all
    编译结束后即可在staging_dir目录下看到如下文件:arm-linux arm-linux-uclibc bin include info lib libexec man usr  其中bin中即为相应的交叉编译工具,arm-linux目录下的lib中即为相应的库。
    为了验证该交叉编译工具是否可以正常工作,修改 .bash_profile文件中的内容,注释掉 export PATH=$PATH:/usr/local/arm/3.4.1/bin
    添加上:
    export
    PATH=$PATH:/home/yyl/project1/buildroot/build_arm/staging_dir/bin
    重起系统,通过arm-linux-gcc
    –version命令可检测到当前arm-linux-gcc版本为3.4.6
    修改linux-2.6.21目录下的Makefile文件:
    将 CROSS_COMPILE
    =/usr/local/arm/3.4.1/bin/arm-linux-
    改为:CROSS_COMPILE
    =/home/yyl/project1/buildroot/build_arm/staging_dir/bin/arm-linux-
    由于我使用的是AT91SAM9261EK板子,其他的编译步骤都可参考 文档linux2.6.21
    kernel移植到AT91SAM9261EK
    通过给文档的编译步骤可以得到uImage文件
    最后使用新生成的交叉编译工具,编译busybox-1.00,在使用make menuconfig命令配置选项时,只需要修改 Build Options à
  • Do you want to build Busybox
    with a Cross Compiler?
    (/home/yyl/project1/buildroot/build_arm/staging_dir/bin/arm-linux-)
    其他都采用该档Linux-2.6.20内核移植到AT91RM9200-EK
    制作ramdisk的方法逐步进行,仅有如下步骤需要修改(用红色标记),其他都不用修改:
    a.     
    c.准备lib库文件
    # cd /mnt
    # mkdir lib
    # cd  /home/yyl/project1/buildroot/build_arm/staging_dir
    /arm-linux/lib
    # for file in libc libcrypt libdl libm libpthread libresolv libutil
    > do
    > cp $file-*.so /mnt/lib
    > cp -d $file.so.[*0-9] /mnt/lib
    > done
    # cp -d ld*.so* /mnt/lib
    最后将uImage和ramdisk.gz 通过tftp下载到AT91SAM9261EK板子,启动系统,系统正常运行,可通过这里Linux version 2.6.21
    (yyl@localhost.localdomain) (gcc version 3.4.6)看到gcc为3.4.6, 同时在lib目录下可以看到uClibc为0.9.29.
    从而可以验证该交叉编译工具可以正常工作。到此交叉编译工具制作完成。
    若想详细地了解buildroot可参考该文档
    http://buildroot.uclibc.org/buildroot.html
    首先从此处
    http://buildroot.uclibc.org/downloads/snapshots/
      下载最新的buildroot
    buildroot-snapshot.tar.bz2
    $ tar jxvf buildroot-snapshot.tar.bz2
    $ cd buildroot
    $ make menuconfig
    配置项如下:Target
    Architecture (arm)---à
    Target Architecture variant (arm926t) --à
    Target ABI (OABI) ---à
                Build
    option --à
    此项中只作如下修改
    (arm-linux-gnu) GNU build hostname suffix 
    其余都是默认的选项
    Toolchain type (buildroot toolchain) --à
    Toolchain Options ---à
                  ---Kernel Header Options
                    Kernel Headers (Linux 2.6.21.x
    kernel headers) -à
                  ----uClibc Options
                    uClibc C library version
    (uClinbc0.9.29) -à
    (toolchain/uClibc/uClibc-0.9.29.config)
    uClibc configuration files to
                  [ ] Enable locale/gettext/i8n
    support?
                    Thread library implementation
    (linux threads (stable/old))--à
                  [ ] Thread library debugging
                  -----Binutils options
                      Binutils version (binutils 2.17) --à
                  () Additional binutils options
                  -----Gcc options
                     GCC compiler version (gcc 3.4.6)

        [ ] Enable setjmp /longjmp exceptions?
        () Additional gcc options
        [ ]Build/install c++ compiler and libstdc++?
        [ ]Build/install Objective –C compiler and
    runtime?
        [ ]Build/install Fortran compiler and runtime?
  • Build/install a shared libgcc?
                  -------Ccache Options
                       [ ]Enable ccache support?
                  --------Gdb Options
                       [ ]Build gdb debugger for the Target
          [ ]Build gdb server for the Target
                       [
    ]Build gdb for the Host
        ---------elf2flt 未配置该选项
                  ---------Common Toolchain Options  未配置该选项
         (-Os –pipe) Target Optimizations
  • Include target utils in
    cross toolchain
    Package
    Selection for the target --à
    busybox另外编译,这里未配置
    Target Options
  • ext2 root filesystem 其他为默认配置
    Board Support
    Options ---à
  • Atmel Target 其他未配置
    $ make all
    编译结束后即可在staging_dir目录下看到如下文件:arm-linux arm-linux-uclibc bin include info lib libexec man usr  其中bin中即为相应的交叉编译工具,arm-linux目录下的lib中即为相应的库。
    为了验证该交叉编译工具是否可以正常工作,修改 .bash_profile文件中的内容,注释掉 export PATH=$PATH:/usr/local/arm/3.4.1/bin
    添加上:
    export
    PATH=$PATH:/home/yyl/project1/buildroot/build_arm/staging_dir/bin
    重起系统,通过arm-linux-gcc
    –version命令可检测到当前arm-linux-gcc版本为3.4.6
    修改linux-2.6.21目录下的Makefile文件:
    将 CROSS_COMPILE
    =/usr/local/arm/3.4.1/bin/arm-linux-
    改为:CROSS_COMPILE
    =/home/yyl/project1/buildroot/build_arm/staging_dir/bin/arm-linux-
    由于我使用的是AT91SAM9261EK板子,其他的编译步骤都可参考 文档linux2.6.21
    kernel移植到AT91SAM9261EK
    通过给文档的编译步骤可以得到uImage文件
    最后使用新生成的交叉编译工具,编译busybox-1.00,在使用make menuconfig命令配置选项时,只需要修改 Build Options à
  • Do you want to build Busybox
    with a Cross Compiler?
    (/home/yyl/project1/buildroot/build_arm/staging_dir/bin/arm-linux-)
    其他都采用该档Linux-2.6.20内核移植到AT91RM9200-EK
    制作ramdisk的方法逐步进行,仅有如下步骤需要修改(用红色标记),其他都不用修改:
    a.     
    c.准备lib库文件
    # cd /mnt
    # mkdir lib
    # cd  /home/yyl/project1/buildroot/build_arm/staging_dir
    /arm-linux/lib
    # for file in libc libcrypt libdl libm libpthread libresolv libutil
    > do
    > cp $file-*.so /mnt/lib
    > cp -d $file.so.[*0-9] /mnt/lib
    > done
    # cp -d ld*.so* /mnt/lib
    最后将uImage和ramdisk.gz 通过tftp下载到AT91SAM9261EK板子,启动系统,系统正常运行,可通过这里Linux version 2.6.21
    (yyl@localhost.localdomain) (gcc version 3.4.6)看到gcc为3.4.6, 同时在lib目录下可以看到uClibc为0.9.29.
    从而可以验证该交叉编译工具可以正常工作。到此交叉编译工具制作完成。
  • posted on 2008-11-03 13:24  前进的开拓者  阅读(6100)  评论(1编辑  收藏  举报

    导航