1. 程式人生 > >從零開始學習OpenWrt完美教程

從零開始學習OpenWrt完美教程

測試編譯環境:
make defconfig

到這裡就可以開始編譯自己的韌體了。進入定製介面:

make menuconfig

如果一切正常,會出現一個配置選單,可以選擇要編譯的韌體平臺(晶片型別)、型號,還能選擇韌體中要新增的功能和元件,配置好後儲存並退出選單即可。

openwrt-make

如果你想修改原始碼,應該在此步進行,如支援大容量Flash之類的修改,自己上網查到修改什麼檔案什麼地方後,就在ubuntu圖形介面上進去找到檔案,雙擊開啟文字編輯器修改儲存。

開始編譯:

make

或者

make  V=99

或者

make -j V=99

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介面設定

首次安裝OpenWrt後,需要設定密碼才可以使用SSH登入,方法是使用telnet登入或者Web登入設定密碼。在Windows下面telnet和SSH登入可以使用Putty,在Linux或Mac下可分別使用如下命令:

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

openwrt-ssh

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

opkg update //更新軟體包列表
opkg install  //線上安裝軟體包
opkg remove  //移除軟體包

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

openwrt-web

到此,OpenWrt的大門已為你敞開。接下來,開始嘗試利用OpenWrt實現更多智慧應用吧,比如單號多撥榨取運營商頻寬、繫結域名遠端控制、掛載大容量硬碟、搭建BT下載機、搭建網路攝像頭、Samba/DLNA家庭NAS共享、私有云同步、FTP、個人網站/伺服器…

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

搜尋結果說明:


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會被自動一起選中


2.12.重置配置


選擇配置選單介面底部的重置選單項“Reset to Defaults”,恢復預設所有選擇模式;


2.13.選擇元件


這裡僅增加支援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功能

其它可選擇功能


LuCI
  Applications
    luci-app-p2pblock      ——可增加Layer 7、ipp2p支援
  Themes
    luci-theme-bootstrap   ——可增加主題


其它選項一般保持預設就可以。

2.14.選擇主選單最底部“Save Configuration to an Alternate File”命令儲存設定一下你的設定,可以自定義檔名,以方便以後呼叫。


2.15.按兩次“esc”鍵退出配置選單介面,提示是否儲存,按Yes表示把當前編譯設定儲存下來。


2.16.自定義路由器的預設設定,可進入編譯目錄/trunk/package/base-file/files/etc/config,修改裡面的配置檔案,一般可以不用定義。


3.進行編譯


3.1.輸入以下命令開始編譯


make V=99


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


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


3.2.編譯成功後,用於刷機的韌體會儲存在/home/openwrt/trunk/bin/主控晶片系列/目錄下,有3個對應不同刷機模式的bin檔案:


*factory.bin


*tftp.bin


*sysupgrade.bin


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


4.編譯後繼工作


4.1.清除當前編譯作業


make clean


特別注意,這會刪除上面編譯的成果——bin檔案,請作好備份。


4.2.恢復預設編譯環境


make defconfig