1. 程式人生 > >TP-Link 703N刷OpenWrt的實踐

TP-Link 703N刷OpenWrt的實踐

1下載編譯好的韌體

http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr2543-v1-squashfs-factory.bin

韌體分為squashfs和jiffs2兩種檔案系統。具體的區別是jiffs2將韌體本身和後續安裝的包會放置在一個分割槽內,因此可以充分利用空間。squashfs則將韌體單獨掛在在/rom分割槽,系統出現問題時,系統的恢復非常便利。推薦squashfs!關鍵時刻留有退路。

2)通過原有的路由器管理頁面,進行韌體升級。

注意重啟沒有完成前,不要關掉頁面。

3)初始設定

A) password重置

預設的網段為192.168.1.*。將703N用網線和PC相連,且將PCIP設定為不為192.168.1.1的任意IP。這裡假設為192.168.1.100,掩碼為255.255.255.0通過PCtelnet 192.168.1.1後,若可連線。則大功成半。然後

root的密碼進行重置。因為要用telnetSSH的緣故,windows上要安裝putty和配置自帶的telnet,便利起見,推薦直接使用安裝linuxPC

預設情況下不開啟wifi,另外需要連線到網路來安裝軟體,所以需要修正配置檔案。

這裡假設連線到另一路由器,來充當AP。(前提是DCHP的網段不一致,恰巧家裡的路由器被我設為192.168.0.*網段了)如果是直接充當路由器,則設定型別需要設定為PPPoE。

-- 修改/etc/config/network檔案,將靜態IP設定修改為DHCP

config interface 'lan'
        option ifname 'eth0'
        option type 'bridge'
        option proto 'dhcp'
        #option proto 'static'
        #option ipaddr '192.168.1.1'
        #option netmask '255.255.255.0'
        #option ip6assign '60'

-- 修改/etc/config/wireless

        將option disable 1 註釋掉,開啟wifi

        如果需要密碼的場合,可如下設定

config wifi-iface
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'    
        option encryption 'psk2'
        option key '12345678'    #這是wifi的密碼

 C) 重啟之後,就可以搜尋到名為OpenWrt的無線網路了。

4)軟體安裝

因為主要目的還是要用703N來控制arduino,因此必須要安裝一些軟體。

#opkg update  (獲取包列表,就像apt-get update 和 yum update

  OpenMrt有這個非常贊,感覺好像在用ubuntu一樣,非常暢快,速度也好。

#opkg install kmod-us-serial-ftdi (USB轉串列埠包,用於和arduino通訊)

#opkg install ser2net (串列埠轉TCP,可通過TCP控制arduino,是本次刷機的主要目的)

因為703NROM很小,刷完OpenWrt只剩1.1M左右的空間,因此若有剩餘空間,以下軟體強烈推薦:

#opkg install luci      (Web管理介面)

#opkg install minicom   (串列埠除錯)

安裝完luci後,要手工重新啟動uhttpd/etc/init.d/uhttpd start

可放入/etc/rc.local來做開機啟動。

opkg的其他命令:

 opkg remove <package>                刪除包

 opkg remove --aoturemove <package>   刪除包並且刪除所有關聯依賴包

 opkg list                            列出所有可安裝的包(update的結果)

 opkg list-installed                  列出所有的已安裝包

 opkg info <package>                  檢視包資訊

至此,703N刷入OpenWrt的流程就已結束。下面的流程與控制外設相關,與OpenWrt並無太多關聯。

5)Arduino裝置插入

arduino裝置插入703usb口,檢視/dev可發現有新裝置被增加了。在Mega1280的場合,裝置名為:/dev/ttyUSB0

6)Ser2Net的設定

Ser2Net的功能與windows上的serProxy非常類似。它支援多種方式啟動,比較便利的是

利用/etc/ser2net.conf配置檔案,在其中追加

2222:raw:5:/dev/ttyUSB0:9600

然後,執行ser2net即可。

然後,通過telnet就可以無線控制arduino了!

重要:系統恢復的方法

途中有一次為了試圖能夠在703N上掛載普通usb(可用空間只有2M多點),解除安裝了不少系統軟體,甚至把UCI給解除安裝了,導致系統起來後沒有SSH服務,只有DNS服務,幾乎變磚。百般無奈下,終於找到有高人提供如下做法,真是柳暗花明,慶幸不已,否則只能TTL重刷了。

1)電源重啟,在藍燈開始閃爍的時候,按復位3秒 鬆開,藍燈快速閃爍進入安全模式

2)用LAN口TELNET接入 192.168.1.1 ,然後執行firstboot命令。

  按照命令提示清空了設定,重啟。

3)再TELNET接入,重置ROOT使用者口令,然後重啟

4)重新加電,SSH接入 192.168.1.1 搞定。

原連結見:http://www.openwrt.org.cn/bbs/forum.php?mod=viewthread&tid=13335