首頁 > 軟體

給 TL-WR703N 安裝 OpenWrt 過程筆記

2020-06-16 18:07:44

在下的樹梅派2不幸被延期到年後才能發貨了,春節沒的折騰了怎麼辦?無意中在 Rpi2 的報道中讀到了關於 TL-WR703N 的訊息,才想到還剩在箱底的她。思索著既然是春節,就做個好事情,將 OpenWrt 介紹給她!

主角介紹

TL-WR703N 是 TP 在 2011 年推出的一款便攜式 3G 路由器,具備一個可連線 3G 上網絡卡的標準 USB 口,802.11N 150M 無線網路,microUSB 供電介面,搭載 Atheros AR7240 CPU 及 Atheros AR9331 晶片組。小巧省電,不到手掌心大,功耗不及 0.5W。

[OpenWrt]則是面向路由器等小型嵌入式裝置的 Linux 發行版,可以使用 opkg 包管理器輕鬆擴充套件功能。截止本文發表時最新版本為代號是 Barrier Breaker 的 14.07 Final 版,使用 Linux Kernel 3.10 。

初次見面

單純刷入 OpenWrt 韌體相當簡單,OpenWrt 提供了針對 TL-WR703N 的預編譯映象。大致步驟如下:

  1. 從 OpenWrt 官網下載對應型號的韌體,由於這個時基於 AR7240 CPU 的,所以在名為 ar71xx 的目錄下尋找 wr703n 即可。

  2. 首次從官方韌體轉換到 OpenWrt 韌體,需要使用 factory映象。另外的sysupgrade用於從老版本的 OpenWrt 升級,這裡無須操心。

  3. 使用有線方式連線 WR703N 與電腦,然後在瀏覽器中輸入 WR703N 的網路設定 IP。驗證使用者名稱和密碼後,在左側選擇韌體升級,然後選擇剛才下載的 OpenWrt 映象,確認寫入。若是韌體不識別,嘗試將韌體名稱縮短些,比如重新命名為 openwrt.bin

  4. 耐心等待,大概快五分鐘後,它會自動重新啟動,此時迎接您的就是 OpenWrt 的 LuCI 管理設定介面了。

根據 Wiki 上的說明,似乎 V1.7 版的官方韌體存在相容性問題,刷入困難。筆者手上的 V1.2 版倒是一切順利,此外 14.07 Final 版的代號早已遠高於報告有問題的 Trunk,應該無須擔憂。

輕度調教

在呈現的登陸提示框下設定了 root 賬戶密碼後,名為 dropbear SSH 伺服器就可以使用了。用任意 SSH 用戶端即可登陸進行設定工作

記得之前強調要用有線方式連結麼?因為 OpenWrt 的無線網路預設是關閉的……

接下來根據個人需要分別設定無線網路和有線網路介面的功用,PPPoE、DDNS 什麼的都有,如有必要還可以設定下防火牆什麼。

如果您僅是想要 WR703n 繼續乖乖的做一個路由,至此就可以了。

如果想要進一步挖掘它的其他潛能,請繼續往下讀。

想要更多

順便瀏覽下 opkg 軟體倉庫及 OpenWrt 的 Wiki,這款小小的裝置的處理器還有很大的潛能。不過若是想要更多的話,首先要解決儲存空間的問題,否則一兩個額外軟體包就能佔滿其僅有 4M 的快閃記憶體。而擴充容量最直接的方式就是插一個 U 盤!接下來要做的就是將 / 分割區遷移到大容量的外接 U 盤上。

找一個空閒的 USB2.0 介面的 U 盤,注意太老的 USB 1.1 不認,格式化成 ext4 格式,插到 USB 介面上,然後在通過 SSH 在終端中執行以下步驟為系統新增外部 USB 大容量儲存裝置支援:

opkg update opkg install kmod-usb-storage block-mount kmod-fs-ext4

亦可在 LuCI 的 Software 面板中操作。Wiki 中還建議在 U 盤中順道建立一個交換分割區,可以根據您的接下來的具體應用考量。

然後用 mount 簡單嘗試下能否正常掛載,若是沒問題話,繼續。 假設 U 盤掛載到了 /mnt/sda1

mkdir -p /tmp/cproot
mount --bind / /tmp/cproot
tar -C /tmp/cproot -cvf - . | tar -C /mnt/sda1 -x
umount /tmp/cproot

之後用 vi 編輯 /etc/config/fstab 檔案,仿照如下欄位修改或新增:

config mount
       option target /
       option device /dev/sda1
       option fstype ext4
       option options rw,sync
       option enabled 1
       option enabled_fsck 0

儲存退出,然後重新啟動 WR703n,然後用 df 看看 / 分割區容量是不是增大了呢?

除了這裡描述的將整個 / 遷移到 U 盤的方法以外,還有一種僅將包含系統的 /overlay 分割區遷移的方法,效果類似,不再贅述。

分享彼此

既然通過擴容獲得了足夠的空間,可以折騰的空間就大很多了,比如您首先可能想要的就是中文支援:

opkg install kmod-nls-utf8 luci-i18n-chinese

接下來就任憑您想像了。有趣的是,不知出於何種原因中文論壇有不少人求該款裝置的應用,這裡還是建議直接從官方倉庫線上安裝比較好。

這裡,首先介紹使用 Samba 供區域網分享檔案。

為了方便管理及設定,可以安裝 LuCI 的 Samba 管理模組:

opkg install luci-app-samba

它會依著依賴關係安裝 Samba 3.6 版的伺服器端。此外在 LuCI 介面上增加了 Service 分類,點選下面的 Network Share 開始設定。

General Settings 下的內容非常直觀,主要是指定要共用的資料夾目錄以及新檔案許可權。值得修改的是 Edit Template 標籤中的內容。以下是幾個推薦修改的選項

unix charset = UTF-8  #中文支援
security = share #方便本地存取

Wiki 頁面上用了不少篇幅在說明防火牆的設定,似乎並不適用於最新版本的預設防火牆設定:它預設就已經是僅允許區域網存取。

全能下載

在測試 Samba 可以良好的實現包括手機、高清播放機及電腦之間的檔案共用之後,我琢磨著要不再用它做下載好了。

OpenWrt 倉庫裡提供有 aria2transmission-daemon 兩個可以 BT 的下載軟體,其中後者甚至還有 LuCI 設定介面模組。不過簡單比較了下,aria2 的記憶體占用要明顯少很多( 19% vs. 39%,空閒),考慮到僅有 32M 的記憶體,在下選擇了前者。

opkg install aria2

之後按照 RPC 方式將 aria2 以守護行程方式執行:

/usr/bin/aria2c --enable-rpc --rpc-listen-all -D -d [DOWNLOAD FOLDER]

省事期間,可以直接將這一句寫道 /etc/rc.local 中實現開機後自動執行,可以通過終端或者 LuCI 的 Startup 分頁操作。

aria2有不少前端,電腦上可以用WebUIAndroid 手機則可以用Transdrone,設定都非常簡單,無需贅言。

若是將下載目錄指定為上述的 Samba 共用目錄的話,更可以實現下載內容整個區域網可見。

效能及測試

借助 OpenWrt,WR703n 的效能得以充分發揮,在經過了如上設定後,同時兩個 HTTP 下載及 Samba 大檔案拷貝也不過僅僅消耗了其 50% 的 CPU 及 35% 的記憶體,意味著它還有不少潛力可以發揮。這一切都僅僅需要不到 0.5W 的功耗,實在是環保節能啊。

若是您手上也恰好這樣一個小裝置,不妨也試試用 OpenWrt 折磨它吧~

參考閱讀

OpenWrt Wiki:TP-Link TL-WR703N

OpenWrt Wiki:USB Storage

OpenWrt Wiki:Rootfs on External Storage

OpenWrt Wiki: Samba


IT145.com E-mail:sddin#qq.com