這次講講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)注明出處