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:配置 |