您好,登錄后才能下訂單哦!
小編給大家分享一下OpenWRT中目錄分析與make過(guò)程的示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
OpenWrt 目錄下的 trunk 結(jié)構(gòu)如下:
[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/
有幾個(gè)重要目錄:package, target, build_dir, staging_dir, bin, dl, ...
---include 目錄是存放 *.mk 文件。這里的文件上是在Makefile里被include的
---build_dir/host 目錄是建立工具鏈時(shí)的臨時(shí)目錄
---build_dir/toolchain-<arch>* 對(duì)應(yīng)硬件的工具鏈的目錄
---staging_dir/toolchain-<arch>* 是工具鏈的安裝位置
---target/linux/<platform> 目錄里面是各個(gè)平臺(tái)(arch)的相關(guān)代碼
---target/linux/<platform>/config-3.10 文件就是配置文件了
---dl 目錄是'download'的縮寫, 在 編譯前期,需要從網(wǎng)絡(luò)下載的數(shù)據(jù)包都會(huì)放在這個(gè)目錄下,這些軟件包的一個(gè)特點(diǎn)就是,會(huì)自動(dòng)安裝在所編譯的固件中,也就是我們make menuconfig的時(shí)候,為固件配置的一些軟件包。如果我們需要更改這些源碼包,只需要將更改好的源碼包打包成相同的名字放在這個(gè)目錄下,然后開始編 譯即可。編譯時(shí),會(huì)將軟件包解壓到build_dir目錄下。
---build_dir/ 目錄下進(jìn)行解壓,編譯和打補(bǔ)丁等。
---package/ 目錄里面包含了我們?cè)谂渲梦募镌O(shè)定的所有編譯好的軟件包。默認(rèn)情況下,會(huì)有默認(rèn)選擇的軟件包。
在openwrt中ipk就是一切, 我們可以使用:
$ ./scripts/feeds update #來(lái)對(duì)軟件包進(jìn)行更新.
$ ./scripts/feeds search nmap #查找軟件包'nmap' Search results in feed ’packages’: nmap Network exploration and/or security auditing utility
$ ./scripts/feeds install nmap #安裝'nmap'這個(gè)軟件
---feeds/packages 為執(zhí)行./scripts/feeds install 之后的package。
---bin 目錄下生成了很多bin文件,根據(jù)不同的平臺(tái)來(lái)區(qū)分。
---bin/<platform>/package 目錄里面有很多ipk后綴的文件,都是package目錄下的源碼在build_dir目錄下編譯后的生成的結(jié)果。
注:以上摘自:[openwrt框架分析]
比如:lua包,mips架構(gòu)。
make步驟:
在 make 時(shí),make 讀取到 package/utils/lua/Makefile 文件內(nèi)容。
如果git或svn源,那么就會(huì)在 tmp/dl/ 目錄下將源代碼 clone 下來(lái)。然后,將 clone 下來(lái)的源碼刪除 .git 或 .svn 目錄刪除,然后壓縮成 lua-1.5.1.tar.gz 文件,并復(fù)制到 dl/ 目錄下。
在編譯前段,將 dl/ 目錄下的 lua-1.5.1.tar.gz 文件解壓到 build_dir/target-mips_<board>/ 目錄下。
進(jìn)入 build_dir/target-mips_<board>/lua-1.5.1/
./configure,make,make install。
make install 會(huì)將生成的二進(jìn)制文件安裝到 build_dir/target-mips_<board>/lua-1.5.1/ipkg-ar71xx/ 目錄下。
最后將 build_dir/target-mips_<board>/lua-1.5.1/ipkg-ar71xx/ 打成包成lua-5.1.5-1_ar71xx.ipk,并復(fù)制到 bin/ar71xx/packages/base/ 。
以上是“OpenWRT中目錄分析與make過(guò)程的示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。