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 DDR32MB 容量FLASH cFeon 25Q32B-104HIP4MB 容量的串列 Flash 
底板版本: 205050018 Rev 1.1 (CA-F121 122502002)
RJ 插座上版本:127151
 
TTL 接口到 micro USB 插座
步驟 3接上電源及 RS-232 接口,啓動超級終端機或 Windows Terminal,確定路由器原廠 UBoot 的版本。
 
路由器接上電源及 RS-232 接口
RS-232 連接線
電腦要啓用超級終端機設定:
ComPortCom1
Baud Rate115200 
Data Bits8
Paritynone
Hardware Shakingnone
 
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 頁面,默認UsernamerootPasswordadmin,便可以進入 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
步驟 9Telnet 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 網頁
步驟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%
天氣:雨