OpenWRT開發之——目錄分析與make過程

OpenWrt 目錄下的 trunk 結構以下linux

[trunk]$ ls
bin/         Config.in  feeds.conf.default  rules.mk     tmp/
BSDmakefile  dl/        include/            scripts/     toolchain/
build_dir/   docs/      LICENSE             package/     staging_dir/ tools/
config/      feeds/     Makefile            README       target/


1.目錄介紹

有幾個重要目錄:package, target, build_dir, staging_dir, bin, dl, ...git

---include 目錄是存放 *.mk 文件。這裏的文件上是在Makefile裏被include的
shell

---build_dir/host 目錄是創建工具鏈時的臨時目錄網絡

---build_dir/toolchain-<arch>* 對應硬件的工具鏈的目錄架構

---staging_dir/toolchain-<arch>*  是工具鏈的安裝位置框架

---target/linux/<platform> 目錄裏面是各個平臺(arch)的相關代碼svn

---target/linux/<platform>/config-3.10 文件就是配置文件了工具

---dl 目錄是'download'的縮寫, 在 編譯前期,須要從網絡下載的數據包都會放在這個目錄下,這些軟件包的一個特色就是,會自動安裝在所編譯的固件中,也就是咱們make menuconfig的時候,爲固件配置的一些軟件包。若是咱們須要更改這些源碼包,只須要將更改好的源碼包打包成相同的名字放在這個目錄下,而後開始編 譯便可。編譯時,會將軟件包解壓到build_dir目錄下。ui

---build_dir/ 目錄下進行解壓,編譯和打補丁等。lua

---package/ 目錄裏面包含了咱們在配置文件裏設定的全部編譯好的軟件包。默認狀況下,會有默認選擇的軟件包。

在openwrt中ipk就是一切, 咱們能夠使用:

$ ./scripts/feeds update #來對軟件包進行更新.
$ ./scripts/feeds search nmap #查找軟件包'nmap'
Search results in feed ’packages’: 
nmap       Network exploration and/or security auditing utility
$ ./scripts/feeds install nmap #安裝'nmap'這個軟件


---feeds/packages 爲執行./scripts/feeds install 以後的package。

---bin 目錄下生成了不少bin文件,根據不一樣的平臺來區分。

---bin/<platform>/package 目錄裏面有不少ipk後綴的文件,都是package目錄下的源碼在build_dir目錄下編譯後的生成的結果。

注:以上摘自:[openwrt框架分析]


2.包的make過程

好比:lua包,mips架構。

make步驟:

  1. 在 make 時,make 讀取到 package/utils/lua/Makefile 文件內容。

  2. 若是git或svn源,那麼就會在 tmp/dl/ 目錄下將源代碼 clone 下來。而後,將 clone 下來的源碼刪除 .git 或 .svn 目錄刪除,而後壓縮成 lua-1.5.1.tar.gz 文件,並複製到 dl/ 目錄下。

  3. 在編譯前段,將 dl/ 目錄下的 lua-1.5.1.tar.gz 文件解壓到 build_dir/target-mips_<board>/ 目錄下。

  4. 進入 build_dir/target-mips_<board>/lua-1.5.1/

  5. ./configure,make,make install。

  6. make install 會將生成的二進制文件安裝到 build_dir/target-mips_<board>/lua-1.5.1/ipkg-ar71xx/ 目錄下。

  7. 最後將 build_dir/target-mips_<board>/lua-1.5.1/ipkg-ar71xx/ 打成包成lua-5.1.5-1_ar71xx.ipk,並複製到 bin/ar71xx/packages/base/ 。

相關文章
相關標籤/搜索