如何編譯OpenWrt(如何為一個新路由器編譯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
等等。
二、如何為一個新路由器編譯openwrt
Openwrt 官方正式的發行版是已編譯好了的映像文件(后綴名bin或trx、trx2),此映像文件可從Openwrt官方網站的下載頁面中輕松獲取到,連接地址為 OpenWrt官方網站。
這些編譯好的映像文件是基于默認的配置設置,且只針對受支持的平臺或設備的。
因此,為什么要打造一個自己的映像文件,理由有以下四點:
您想擁有一個個性化的配置OpenWrt(彰顯個性,在朋友圈子里顯擺顯擺,開個玩笑);
您想在實驗性的平臺上測試OpenWrt;
您參與測試或參與開發OpenWrt的工作;
或者,最簡單的目的就是為了保持自己的Openwrt為最新版本;
若想實現上述目的,其實很簡單,按下述文字即可成功編譯出一個您的Openwrt來。
準備工作
在開始編譯Openwrt之前需要您做些準備工作;與其他編譯過程一樣,類似的編譯工具和編譯環境是必不可少的:
一個構建OpenWrt映像的系統平臺,簡單說就是準備一個操作系統(比如Ubuntu、Debian等);
確保安裝了所需的依賴關系庫, (在debian系統中就是安裝各種需要的軟件包)
OpenWrt源代碼副本
開機登陸到支持編譯Openwrt的操作系統(廢話了)。
實體機或者虛擬機(Vmware 或者 Qemu)里的操作系統都行,這里推薦使用Linux系統。
bsd和mac osx系統也可以編,但不推薦,且未驗證是否可編譯成功。
下文假定您使用的是Debian操作系統,使用 apt-get 來管理包. 替代的選擇是 Ubuntu (分支 Kubuntu, Xubuntu 等即可)。
第二步, 就是安裝所需要的各種軟件包, 包括編譯器,解壓工具,特定的庫等. 這些工作可以簡單的通過鍵入以下命令 (通常需要root 或者是 sudo 權限),以root權限安裝下列軟件包(可能并不完整,會有提示,提示缺少即裝就可以了):