從零開始學習Openwrt教程

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

OpenWrt的特點:

  • 可擴展性好,可以在線安裝您所需要的功能,目前有1000多個功能包可選;
  • 是一臺完整的Linux工作站,文件系統可讀可寫,便於開發者學習和實踐;

  現在有越來越多的Maker開始折騰OpenWrt,但作爲一個Maker新手來講,在網上還是很難找到一份系統的入門級資料。查找資料很辛苦,而且OpenWrt的門檻相對較高,希望這篇文章所提供的從零開始學OpenWrt編譯 + 刷機 + 使用教程能降低新手們的入門難度,當然,編譯過程非必須,一般的路由都可找到可用的穩定固件直接刷機。

第一部分:搭建編譯環境

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

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

3、輸入下列命令:

1 sudo apt-get install g++ libncurses5-dev zlib1g-dev bison flex unzip autoconf gawk make gettext gcc binutils patch bzip2 libz-dev subversion sphinxsearch libtool sphinx-common

至此編譯環境搭建完成。

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

OpenWrt源碼分兩種,一種是最新但不是最穩定的Trunk開發版,一種是最穩定的Backfire版,建議下載官方源碼。下載前先在本地創建文件夾:

1 mkdir openwrt
2 sudo chmod 777 openwrt
3 cd openwrt

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

Trunk版下載命令:

Backfire版下載命令:

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

1 cp feeds.conf.default feeds.conf

更新擴展,安裝擴展:

1 ./scripts/feeds update -a
2 ./scripts/feeds install -a

注:如果不是剛下載的源碼,爲保持代碼爲最新狀態,應定期運行

1 svn update

命令更新源碼。

測試編譯環境:

1 make defconfig

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

1 make menuconfig

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

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

開始編譯:

1 make

或者

1 make  V=99

或者

1 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下可分別使用如下命令:

1 ssh –l root 192.168.1.1 #Linux
2 ssh [email protected] #Mac

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

1 opkg update #更新軟件包列表
2 opkg install  #在線安裝軟件包
3 opkg remove  #移除軟件包

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

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章