(Linux)- OpenWrt 的安裝與設定 ( 編譯 & 刷機 & 使用 )

(Linux)- OpenWrt 的安裝與設定 ( 編譯 & 刷機 & 使用 )

(Linux)- OpenWrt 的安裝與設定 ( 編譯 & 刷機 & 使用 )

OpenWrt 學習與安裝的門檻比較高,本文提供如何安裝與編譯。

 

一、什麼是 OpenWrt

Cisco/Linksys 在 2003 年發佈了 WRT54G 這款無線路由器,同年有人發現它的 IOS 是基於Linux 的,然而 Linux 是基於 GPL 許可證發佈的,按照該許可證 Cisco 應該把WRT54G 的 IOS 的源代碼公開。2003 年 3 月, Cisco 迫於公衆壓力公開了 WRT54G 的源代碼。此後就有了一些基於 Cisco 源碼的第三方路由器固件,OpenWrt 就是其中的一個。

 

1.1 OpenWrt 的特點:

可擴展性好,可以在線安裝您所需要的功能,目前有 1000 多個功能包可選;

是一臺完整的 Linux 工作站,文件系統可讀可寫,便於開發者學習和實踐;

 

1.2 OpenWrt 使用心得:

最近在網上買了一台二手 ( 2012 年的產品了 ) 的分享器,當時算是中高階的產品,使用上不是太穩定,剛好用來學習與安裝 OpenWrt。

1.2.1 分享器很早就被前使用者安裝了 DD-WRT ,筆者使用快 1 個月,連線品質還可以就是有些差強人意的感覺。OpenWrt 使用快 2 週了,雖然後續沒再去做測試,但感覺真的非常穩定。

1.2.2 OpenWrt 的編譯過程是非必須的,一般的路由都可找到可用的穩定固件直接刷機使用。使用上己非常的方便 ( 可直接看第三部分 )。

 

二、OpenWrt 編譯

第一部分:搭建編譯環境

1、安裝 Ubuntu(編譯需要 Linux 環境,筆者是使用 debain 來操作的。),到其官網下載,版本根據自己所需選擇即可。可以選擇安裝到虛擬機或者物理機,圖形化安裝而且是中文版,連安裝都搞不定的,可以關閉本頁面了

 

2、切記不要改動軟件源,同時按住Ctrl + Alt + T,調出終端;

 

3、逐條輸入下列命令(及時驗證是否安裝成功):

 

sudo apt-get install g++

sudo apt-get install libncurses5-dev

sudo apt-get install zlib1g-dev

sudo apt-get install bison

sudo apt-get install flex

sudo apt-get install unzip

sudo apt-get install autoconf

sudo apt-get install gawk

sudo apt-get install make

sudo apt-get install gettext

sudo apt-get install gcc

sudo apt-get install binutils

sudo apt-get install patch

sudo apt-get install bzip2

sudo apt-get install libz-dev

sudo apt-get install asciidoc

sudo apt-get install subversion

sudo apt-get install sphinxsearch

sudo apt-get install libtool

sudo apt-get install sphinx-common

sudo apt-get install libssl-dev

sudo apt-get install libssl0.9.8

 

至此編譯環境搭建完成。

 

第二部分:下載 OpenWrt 源碼並編譯

OpenWrt 源碼分兩種,一種是最新但不是最穩定的 Trunk 開發版,一種是最穩定的 Backfire 版,建議下載官方源碼。

 

1. 下載 OpenWrt 前先在本地創建文件夾:

mkdir openwrt

sudo chmod 777 openwrt

cd openwrt

 

2. 選擇想要的版本然後執行下載命令,下載結束會顯示版本號:

Trunk版下載命令:

svn co svn://svn.openwrt.org/openwrt/trunk/

 

Backfire版下載命令:

svn co svn://svn.openwrt.org/openwrt/branches/backfire/

 

3. 添加軟件擴展包,將 feeds.conf.default 修改爲feeds.conf:

cp feeds.conf.default feeds.conf

 

4. 更新擴展,安裝擴展:

./scripts/feeds update -a

./scripts/feeds install -a

 

PS:如果不是剛下載的源碼,爲保持代碼爲最新狀態,應定期運行 svn update 命令更新源碼。

 

5. 測試編譯環境:

make defconfig

 

到這裏就可以開始編譯自己的固件了。進入定製界面:

make menuconfig

 

如果一切正常,會出現一個配置菜單,可以選擇要編譯的固件平臺(芯片類型)、型號,還能選擇固件中要添加的功能和組件,配置好後保存並退出菜單即可。

如果想修改源碼,應該在此步進行,如支持大容量 Flash 之類的修改,自己上網查到修改什麼文件什麼地方後,就在 ubuntu 圖形界面上進去找到文件,雙擊打開文本編輯器修改保存。

 

開始編譯:

make

 

或者

make V=99

 

或者

make -j V=99

 

PS:make 是編譯命令,V=99 表示輸出 debug 信息,V 一定要大寫,如果要讓 CPU 全速編譯,就加上 -j 參數,第一次編譯最好不帶 -j 參數。

 

編譯過程保持聯網(會從網上下載一些源碼包),所以斷網可能造成編譯中斷,編譯所需時間與電腦 CPU 及網絡環境有很大關係,第一次編譯時間較久,快則半小時長則2、3個小時,之後的編譯所需時間較短。編譯完成後會在源碼文件目錄出現 bin 文件夾(如 trunk / bin / XXXX),如果你手裏的路由是原版固件需要刷 OpenWrt 需要選用XXX-factory.bin 固件,如果路由已經刷了 OpenWrt,選用升級固件 XXXX-sysupgrade.bin 升級用的,在升級界面升級即可。進到文件夾找到你需要的固件傳出(通過郵箱、網盤、U 盤等),之後就可以開始刷機了。

 

第三部分:將 OpenWrt 刷入路由器

要在路由器上使用 OpenWrt,首先要將路由器固件刷新爲 OpenWrt,即相當於 OpenWrt 系統的安裝,不同型號的路由器的安裝方法可能也會不一樣,但一般常用的有三種方法:

Web 上傳固件更新

PFTP 上傳固件更新

編程器寫入固件

具體型號的路由器適用於哪種或哪幾種方法,需自行嘗試。

 

第四部分:開始使用 OpenWrt

要對 OpenWrt 進行配置,一般有兩條途徑:

SSH 登錄通過命令行控制

Web登錄通過 Web 界面設置

4.1 首次安裝 OpenWrt 後,需要設置密碼才可以使用 SSH 登錄,方法是使用 telnet 登錄或者 Web 登錄設置密碼。

 

在 Windows 下面 telnet 和 SSH 登錄可以使用 Putty,在 Linux 或 Mac 下可分別使用如下命令:

ssh –l root 192.168.1.1 //Linux
ssh [email protected] //Mac

 

4.2 一般指令與常見 Linux 發行版相同,但是 OpenWrt 使用自己的包管理器:opkg,使用 ” opkg –help ” 查看幫助信息。以下是一些常用操作命令:

opkg update //更新軟件包列表

opkg install //在線安裝軟件包

opkg remove //移除軟件包

 

登錄 Web 管理界面,前提是該 OpenWrt 系統中要安裝了 Web 界面,一般是 Luci,登錄方式與普通路由器無異,打開瀏覽器,輸入路由器 IP 即可進入登錄界面,OpenWrt 的默認 IP 是 192.168.1.1

 

到此,OpenWrt 的大門已敞開。接下來,開始嘗試利用 OpenWrt 實現更多智能應用吧,比如單號多撥榨取運營商帶寬、綁定域名遠程控制、掛載大容量硬盤、搭建 BT 下載機、搭建網絡攝像頭、Samba/ DLNA 家庭 NAS 共享、私有雲同步、FTP、個人網站/服務器…

 

三、第二部分的 OpenWrt 編譯詳細說明

make 做為 trunk 版本的編譯命令,只能在 trunk 目錄執行,進入配置菜單界面,鍵盤上下是移動光標,左右是選擇底部按鍵,Enter 是確認,空格是設置選擇模式,選項最前面的選擇模式有 [ * ] 表示編譯進固件,[ M ] 表示編譯成安裝包,[  ] 表示不選擇,esc 是返回上級菜單,按 ? 是幫助,按 / 是搜索。

 

3.1 openwrt 的源碼獲取

自己看 openwrt 的源碼獲取方法

https://dev.openwrt.org/wiki/GetSource

搜索結果說明:

Symbol: PACKAGE_l7-protocols [=Y]   ——包的名字,以及有被選中

Dedfined at tmp/.config-package.in:14725   ——表示這個包概況

Depeds on: \   ——這個包依賴哪個包

PACKAGE_iptables-mod-filter [=Y]   ——被依賴的這個包有選中

Location:   ——指明 l7-protocols 這包在 menuconfig 的界面的哪層菜單中,方便查找

-> Network

-> Firewall

Selects: \   ——可以附帶選擇哪幾個包

Selected by: \   ——同時選擇以下幾個包,那 l7-protocols 會被自動一起選中

 

3.2 重置配置

選擇配置菜單界面底部的重置菜單項 ” Reset to Defaults “,恢復默認所有選擇模式;

 

3.3 選擇組件

3.3.1 這裏僅增加支持 IPv6 的組件和 Web 管理界面 LuCI,選擇項目如下:

Target System ( Atheros AR7xxx/AR9xxx )   ————主控芯片

Target Profile ( Buffalo WHR-G301N )   ————路由器型號

LuCI   ——Web 管理界面 LuCI

  Collections

    luci-ssl ——安全鏈接

  Applications

    luci-app-ddns   ——動態域名

    luci-app-multiwan   ——多撥

    luci-app-radvd   —— IPv6 廣播

    luci-app-upnp   —— upnp 端口映射

    luci-app-wol   ——在線喚醒

  Translations

    luci-i18n-chinese   ——中文語言支持

  Protocols

    luci-proto-ipv6   ——增加 IPv6 支持

  Server Interfaces

    luci-sgi-uhttpd   ——自動運行 LuCI 的服務

  Kernel Modules

    Network Devices

      kmod-macvlan   ——爲 mac 虛擬局域網增加內核支持

    Network Support

      kmod-sched   ——爲 TC 命令增加內核支持

  Network

    tc   ——增加 TC 功能

 

3.3.2 其它可選擇功能

LuCI

  Applications

    luci-app-p2pblock   ——可增加 Layer 7、ipp2p 支持

  Themes

    luci-theme-bootstrap   ——可增加主題

 

其它選項一般保持默認就可以。

 

3.3.3 選擇主菜單最底部 ” Save Configuration to an Alternate File ” 命令保存設置,可以自定義文件名,以方便以後調用。

3.3.4 按兩次 ” esc ” 鍵退出配置菜單界面,提示是否保存,按 Yes 表示把當前編譯設置保存下來。

3.3.5 自定義路由器的默認設置,可進入編譯目錄 /trunk/package/base-file/files/etc/config,修改裏面的配置文件,一般可以不用定義。

 

3.4 進行編譯

3.4.1 輸入以下命令開始編譯

make V=99

V=99 參數表示輸出詳細的 debug 信息;編譯時得保持聯網在線,因爲會下載很多數據包(放在 ./dl 目錄下),而且容量不小,整個過程耗時比較久,一般第一次編譯耗時要一個半鍾到兩個鍾,以後編譯耗時約三十分鐘。

PS:如只想清除/編譯某個模塊,您可以做如下類似操作 make package/qos/clean, make package/qos/compile, make package/qos/install。

 

3.4.2 編譯成功後,用於刷機的固件會保存在 /home/openwrt/trunk/bin/主控芯片系列/目錄下,有 3 個對應不同刷機模式的 bin 文件:

*factory.bin

*tftp.bin

*sysupgrade.bin

建議馬上備份這三個文件到別的地方,以便用於刷機。

 

3.5 編譯後繼工作

3.5.1 清除當前編譯作業

make clean

PS:特別注意,這會刪除上面編譯的成果—— bin 文件,需做好備份。

3.5.2 恢復默認編譯環境

make defconfig

================================

添加 wifidog:

在項目下終端:vim feeds.conf.default

增加這一行:src-git wifidog https://github.com/wifidog/wifidog-gateway.git

然後重新:./scripts/feeds update -a

                     ./scripts/feeds install -a

終端執行 make menuconfig 在 Network/captive portals/ 下選擇 wifidog 就有選擇 WiFiDog 這一項了。

 

 

 

免責聲明:

1.本影像檔案皆從網上搜集轉載,不承擔任何技術及版權問題。

2.如有下載連結僅供寬頻測試研究用途,請下載後在24小時內刪除,請勿用於商業。

3.若侵犯了您的合法權益,請來信通知我們,我們會及時刪除,給您帶來的不便,深表歉意。



發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *