溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

OpenWRT中目錄分析與make過(guò)程的示例

發(fā)布時(shí)間:2021-12-18 11:35:28 來(lái)源:億速云 閱讀:294 作者:小新 欄目:互聯(lián)網(wǎng)科技

小編給大家分享一下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/

1.目錄介紹

有幾個(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框架分析]

2.包的make過(guò)程

比如:lua包,mips架構(gòu)。

make步驟:

  1. 在 make 時(shí),make 讀取到 package/utils/lua/Makefile 文件內(nèi)容。

  2. 如果git或svn源,那么就會(huì)在 tmp/dl/ 目錄下將源代碼 clone 下來(lái)。然后,將 clone 下來(lái)的源碼刪除 .git 或 .svn 目錄刪除,然后壓縮成 lua-1.5.1.tar.gz 文件,并復(fù)制到 dl/ 目錄下。

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

  4. 進(jìn)入 build_dir/target-mips_<board>/lua-1.5.1/

  5. ./configure,make,make install。

  6. make install 會(huì)將生成的二進(jìn)制文件安裝到 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,并復(fù)制到 bin/ar71xx/packages/base/ 。

以上是“OpenWRT中目錄分析與make過(guò)程的示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI