1)下載編譯好的固件
從OpenWrt的官方站點https://openwrt.org/
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相連,且將PC的IP設置爲不爲192.168.1.1的任意IP。這裏假設爲192.168.1.100,掩碼爲255.255.255.0。通過PC,telnet 192.168.1.1後,若可連接。則大功成半。然後
將root的密碼進行重置。因爲要用telnet和SSH的緣故,windows上要安裝putty和配置自帶的telnet,便利起見,推薦直接使用安裝linux的PC。
B) SSH到703N(ssh [email protected])更改網絡配置
默認情況下不開啓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,是本次刷機的主要目的)
因爲703N的ROM很小,刷完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設備插入703的usb口,查看/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