Cisco/Linksys在2003年發佈了WRT54G這款無線路由器,同年有人發現它的IOS是基於Linux的,然而Linux是基於GPL許可證發佈的,按照該許可證Cisco應該把WRT54G的IOS的源代碼公開。2003年3月, Cisco迫於公衆壓力公開了WRT54G的源代碼。此後就有了一些基於Cisco源碼的第三方路由器固件,OpenWrt就是其中的一個。編程
OpenWrt的特色:ubuntu
§ 可擴展性好,能夠在線安裝您所須要的功能,目前有1000多個功能包可選;瀏覽器
§ 是一臺完整的Linux工做站,文件系統可讀可寫,便於開發者學習和實踐;服務器
如今有愈來愈多的Maker開始折騰OpenWrt,但做爲一個Maker新手來說,在網上仍是很難找到一份系統的入門級資料。查找資料很辛苦,並且OpenWrt的門檻相對較高,但願這篇文章所提供的從零開始學OpenWrt編譯 + 刷機 + 使用教程能下降新手們的入門難度,固然,編譯過程非必須,通常的路由均可找到可用的穩定固件直接刷機。網絡
第一部分:搭建編譯環境ssh
1、安裝Ubuntu(編譯須要Linux環境),到其官網下載,版本根據本身所需選擇便可。能夠選擇安裝到虛擬機或者物理機,圖形化安裝並且是中文版;編輯器
2、切記不要改動軟件源,同時按住Ctrl + Alt + T,調出終端;svn
3、逐條輸入下列命令(及時驗證是否安裝成功):學習
1測試 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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 installgettext 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 |
至此編譯環境搭建完成。
第二部分:下載OpenWrt源碼並編譯
OpenWrt源碼分兩種,一種是最新但不是最穩定的Trunk開發版,一種是最穩定的Backfire版,建議下載官方源碼。下載前先在本地建立文件夾:
|
mkdir openwrt sudo chmod777 openwrt cd openwrt |
選擇你想要的版本而後執行下載命令,下載結束會顯示版本號:
Trunk版下載命令:
svn co svn://svn.openwrt.org/openwrt/trunk/ |
Backfire版下載命令:
svn co svn://svn.openwrt.org/openwrt/branches/backfire/ |
添加軟件擴展包,將feeds.conf.default修改成feeds.conf:
cp feeds.conf.default feeds.conf |
更新擴展,安裝擴展:
|
./scripts/feeds update-a ./scripts/feeds install-a |
注:若是不是剛下載的源碼,爲保持代碼爲最新狀態,應按期運行svn update命令更新源碼。
測試編譯環境:
make defconfig |
到這裏就能夠開始編譯本身的固件了。進入定製界面:
make menuconfig |
若是一切正常,會出現一個配置菜單,能夠選擇要編譯的固件平臺(芯片類型)、型號,還能選擇固件中要添加的功能和組件,配置好後保存並退出菜單便可。
若是你想修改源碼,應該在此步進行,如支持大容量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系統的安裝,不一樣型號的路由器的安裝方法可能也會不同,但通常經常使用的有三種方法:
1>Web上傳固件更新
2>TFTP上傳固件更新
3>編程器寫入固件
具體型號的路由器適用於哪一種或哪幾種方法,需自行嘗試。
第四部分:開始使用OpenWrt
要對OpenWrt進行配置,通常有兩條途徑:
1>SSH登陸經過命令行控制
2>Web登陸經過Web界面設置
首次安裝OpenWrt後,須要設置密碼纔可使用SSH登陸,方法是使用telnet登陸或者Web登陸設置密碼。在Windows下面telnet和SSH登陸可使用Putty,在Linux或Mac下可分別使用以下命令:
|
ssh –l root 192.168.1.1//Linux ssh root@192.168.1.1//Mac |
通常指令與常見Linux發行版相同,可是OpenWrt使用本身的包管理器:opkg,使用「opkg –help」查看幫助信息。如下是一些經常使用操做命令:
1 2 3 |
opkg update //更新軟件包列表 opkg install //在線安裝軟件包 opkg remove //移除軟件包 |
登陸Web管理界面,前提是該OpenWrt系統中要安裝了Web界面,通常是Luci,登陸方式與普通路由器無異,打開瀏覽器,輸入路由器IP便可進入登陸界面,OpenWrt的默認IP是192.168.1.1。
到此,OpenWrt的大門已爲你敞開。接下來,開始嘗試利用OpenWrt實現更多智能應用吧,好比單號多撥榨取運營商帶寬、綁定域名遠程控制、掛載大容量硬盤、搭建BT下載機、搭建網絡攝像頭、Samba/DLNA家庭NAS共享、私有云同步、FTP、我的網站/服務器…