Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2131408
  • 博文数量: 288
  • 博客积分: 10594
  • 博客等级: 上将
  • 技术积分: 3469
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-27 19:27
文章分类

全部博文(288)

文章存档

2012年(4)

2011年(30)

2010年(40)

2009年(32)

2008年(71)

2007年(79)

2006年(32)

分类: LINUX

2007-12-21 02:54:30

若想详细地了解buildroot可参考该文档

 

首先从此处   下载最新的buildroot

 

$ 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

 

最后将uImageramdisk.gz 通过tftp下载到AT91SAM9261EK板子启动系统系统正常运行可通过这里Linux version 2.6.21 (yyl@localhost.localdomain) (gcc version 3.4.6)看到gcc3.4.6, 同时在lib目录下可以看到uClibc0.9.29.

 

从而可以验证该交叉编译工具可以正常工作。到此交叉编译工具制作完成。

若想详细地了解buildroot可参考该文档

 

首先从此处   下载最新的buildroot

 

$ 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

 

最后将uImageramdisk.gz 通过tftp下载到AT91SAM9261EK板子启动系统系统正常运行可通过这里Linux version 2.6.21 (yyl@localhost.localdomain) (gcc version 3.4.6)看到gcc3.4.6, 同时在lib目录下可以看到uClibc0.9.29.

 

从而可以验证该交叉编译工具可以正常工作。到此交叉编译工具制作完成。
阅读(3121) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~