網頁

2013年7月24日 星期三

安裝 OpenWrt 及編譯 TP-Link TL-WR703N 路由器固件步驟

安裝 OpenWrt 及編譯 TP-Link TL-WR703N 路由器固件步驟: 

安裝完 Debian 7.1 GNU/Linux 後,便可以安裝 OpenWrt OpenWrt 源程式碼可以通過版本控制工具 SVN 或者 GIT 來得到,OpenWrt 就是把一套開發完整的 Linux 裝到路由器上,用戶可以自定義功能來製作固件 (make menuconfig),並且附帶 3000左右的套裝軟體 (編譯後大約 5GB),可以自由選擇,使路由器變得更有彈性或者提供更多的擴展功能,還希望透過 OpenWrt 加深 Linux 系統的認識。

OpenWrt 網頁
步驟1Debian Linux 操作系統
首先當然要進入 Debian Linux 操作系統,用 root 用戶登錄。
root 用戶登錄
步驟2安裝不同的套裝軟體:
由於在安裝 Debian 7.1 GNU/Linux 有些程式是沒有的,需要手動安裝。
#apt-get install build-essential (GCC)
#apt-get install subversion (SVC)
#apt-get install libncurses5-dev (ncurses)
#apt-get install zlib1g-dev (zlib)
#apt-get install gawk(GNU awk)
#apt-get install flex(flex)
#apt-get install unzip(unzip)
#apt-get install git-core (git-core)
#apt-get install lzma (lzma)

可選擇一次性安裝所需套裝軟體。
#apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk flex unzip git-core lzma


步驟3創建一個 openwrt 目錄:
#mkdir openwrt

步驟4進入 openwrt 目錄:
#cd openwrt


步驟5下載 OpenWrt 源程式碼 (大約1小時)
OpenWrt 2013425發布 Stable 版本為12.09 (Revision37495)
#svn checkout svn://svn.openwrt.org/openwrt/trunk | tee file.txt

※注意backfire trunk 是兩個不同分支的 OpenWrt 源程式碼,據說 backfire 較為穩定,但是支持的路由器沒有 trunk 多,trunk 更多稱之為測試版,編譯的時候只需執行一條命令即可。執行完成後,會在 openwrt 下生成目錄,使用 backfire/trunk 源碼生成 backfire/trunk bin 目錄。

步驟6更改目錄權限:
#chmod -R 777 /openwrt/

步驟7不能使用 root 作編譯之用,要更改為非 root 用戶登錄。
#su alpha

更改為非 root 用戶登錄
步驟8進入 trunk 目錄:
$cd trunk

步驟9更新軟體包 (大約 5分鐘)
$./scripts/feeds update -a

步驟10安裝新軟體包 (大約 5分鐘)
$./scripts/feeds install -a | tee file_install.txt

步驟11更新版本號:
$svn up

用以下的命令可以提供現在的 OpenWrt 版本和資料。
$svn info

svc info
步驟12進入定制介面(可以選擇晶片的型號,集成的元件等等,根據實際情況選擇)
$make menuconfig

步驟13配置固件功能:
1.          Target System <*> Atheros AR7xxx/AR9xxx
2.          Target Profile <*> TP-Link TL-WR703N
3.          Base System <*> block-mount
4.          Kernel modules Block Device <*> kmod-scsi-core
5.          Kernel modules Filesystems <*> kmod-fs-ext4Kmod-vfat
6.          Kernel modules Native Language Support <*>kmod-nls-utf8
7.          Kernel modules Network Support <*>kmod-iptunnel4kmod-iptunnel6kmod-ipv6kmod-sitkmod-tun
8.          Kernel modules USB Support <*>kmod-usb-storage
9.          Kernel modules Video Support <*>kmod-video-core
10.      Kernel modules Video Support <*>Kmod-videe-uvc
11.      LuCI - Collection <*>luciluci-ssl
12.      LuCI - Translations <*>luci-i18n-chinese
13.      Multimedia <*>mjpeg-streamer
14.      Network Firewall <*> iptables
15.      Network Routing and Redirection <*>ip
16.      Network <*>ser2net
如果還有什麼喜歡的功能,自己勾選就可以。

make menuconfig
然後《Exit》《YES

步驟14開始編譯:
筆者的第一次編譯需要時間 (大約 9.5小時) 相對比較長,但第二次編譯的時間 (大約1.25小時) 已經縮短了,V=99 表示輸出詳細的 debug 資訊,編譯後固件放於 /openwrt/trunk/bin/ 下。
$make V=99

如果需要知道編譯失敗的原因,可輸入下面的命令,將編譯的所有輸出資訊保存在 build.log中,將 error 資訊列印在螢幕上。
$make V=99 2>&1 |tee build.log |grep -i error

在後台進行編譯,使用空閒的 I/O 資源和 CPU 性能,可使用(例如使用雙核處理器)。
$onice -c 3 nice -n 20 make -j 2

編譯一個單獨的套裝軟體(例如在 helloworld 軟體)。
$make package/helloworld/compile V=99

編譯後的檔案
步驟15清除編譯過程產生的暫存檔案:
清除中間檔等,buxxx_dir 的都會被刪除,而且看起來 bin 目錄裏編譯好的固件也沒了。
$make clean

步驟16恢復編譯環境:
$make defconfig

步驟17使用 WinSCP 登錄下載進行檔案管理和刷機。
WinSCP 登錄
WinSCP 下載

※注意:
如果您希望自己開發一下,後面用 C 語言直接寫程式並在 703N 運行,請在主功能表裏面選中一個 SDK 的選項,這個會在編譯時候生成交叉編譯用的工具。
參考網址:
OpenWrt 中文 HOWTOs 
OpenWrt HOWTOs 
OpenWrt Buildroot – Installation 


氣溫:25.3 @ 22:10
相對濕度:百分之97%
天氣:雨

沒有留言:

張貼留言