標籤:

buildroot配置過程

$ tar jxvf buildroot-snapshot.tar.bz2

$ cd buildroot

$ make menuconfig

配置項如下:Target Architecture (arm)---à

Target Architecture variant (arm926t) --à

Target ABI (OABI) ---à

Buildoption --à此項中只作如下修改(arm-linux-gnu) GNUbuildhostname suffix其餘都是默認的選項

Toolchain type (buildroot toolchain) --à

Toolchain Options ---à

---Kernel Header Options

Kernel Headers (Linux2.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 (gcc3.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

[ ]Buildgdb debugger for the Target

[ ]Buildgdb server for the Target

[ ]Buildgdb 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 -à[*] ext2rootfilesystem其他為默認配置

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.21kernel移植到AT91SAM9261EK

通過給文檔的編譯步驟可以得到uImage文件

最後使用新生成的交叉編譯工具,編譯busybox-1.00,在使用make menuconfig命令配置選項時,只需要修改BuildOptionsà[*] Do you want tobuildBusybox 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 version2.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


推薦閱讀:

12姓名三才五格配置表(三至十八劃)
10項保命必備配置,你的車上都有嗎?
iis5.1配置.net網站遇到的問題總結
16萬左右可買到這幾款合資中型車,配置不低有面子!
汽車上最實用的十大配置排行榜,你的車有幾個?

TAG:配置 |