使用buildroot建立交叉編譯工具

2021-05-23 22:49:29 字數 4178 閱讀 4330

使用buildroot建立交叉編譯工具

若想詳細地了解

buildroot

可參考該文件

首先從此處

配置項如下:

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 ([email protected]) (gcc version 3.4.6)

看到gcc為3.4.6, 同時在lib目錄下可以看到uclibc

為0.9.29.

從而可以驗證該交叉編譯工具可以正常工作。到此交叉編譯工具製作完成。

使用buildroot建立自己的交叉編譯工具鏈

1.build tools gcc version 2.95 orany later g version 2.95 orany later python version 2.6or 2.7 2.dependencies packages 下面的自己根據需要安裝 ncurses5 menuconfig...

建立交叉編譯環境

這是arm linux的,還有arm elf的,不知道什麼區別.解壓 mkdir arm cd arm mv path to arm linux cross.tar.bz2 tar jxvfarm linux cross.tar.bz2 修改path gedit bashrc 新增 export p...

建立交叉編譯環境

建立交叉編譯環境 在 linux平台下,要為開發板編譯核心,圖形介面qtopia,bootloader,還有其他一些應用程式,均需要交叉編譯工具鏈。之前的系統,要使用不同的編譯器版本才能正常編譯各個部分,因此要在開發過程不斷切換設定,這十分不利於初學者使用,也降低了開發的效率 自從linux 2.6...