[HowTo]OpenWRT+TP-Link MR3020 OpenWRT到底能做啥?

我相信對家庭路由器有點小小研究的各位一定知道如果要自己的路由器變得有彈性點或者更多功能的話就是要刷韌體 著名的像是TomatoDD-WRT OpenWRT一直是大家陌生的改機任體

所以 他到底能做啥?

簡單的來說 他就是把一套開發完整的Linux裝到你的路由器上 然後裡面有很多核心模組可以增加 設定非常完善 也支援很多軟體 LAMP stack, iptables, USB…等等 功能非常強大!只是前提是 各位要有Linux的概念

為啥是TP-Link MR3020?

MR3020

下一個問題大家會問的應該就是為什麼我會選擇這台路由器來改機 為什麼不是華碩還是D-Link等等一線大廠

因為!這台使用的Atheros晶片被國外網友全面徹底的解剖、反向工程 所以幾乎沒有任何功能不支原的 再加上這台體積小 可以帶來帶去 用行動充電器就能提供電源 嘿嘿~正如我所要的!(等等再解釋)

安裝

如果各位到OpenWRT官方網站就可以看到各式各樣路由器的安裝方法 而3020安裝算是最簡單的 不用使用到serial consol(UART to USB) 也不用JTAG 只需要把韌體直接上傳到更新頁面 下次重開機就變成OpenWRT了!

MR3020 OpenWRT頁面

連接到網路以及ExtRoot

基本的安裝我在這就不解釋了 不過我想解釋的是如何在3020上使用ExtRoot 因為路由器內本身的記憶體不夠裝軟體 已3020來說只有小小的4MB 所以如果要裝LAMP stack絕對不可能4MB就搞定 對ㄅ~

ExtRoot的功能就是 我們可以在系統初始的時候把外接隨身碟當作主磁碟來使用 所以只要是可以外接記憶裝置的路由器都可以使用 3020來說 因為有一個USB接孔 所以我們可以使用一個隨身碟來當他的root FS(Filesystem)

如果照著官方的方法安裝 在下次開機的時候我們就可以使用telnet來登入我們的路由器 當然我們可以使用web界面 但我建議各位都使用指令的方式來做一切的設定 (為啥呢?等等說)

所以看到主機上的燈穩定下來之後 我們將電腦的乙太網路線(以下簡稱網路線)直接接到3020 然後設定一個固定IP 範圍只要在192.168.1.2~255內都可(我用192.168.1.123) 接下來我們開啟終端機下達指令 (不好意思各位我用的是Mac Windows命令我不熟…請見諒)

telnet 192.168.1.123

Screen Shot 2013-03-11 at 8.00.40 PM

然後不用密碼 我們就可以進入主機了 第一件非常重要的事情就是要設定root的密碼 root在Linux世界裡是系統管理員的一個特殊賬號 它可以對系統做任何事情 沒有權限問題 我們下達passwd這個指令來執行此動作

Screen Shot 2013-03-11 at 8.01.40 PM

打了兩次密碼看到成功的字樣後照程序來說 OpenWRT應該會自動中斷telnet的連線 下次我們要連線的話就要使用ssh來登入了 所以這時候我們按下Ctrl+c 來中斷程序 然後ssh到3020

ssh root@192.168.1.123

Screen Shot 2013-03-11 at 8.02.30 PM

耶~恭喜各位已經完成初步的設定了~現在我們想要可以透過家中的路由器來連接到3020 如此一來就不用直接用網路線連 所以就可以上網又可以和3020保持連線 要設定的是網路的部分

在Linux的世界 設定東西其實非常的直接的 直接到設定檔改就可以了 我們在這想要改的是這個檔案 /etc/config/network 我們用vi開啟 vi是在Linux內必備的文字編輯器 只要是對Linux有興趣得必學不可 其用法可在這學

vi /etc/config/network

Screen Shot 2013-03-11 at 8.02.57 PM

把它改成

Screen Shot 2013-03-11 at 8.04.10 PM

各欄位的用意在這裡都有解釋

其中ipaddr代表的是3020的IP 我們使用固定IP的方式來設定所以’static’的用意 gateway是你家路由器的位置 DNS我也是用家中路由器

好了之後救儲存離開ㄅ 離開後我們就下達reboot指令重新啓動3020 並把在電腦上的網路線拔除 將3020接到家中的路由器 原本接電腦的網路線也差回 3020重新啓動完畢後我們就可以ssh到3020了!我設定的是192.168.1.140 所以可想而知我們要打 ssh root@192.168.1.140 輸入密碼後就登入囉!好玩的就在後頭等我們~

(其實我們現在才要進入ExtRoot的安裝及設定)所以我們登入了3020,先ping一下Google確認3020可以順利連網

Screen Shot 2013-03-11 at 8.11.07 PM

看起來很GJ 現在要開始裝一堆軟體 OpenWRT有他自己的package manager: OPKG 很類似yum和dpkg 我們大部份的軟體都要從他的repository載,因為已經幫我們編譯好了。除非有自己想裝的軟體 需要先架設好交叉編譯環境(還是可以直接把gcc裝在路由其上?!)

我們先更新軟體源

Screen Shot 2013-03-11 at 8.14.41 PM

我們要裝ExtRoot所以裝了以下的軟體

  • block-mount
  • kmod-usb-storage
  • kmod-usb-ohci
  • kmod-fs-ext4
  • usbutils

當然他自己會再裝一些其他的依靠性(dependencies 是這樣翻嗎?)軟體 好了之後就插入已經穩備好的USB隨身碟然後下達lsusb就可以看到我們的隨身碟已被電腦偵測到了 我的隨身碟我切成兩個部分,一個是7GB的ext4剩下的就切成swap,相信我你會想要切swap…至於怎麼切我這裡就不罩各位了…

Screen Shot 2013-03-11 at 8.43.47 PM

所以說我們現在可以自由的對隨身碟進行讀寫,下一步就是先mount看看

Screen Shot 2013-03-11 at 9.07.46 PM

So far so good! 接下來我們先把原本的filesystem複製過去隨身碟裡

tar -C /overlay -cvf – . | tar -C /mnt/usb -xf –

Screen Shot 2013-03-11 at 9.10.40 PM

可以去ls /mnt/usb一下 接下來就要修改fstab所以每次開機都會自動載入在隨身碟內的資料 我們一樣使用vi修改/etc/config/fstab 然後順便啟用swap 如下

Screen Shot 2013-03-11 at 9.28.13 PM

存檔後就reboot囉!我們來確認一下是不是真的有成功

Screen Shot 2013-03-11 at 9.38.02 PM

再來確認swap是否也成功

Screen Shot 2013-03-11 at 9.38.15 PM

另一個確認的辦法就是登入到OpenWRT的web界面LuCI,然後到System裡的Software看可用的空間。這也是我用LuCI唯一的幾項功能,拿來確認設定是否正確。但不是所有的設定都能在LuCI找到,例如非基本軟體的設定。

Screen Shot 2013-03-11 at 9.43.52 PM

恭喜各位,到這裡我們就完成了ExtRoot的設定。大家可以在LuCI自己逛一逛,順便看一下有什麼軟體可以可以玩的。要先”Update lists”才能在”Available packages”看到軟體喔!

下篇打算介紹怎麼安裝Lamp stack。還有我到底之所以買3020是做什麼的~謝謝收看!有問題請發問,也請留下您的看法。

9 thoughts on “[HowTo]OpenWRT+TP-Link MR3020 OpenWRT到底能做啥?

  1. ts0ai

    Hello
    我遇到了一個問題@@
    tar -C /overlay -cvf – . | tar -C /mnt/usb -xf –
    ——–
    輸入這行指令的時候我的MR3020整個當掉,而且顯示使用量100%(usb)
    Win 7 64bit 使用WinSCP
    隨身碟是使用TKD 16G
    SWAP分割 2GB
    剩下的用ext4分割

    Reply
    1. applefreak111 Post author

      你確認一下你的mount點是不是正確的,就是你/mnt/usb是真的是mount ext4的那個分割區。另外這個步驟本來就會比較久,他先把在機版flash上的filesystem壓縮後放到usb內在解壓縮,所以可能感覺是當機的。

      Reply
      1. ts0ai

        他都會顯示空間不足(?
        root@OpenWrt:~# tar -C /overlay -cvf – . | tar -C /mnt/usb -xf –
        tar: invalid tar magic
        tar: write error: No space left on device

  2. Denny

    您好 我在使用vi修改 /etc/config/fstab 這一步中
    使用:wq 進行寫入後離開 不過寫入似乎沒有生效?
    再:q一次 系吐回應說 修改後沒有進行任何寫入的動作
    我又嘗試寫入很多次依然無效
    我去觀察權限也沒問題 如下
    -rw-r–r– 1 root root 335 Nov 11 14:41 /etc/config/fstab
    請問版主是否有遇過這個情況呢
    謝謝您

    以下是我的系統資訊
    Filesystem Size Used Available Use% Mounted on
    rootfs 1.1M 1.0M 48.0K 96% /
    /dev/root 2.0M 2.0M 0 100% /rom
    tmpfs 14.3M 72.0K 14.2M 0% /tmp
    tmpfs 512.0K 4.0K 508.0K 1% /dev
    /dev/mtdblock3 1.1M 1.0M 48.0K 96% /overlay
    overlayfs:/overlay 1.1M 1.0M 48.0K 96% /
    /dev/sda5 3.7G 122.7M 3.4G 3% /mnt/usb

    Reply
      1. Denny

        您好,目前是linux初學,因學長推薦使用openwrt來切入,有幸閱讀此篇教學文。

        按照您的教學,設定ExtRoot,我要修改/etc/config/fstab這個檔案,使得我的3020可以經由外部usb讀取filesystem,但是修改完fstab這個檔案執行vi指令寫入後關閉“:wq”後,vi仍然沒有關閉,我再輸入vi關閉指令”:q”,系統卻說我還沒對修改的部分進行存檔,簡單來說,就就是無法對/etc/config/fasb這個檔案進行修改,我試過reboot後再修改,一樣無法更變內容。

      2. applefreak111 Post author

        恩…所以說你最後還是:q!結束嗎?因為會導致成這樣的原因很多,我可能也無法幫助到你。如果能的話重頭再做一次,試試看,若真的不行可能就是我的guide有問題。但我記得上次也是照著我這個筆記做下來是沒問題的。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s