$ 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 tobuild 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库文件
最后将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./buildroot.html
|
|
来自: dwlinux_gs > 《Buildroot》