openWRT自學---針對backfire版本的主要目錄和文件的做用的分析整理

特別說明:要編譯backfire版本,必定要經過svn下載:svn co svn://svn.openwrt.org/openwrt/branches/backfire,而不能使用http://downloads.openwrt.org/backfire/10.03/中的源碼包:backfire_10.03_source.tar.bz2linux

結合文檔《OpenWrt_Dev_Tutorial.pdf》以及本身實際編譯backfire的分析,得出以下結論:git

基於backfire-10.03版本,在make以後,獲得的目錄組成爲:網絡

bin目錄:make以後的新增目錄,用來存放make的結果。好比我是用來編譯BRCM47xx的,則此目錄中會有:brcm47xx子目錄,其中又包含:packages子目錄(裏面含有各類.ipk文件,以及一個Packages文件用來介紹此目錄中的每一個ipk文件)和能夠燒入CPE的openwrt-brcm47xx-squashfs.trx文件。 疑問是:我只是編譯了BRCM47xx,爲什麼bin目錄下還有相似:openwrt-wrt54g3gv2-vf-squashfs.bin這類的文件?svn

 

build_dir目錄:make以後的新增目錄。where all user--‐space tools will be cross--‐compiled. 從名字能夠看出,此目錄是用來進行編譯的場所。這裏面所包含的全部內容,都是dl目錄下所存放的源碼包解壓縮並編譯的結果。那麼能夠得出結論:dl裏面下載的源碼包受feeds.conf.default和package目錄中各個子目錄的Makefile控制,而真正要被編譯的就被放到build_dir目錄中解壓縮並進行編譯。--- 那麼,應該也能夠得出結論:若是不想下載,而想直接編譯源碼包,那就把源碼包放到build_dir目錄中就能夠了。只是此目錄中,根據dl目錄下各個源碼壓縮包的歸屬性質,將它們分爲四個子目錄進行存放和編譯:
    host目錄:存放與目標對象無關的源碼包,並編譯之。固然,還有一些目錄在dl中找不到對應項(好比:firmware-utils,patch-cmdline等等,這些從哪裏來的?待查)
    linux-brcm47xx目錄:與linux內核版本有關的源碼包並編譯之。這裏面還包含了linux內核:linux-2.6.32.10
    target-mipsel_uClibc-0.9.30.1目錄:與目標設備有關的源碼包的編譯結果。
    toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1目錄:存放用於特定目標的體系結構的工具鏈目錄。此目錄中包含有:binutils,gcc,uClibc,甚至還有linux內核(並且是源文件,沒有編譯過的;爲什麼這裏再次重複出現?)dl目錄:即download目錄。也是make以後的新增目錄。裏面是根據package目錄或者feeds.conf.default文件要求,在make的時候從網絡上下載的源碼包工具

 

docs目錄:源碼包就有的。即文檔。這個也是須要編譯的。ui

feeds目錄:make以後的新增目錄。裏面存放的就是按照feeds.conf.default文件中列舉的要處理的文件,所展開獲得的目錄。目錄中存放的東西,和package目錄中大體類似。指導如何下載和編譯對應模塊的。spa

include目錄:源碼包就有。是一些編譯用的通用腳本和include宏定義。比較重要的包括:package.mk文件(幾乎每一個package目錄中的模塊的makefile中都提到它)對象

package目錄:源碼包就有。裏面是隨openwrt主版本就提供的包。除了用戶態的N多模塊外,還有kernel目錄,用來定義內核模塊。---疑問:linux內核是在哪一個目錄中指定下載的?ip

scripts目錄:源碼包就有。存放各種腳本的目錄。好比:feeds腳本,使用.scripts/feeds update -a或者.scripts/feeds install -a,就能夠對feeds.conf.default中列舉的文件進行處理了。文檔

staging_dir目錄:make以後的新增目錄。where the cross-­‐compilation tools will be installed. 我猜想此目錄的做用是:build_dir是編譯的地方,那麼這裏就是把build_dir的結果放在了staging_dir目錄了---待確認

target目錄:源碼包就有的。用來指導如何編譯firmware和內核,以及sdk的

tmp目錄:操做make menuconfig後產生的臨時目錄

toolchain目錄:源碼包就有的。指導如何下載,編譯toolchain的

tools目錄:源碼包就有的。指導如何下載,編譯tools的

BSDmakefile文件:

Config.in文件:

feeds.conf.default文件:feeds下載的指導文件

LICENSE文件:

Makefile文件:make命令的總入口

README文件:

rules.mk文件:定義了一系列在make時使用的規則

.config隱藏文件:make menuconfig後的config結果的存放文件。

.config.old隱藏文件:

.gitignore隱藏文件:

相關文章
相關標籤/搜索