OpenWrt目錄結構及編譯過程

2021-09-29 08:41:44 字數 1655 閱讀 4000

openwrt**有8個固定的頂層目錄以及7個編譯時建立的臨時目錄

docs

docs目錄。用於存放開發文件,編譯時不需要。包含了整個宿主機的檔案原始碼的介紹, 裡面還有makefile為目標系統生成docs.使用make -c docs/可以為目標系統生成文件.

target

針對不同的平台有不同的**特性。target/linux目錄下按照平台進行目錄劃分,裡面包括了針對各種平台標準核心的補丁及特殊配置等。

config

config目錄是編譯配置檔案目錄,是openwrt15.05的新增目錄,是將一些編譯選項配置檔案放在這裡,包含全域性編譯設定、開發人員編譯設定、目標檔案格式設定和核心編譯設定等4部分。

scripts

toolchain

交叉編譯工具鏈相關,編譯器和c庫等,例如包含編譯工具gcc和glibc庫。

include

openwrt的makefile都存放在這裡。各種 *.mk 。這裡的檔案是在主makefile裡包含的的,類似於庫檔案.這些檔案定義了編譯過程.

package

各種功能的軟體包,軟體包僅包含makefile和修改補丁及配置檔案。其中makefile包含源**真正的位址及md5值openwrt社群的修改**以補丁包形式管理,package只儲存一些常用的軟體包。

tools

通用命令,用來生成韌體的輔助工具,如打補丁工具path、編譯工具make及squashfs等。

每個makefile當中都有一句$(eval $(call hostbuild)),這表明編譯這個工具是為了在主機上使用的.

其他檔案bin

儲存編譯完成後的二進位制檔案,包括:完整的bin檔案,所有的ipk檔案.

feeds

build_dir

編譯中間檔案目錄。這個資料夾中包含3個子資料夾:

staging_dir

編譯安裝目錄。檔案安裝到這裡,並由這裡的檔案生成最終的編譯成果。

tmp從名字來看,是臨時資料夾.在編譯過程中,有大量中間臨時檔案需要儲存,都是在這裡.

logs

如果開啟了針對開發人員log選項,則將編譯log儲存在這個目錄下,否則這個目錄不會建立

一旦 openwrt buildroot 經過了正確的配置,比如目標平台和架構都已經指定,使用者空間軟體包已選擇,openwrt buildroot

將會通過下面 6 個步驟來產生韌體 image:

創 建 階 段 性 目 錄 ( staging_dir/ )。 交叉編譯 工 具 鏈 將 會 被 安 裝 到 這 裡(比如 toolchainmipsel_24kec+dsp_gcc-4.8-linaro_uclibc-0.9.33.2/)。如果你要使用這個交叉編譯工具鏈編譯特定的程

序,你可以在這個目錄找到交叉編譯工具。嵌入式根檔案系統也會安裝到 staging_dir/目錄,比如:target-mipsel_24kec+dsp_uclibc-0.9.33.2/root-ramips;

建立編譯目錄(build_dir/)。所有使用者空間工具會在這裡編譯;

建立目標根檔案系統目錄(比如 build_dir/target-mipsel_24kec+dsp_uclibc-0.9.33.2/root-ramips/)以及

根檔案系統框架。

安裝使用者空間軟體包到根檔案系統以及壓縮整個檔案系統為適當的格式

OpenWrt 目錄結構

tool和toolchain目錄 是編譯韌體image,獲取核心標頭檔案,二進位制編譯器和偵錯程式,c庫檔案,需要用到的通用工具。include目錄 編譯時的標頭檔案索引,是一些編譯用的通用指令碼和include巨集定義。比較重要的包括package.mk檔案 幾乎每個package目錄中的模組的m...

OpenWrt目錄結構簡介

openwrt目錄結構說明 1.bin bin目錄存放的是一些輸出檔案,主要是存放openwrt編譯好的開發環境,比如toolchain,sdk,image製作工具,還存放一些package安裝包 ipk包 openwrt imagebuilder bcm53xx.linux x86 64.tar....

OpenWrt原始碼目錄結構

tools和toolchain目錄 包含了一些通用命令,用來生成韌體,編譯器,和c庫.build dir host目錄 是乙個臨時目錄,用來儲存不依賴於目標平台的工具.build dir toolchain 目錄 用來儲存依賴於指定平台的編譯鏈.只是編譯檔案存放目錄無需修改.build dir ta...