當前位置:編程學習大全網 - 源碼下載 - 如何編譯OpenWrt

如何編譯OpenWrt

搭建編譯環境。編譯建議在Linux下進行。我的系統是Linux mint 17,執行以下命令,構建編譯環境:

sudo apt-get update

sudo apt-get install git-core build-essential

獲取openwrt源碼。在當前用戶主目錄下執行

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

等待代碼下載。結束後,目錄下會出現openwrt文件夾。

配置軟件源。進入openwrt目錄,執行

./scripts/feeds update -a

./scripts/feeds install -a

檢查編譯環境是否完整:

make defconfig

make prereq

根據提示信息安裝需要的軟件包。如果提示類似

“tmp/.config-package.in:22022:warning: multi-line strings not supported”

的信息,打開 openwrt/tmp/.config-package.in,定位到對應行,添上丟掉的壹個引號就可以了。

編譯選項:

執行 make menuconfig,根據路由器情況,選擇 Target System 和 Subtarget。如意雲壹代和極壹S的 Target System 均為 Ralink RT288x/RT3xxx 。對於Subtarget ,前者為 MT7620n based boards ,後者為 MT7620a based boards。

其他選項根據個人喜好選擇。壹般來說要選中LuCI界面,選中中文語言包等等。

開始編譯:

執行 make -j2 V=s 進行編譯。-j後面的數字是電腦物理CPU數量加壹。V=s可以顯示出編譯的詳細信息。首次編譯大概需要幾個小時的時間。

錯誤排查:

編譯失敗,壹般有兩種情況:

1.代碼下載鏈接失效。首次編譯時,編譯程序會實時從網上下載壹些軟件包的代碼。如果下載鏈接失效,編譯就會失敗。這時需要根據軟件包的名稱,從網上自行下載,然後放在 openwrt/dl/ 目錄下,執行 make -j2 V=s 繼續編譯即可。

2.軟件包自身有問題。這時重新執行 make menuconfig ,取消對應軟件包選中即可。這種情況比較少見,目前已知的有 tor 等。

編譯成功,但沒有生成固件。這種情況壹般是因為選中的軟件包過多,導致固件大小超過16MB。重新執行 make menuconfig,去掉壹些軟件包,重新執行編譯即可。

得到固件。在排除了所有錯誤後,現在終於得到了固件。對於如意雲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

等等。

  • 上一篇:求QQ華夏戰魂問答全集?
  • 下一篇:國家推行電子發票,對於費用報銷,怎麽避免重復報銷
  • copyright 2024編程學習大全網