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

2021-08-19 18:05:02 字數 3524 閱讀 4444

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 使用

qt4 ;xconfig 使用

glib2, gtk2 and glade2 ;gconfig 使用

target

architecture

---> 用於選擇目標的架構,我這裡選擇arm (little endian)(s3c2440可以執行在小端模式和大端模式,預設是小端模式)

target

architecture

variant

---> 核心型別(arm920t)

target

abi (eabi) ---> 目標使用的應用程式二進位制介面,其中有兩個選擇

①eabi(embedded

abi) 我們選eabi.

②oabi(old

abi)

toolchain

---> 工具鏈選項

toolchain

type

(buildroottoolchain)

---> 工具鏈型別,這裡我們沒使用外部buildroot,預設 .

*** kernel

header

options ***

kernel

headers (linux

3.18.x kernel headers) --->

c library (glibc) ---> 有uclibc/glibc等選項,此處我選擇glibc,後面會解釋原因

glibc version (2.20) --->

*** binutils

options ***

binutils

version (binutils 2.24) --->

() additional binutils options

*** gcc

options ***

gcc compiler version (gcc 4.8.x) --->

() additional gcc options

[*] enable

c++ support

[ ] enable compiler openmp support

[ ] enable libmudflap support

[ ] enable graphite support

[ ] build cross gdb for the host

[ ] purge unwanted locales

() generate locale data

[ ] copy gconv libraries

[*] enable

mmu support

() target

optimizations

() target linker options

使用make命令之後會執行下面幾個步驟:

②配置,編譯和安裝cross-compiling toolchain(如果使用內部工具鏈),或者輸出乙個toolchain(如果乙個外部工具鏈使用)

③構建/安裝杯選擇的目標包

④構建核心映象(如果有選擇)

⑤構建啟動**映象(如果有選擇)

⑥建立根檔案系統(如果有選擇)

build/ — 存放所有的元件除了構建交叉編譯工具鏈的元件 , 在這個目錄裡面每乙個功能對應乙個子目錄存放他們各自的元件.

staging/ — 包含乙個類似於根檔案系統等級層次的層級 . 這個目錄包含了 安裝的交叉編譯工具鏈 和 所有被選擇用於目標板的所有使用者空間包.

target/ — 包含了根檔案系統,但不能用於你的開發板的

host/ — 包含了我們需要的交叉編譯工具集

新增上: exportpath=$path

:/home/chad/works/binutils/buildroot-

2015.02/output/host/usr/bin

儲存之後,執行以下命令使其生效:

# source/etc/profile

c library (uclibc)  --->  有uclibc/glibc等選項,此處如果選擇uclibc
#hexdump -c hello
也是以openssh為例子,如果我們不想重新編譯,只想重新配置,也就是./configure, 

我們可以直接刪除 output/build/openssh-version 目錄下的 .stamp_configured 

如果你只是想重新安裝可以刪除.stamp_target_install 

重新make可以刪除.stamp_built

target architecture

---> 目標的架構,s3c2440 與 at9260 都是arm,這個相同

target architecture variant ---> 核心型別(s3c2440[arm920t] 而 at91sam9260[arm926ej-s],但是配置時選擇arm926t),此處不同

target abi (eabi) ---> 目標使用的應用程式二進位制介面,此處不同

①eabi(embedded abi) mini2440的選擇。

②oabi(old abi) at91sam9260的選擇

kernel headers (linux 3.18.x kernel headers) ---> 此處差別影響不大

c library (glibc) ---> 都選擇的是glibc

glibc version (2.20) ---> 版本不一樣

使用buildroot建立交叉編譯工具

使用buildroot建立交叉編譯工具 若想詳細地了解 buildroot 可參考該文件 首先從此處 配置項如下 target architecture arm target architecture variant arm926t target abi oabi build option 此項中只...

buildroot使用詳解

0 為什麼要使用buildroot?讓我們的工作效率成百倍的提公升。1 獲取buildroot 2 配置buildroot 將原始碼包複製到 目錄下,並解壓tar xvf buildroot 2015.02.tar.gz 進入目錄,執行配置命令 cd buildroot 2015.02 執行 mak...

使用buildroot搭建linux檔案系統

2 配置buildroot 將原始碼包複製到 opt目錄下,並解壓 tar xvf buildroot 2015.02.tar.gz 進入目錄,執行配置命令 cd opt buildroot 2015.02 make menuconfig 配置介面如下 2.1 進入target options 將t...