openwrt 代碼框架分析

這次講講openwrt的結(jié)構(gòu).

1.代碼上來(lái)看有幾個(gè)重要目錄package, target, build_root, bin, dl....

---build_dir/host目錄是建立工具鏈時(shí)的臨時(shí)目錄

---build_dir/toolchain-是對(duì)應(yīng)硬件的工具鏈的目錄

---staging_dir/toolchain-則是工具鏈的安裝位置

---target/linux/目錄里面是各個(gè)平臺(tái)(arch)的相關(guān)代碼

---target/linux//config-3.10文件就是配置文件了

---dl目錄是'download'的縮寫(xiě), 在編譯前期,需要從網(wǎng)絡(luò)下載的數(shù)據(jù)包都會(huì)放在這個(gè)目錄下,這些軟件包的一個(gè)特點(diǎn)就是,會(huì)自動(dòng)安裝在所編譯的固件中,也就是我們make menuconfig的時(shí)候,為固件配置的一些軟件包。如果我們需要更改這些源碼包,只需要將更改好的源碼包打包成相同的名字放在這個(gè)目錄下,然后開(kāi)始編譯即可。編譯時(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è)軟件

$ make package/symlinks? //估計(jì)意思是更新軟件源之類(lèi)的

---bin目錄下生成了很多bin文件,根據(jù)不同的平臺(tái)來(lái)區(qū)分。另外bin//package目錄,里面有很多ipk后綴的文件,都是package目錄下的源碼在build_dir目錄下編譯后的生成的結(jié)果。

2.新建自己的packages

對(duì)于自己新建的package,而這個(gè)package又不需要隨固件一起安裝,換句話說(shuō),就是可以當(dāng)做一個(gè)可選軟件包的話。我們可以利用我們的SDK環(huán)境來(lái)單獨(dú)編譯,編譯后會(huì)生成一個(gè)ipk的文件包。然后利用 opkg install xxx.ipk 來(lái)安裝這個(gè)軟件。

下面具體說(shuō)下,如何編譯一個(gè)helloword的軟件包。

(1)首先,編寫(xiě)helloworld程序

編寫(xiě)helloworld.c

/****************

* Helloworld.c

* The most simplistic C program ever written.

* An epileptic monkey on crack could write this code.

*****************/

#include

#include

int main(void)

{

printf("Hell! O' world, why won't my code compile?\n\n");

return 0;

}

編寫(xiě)Makefile文件


......本站只呈現(xiàn)部分內(nèi)容,查看完整文章請(qǐng)到WiFiDog官網(wǎng)社區(qū)http://www.wifidog.pro/2015/08/17/openwrt-%E6%A1%86%E6%9E%B6.html,轉(zhuǎn)載請(qǐng)注明出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容