2013年7月28日 星期日

第二台 TP-Link TL-WR703N 路由器 OpenWrt 改裝測試

第二台 TP-Link TL-WR703N 路由器 OpenWrt 改裝測試:

安裝完 Debian 系統和 OpenWrt Trunk 程式後,便可以用 TP-Link TL-WR703N 路由器作測試,這是筆者購買的第二個 TP-Link TL-WR703N 路由器,主要是用作 OpenWrt 試驗,所以會將路由器內的 4M Flash Memory 拆出來,Flash Memory 會放在插座上,方便更換,Flash Memory 將來會用作燒錄不同的程式來試驗。


步驟 1:接上電源及網線,確定路由器的原廠固件版本 (Version 1.7)。

出廠預設值:
路由器的 IP 位址:192.168.1.1 
子網路遮罩:255.255.255.0 
用戶名:admin 
密碼:admin

系統版本:3.14.4 Build 121204 Rel. 41020n
TL-WR703N 系統版本:
第一台 703N 系統版本:3.14.4 Build 120925 Rel. 33144n (估計v1.6) 
第二台 703N 系統版本:3.14.4 Build 121204 Rel. 41020n (v1.7) 

步驟 2:拆開路由器,銲上 TTL 接口到 micro USB 插座上。

主晶片: Atheros AR9331,集成了無線網卡有線網卡 CPU 等全部功能
處理器: AR7240 400MHz CPU
RAM: Zentel A3S56D40FTP-G5 4-bank x 4194304-word x. 16bit DDR,32MB 容量FLASH: cFeon 25Q32B-104HIP,4MB 容量的串列 Flash 
底板版本: 205050018 Rev 1.1 (CA-F121 122502002)
RJ 插座上版本:127151
 
TTL 接口到 micro USB 插座
步驟 3:接上電源及 RS-232 接口,啓動超級終端機或 Windows Terminal,確定路由器原廠 UBoot 的版本。
 
路由器接上電源及 RS-232 接口
RS-232 連接線
電腦要啓用超級終端機設定:
ComPort:Com1
Baud Rate:115200 
Data Bits:8
Parity:none
Hardware Shaking:none
 
U-Boot 版本 1.1.4 (Dec 4 2012 - 11:19:40)
TL-WR703N U-Boot 版本: 
第一台 703N U-Boot 版本:U-Boot 1.1.4 (Feb 28 2012 - 11:58:24) 
第二台 703N U-Boot 版本:U-Boot 1.1.4 (Dec 4 2012 - 11:19:40)

步驟 4:用熱風鎗拆除 4M Flash Memory。

cFeon Q32B-104HIP SOP 8Pin
步驟 5:用編程器讀取 Flash Memory 資料內容作備份。

將 Flash Memory 放入 IC 插座
MiniPro 讀取 Flash Memory 內容
步驟 6:從新組裝路由器、Flash Memory 插座和 RS-232。

由於路由器比較迷你,為了將來方便工作,將路由器、Flash Memory 插座和 RS-232 組裝在一塊 PCB 板上,組裝完成後,確認組裝電路可否工作?

路由器試驗板
步驟 7:刷 OpenWrt 在認組裝電路。

因 TP-Link TL-WR703N 路由器是 v1.7 版本,在 OpenWrt 網站下載最新的固件 (v12.09) 。

兩個固件 (Firmware) :
openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory 3840kB
openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade 2817kB

首先從原裝的 TP-Link 固件刷 openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory,刷機完成後,重啓便會出現 OpenWrt 的 Login 頁面,默認Username:root、Password:admin,便可以進入 OpenWrt 的設定系統,再在 OpenWrt 系統內再升級一次刷 openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade 固件,升級時不要保留原來配置。

第一次刷 openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory
第二次刷 openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade
步驟 9:Telnet 192.168.1.1 

啓用 PuTTY 程式,輸入 192.168.1.1 及選 Telnet,然後 Open 便可進入 OpenWrt 系統。

輸入 192.168.1.1及選 Telnet
進入 openWrt 系統
相關網址:

2013 年 7月 28日 天氣報告
氣溫:25.4度 @ 19:50
相對濕度:百分之 94%
天氣:雨

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 網頁
步驟1:Debian 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 於 2013年4月25日發布 Stable 版本為12.09 (Revision:37495)。
#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-ext4;Kmod-vfat
6.          Kernel modules → Native Language Support → <*>kmod-nls-utf8
7.          Kernel modules → Network Support → <*>kmod-iptunnel4、kmod-iptunnel6、kmod-ipv6、kmod-sit、kmod-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 → <*>luci;luci-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%
天氣:雨