溫馨提示×

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

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

openwrt固件如何編譯

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

這篇文章主要為大家展示了“openwrt固件如何編譯”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“openwrt固件如何編譯”這篇文章吧。

第一部分:搭建至此編譯環(huán)境

1、安裝Ubuntu(編譯需要Linux環(huán)境),到其官網(wǎng)下載,版本根據(jù)自己所需選擇即可??梢赃x擇安裝到虛擬機(jī)或者物理機(jī),圖形化安裝而且是中文版,連安裝都搞不定的,可以關(guān)閉本頁(yè)面了;

2、切記不要改動(dòng)軟件源,同時(shí)按住Ctrl + Alt + T,調(diào)出終端;

3、逐條輸入下列命令(及時(shí)驗(yàn)證是否安裝成功):

sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common
sudo apt-get install libssl-dev
sudo apt-get install libssl0.9.8

至此編譯環(huán)境搭建完成。

第二部分:下載OpenWrt源碼并編譯

OpenWrt源碼分兩種,一種是最新但不是最穩(wěn)定的Trunk開發(fā)版,一種是最穩(wěn)定的Backfire版,建議下載官方源碼。下載前先在本地創(chuàng)建文件夾:

mkdir openwrt
sudo chmod 777 openwrt
cd openwrt

選擇你想要的版本然后執(zhí)行下載命令,下載結(jié)束會(huì)顯示版本號(hào):

Trunk版下載命令:

svn co svn://svn.openwrt.org/openwrt/trunk/

Backfire版下載命令:

svn co svn://svn.openwrt.org/openwrt/branches/backfire/

更新擴(kuò)展,安裝擴(kuò)展:

注:根據(jù)教程一步步走下來都是順利通過,但是走到下面更新擴(kuò)展的時(shí)候,出現(xiàn)了問題。有部分的軟件更新不了,我也找了很多其他教程,其他教程都跟這個(gè)教程大同小異。我看了feeds.conf.default這個(gè)配置文件,發(fā)現(xiàn)更新拓展的SVN鏈接有g(shù)oogle的地址,我個(gè)人猜測(cè)鏈接被屏閉了,導(dǎo)致這一步報(bào)錯(cuò)。

./scripts/feeds update -a
./scripts/feeds install -a

注:如果不是剛下載的源碼,為保持代碼為最新狀態(tài),應(yīng)定期運(yùn)行svn update命令更新源碼。

測(cè)試編譯環(huán)境:
 

make defconfig
make prereq

到這里就可以開始編譯自己的固件了。進(jìn)入定制界面:

make menuconfig

編譯選項(xiàng):

根據(jù)路由器情況,選擇 Target System 和 Subtarget。如意云一代和極壹S的 Target System 均為 Ralink RT288x/RT3xxx 。對(duì)于Subtarget ,前者為 MT7620n based boards ,后者為 MT7620a based boards。其他選項(xiàng)根據(jù)個(gè)人喜好選擇。一般來說要選中LuCI界面,選中中文語言包等等。

開始編譯:

執(zhí)行export FORCE_UNSAFE_CONFIGURE=1 && make -j3 V=s 進(jìn)行編譯。-j后面的數(shù)字是電腦物理CPU數(shù)量加一。V=s可以顯示出編譯的詳細(xì)信息。首次編譯大概需要幾個(gè)小時(shí)的時(shí)間,編譯時(shí)一定要聯(lián)網(wǎng)。

錯(cuò)誤排查:

編譯失敗,一般有兩種情況:
1.代碼下載鏈接失效。首次編譯時(shí),編譯程序會(huì)實(shí)時(shí)從網(wǎng)上下載一些軟件包的代碼。如果下載鏈接失效,編譯就會(huì)失敗。這時(shí)需要根據(jù)軟件包的名稱,從網(wǎng)上自行下載,然后放在 openwrt/dl/ 目錄下,執(zhí)行 export FORCE_UNSAFE_CONFIGURE=1 && make -j3 V=s繼續(xù)編譯即可。
2.軟件包自身有問題。這時(shí)重新執(zhí)行 make menuconfig ,取消對(duì)應(yīng)軟件包選中即可。這種情況比較少見,目前已知的有 tor 等。

編譯成功,但沒有生成固件。這種情況一般是因?yàn)檫x中的軟件包過多,導(dǎo)致固件大小超過16MB。重新執(zhí)行 make menuconfig,去掉一些軟件包,重新執(zhí)行編譯即可。得到固件。在排除了所有錯(cuò)誤后,現(xiàn)在終于得到了固件。對(duì)于如意云RY-1,固件在 openwrt/bin/ramips 目錄下,形如
openwrt-ramips-mt7620n-rt-n14u-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-mlw221-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wr8305rt-squashfs-sysupgrade.bin


 


 

      以上是網(wǎng)上的教程,其實(shí)教程大多數(shù)都是正確,就是更新擴(kuò)展這一步過不去,后來我在openwrt的官網(wǎng)發(fā)現(xiàn)他們提供github下載源碼,我把SVN下載源碼換成的git下載:

安裝git軟件包:

sudo apt-get update
sudo apt-get install git-core build-essential

獲取openwrt源碼:

git clone git://git.openwrt.org/openwrt.git

再執(zhí)行更新擴(kuò)展,安裝擴(kuò)展:

注:在github下載源碼的feeds.conf.default里面的更新擴(kuò)展鏈接已經(jīng)沒有指向google,基本都是指向github,所以更新擴(kuò)展這一步也能順利執(zhí)行了

./scripts/feeds update -a
./scripts/feeds install -a

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

向AI問一下細(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