這次講講openwrt的結構.
1.代碼上來看有幾個重要目錄package, target, build_root, bin, dl....
---build_dir/host目錄是建立工具鏈時的臨時目錄
---build_dir/toolchain-是對應硬件的工具鏈的目錄
---staging_dir/toolchain-則是工具鏈的安裝位置
---target/linux/目錄里面是各個平臺(arch)的相關代碼
---target/linux//config-3.10文件就是配置文件了
---dl目錄是'download'的縮寫, 在編譯前期均芽,需要從網絡下載的數據包都會放在這個目錄下,這些軟件包的一個特點就是掀宋,會自動安裝在所編譯的固件中仲锄,也就是我們make menuconfig的時候,為固件配置的一些軟件包儒喊。如果我們需要更改這些源碼包,只需要將更改好的源碼包打包成相同的名字放在這個目錄下怀愧,然后開始編譯即可。編譯時掸驱,會將軟件包解壓到build_dir目錄下。
---而在build_dir/目錄下進行解壓毕贼,編譯和打補丁等。
---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'這個軟件
$ make package/symlinks? //估計意思是更新軟件源之類的
---bin目錄下生成了很多bin文件,根據不同的平臺來區(qū)分枉氮。另外bin//package目錄,里面有很多ipk后綴的文件聊替,都是package目錄下的源碼在build_dir目錄下編譯后的生成的結果。
2.新建自己的packages
對于自己新建的package惹悄,而這個package又不需要隨固件一起安裝,換句話說暂殖,就是可以當做一個可選軟件包的話。我們可以利用我們的SDK環(huán)境來單獨編譯央星,編譯后會生成一個ipk的文件包。然后利用 opkg install xxx.ipk 來安裝這個軟件惫东。
下面具體說下,如何編譯一個helloword的軟件包廉沮。
(1)首先,編寫helloworld程序
編寫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;
}
編寫Makefile文件
......本站只呈現部分內容叁幢,查看完整文章請到WiFiDog官網社區(qū)http://www.wifidog.pro/2015/08/17/openwrt-%E6%A1%86%E6%9E%B6.html坪稽,轉載請注明出處