2021-05-12 14:32:11
從零開始學習OpenWrt完美教學
從零開始學習OpenWrt完美教學
現在有越來越多的Maker開始折騰OpenWrt,但作為一個Maker新手來講,在網上還是很難找到一份系統的入門級資料。查詢資料很辛苦,而且OpenWrt的門檻相對較高,希望這篇文章所提供的從零開始學OpenWrt編譯
Cisco/Linksys在2003年發布了WRT54G這款無線路由器,同年有人發現它的IOS是基於Linux的,然而Linux是基於GPL許可證發布的,按照該許可證Cisco應該把WRT54G 的IOS的原始碼公開。2003年3月, Cisco迫於公眾壓力公開了WRT54G的原始碼。此後就有了一些基於Cisco原始碼的第三方路由器韌體,OpenWrt就是其中的一個。
OpenWrt的特點:
- 可延伸性好,可以線上安裝您所需要的功能,目前有1000多個功能包可選;
- 是一台完整的Linux工作站,檔案系統可讀可寫,便於開發者學習和實踐;
現在有越來越多的Maker開始折騰OpenWrt,但作為一個Maker新手來講,在網上還是很難找到一份系統的入門級資料。查詢資料很辛苦,而且OpenWrt的門檻相對較高,希望這篇文章所提供的從零開始學OpenWrt編譯 + 刷機 + 使用教學能降低新手們的入門難度,當然,編譯過程非必須,一般的路由都可找到可用的穩定韌體直接刷機。
第一部分:搭建編譯環境
1、安裝Ubuntu(編譯需要Linux環境),到其官網下載,版本根據自己所需選擇即可。可以選擇安裝到虛擬機器或者物理機,圖形化安裝而且是中文版,連安裝都搞不定的,可以關閉本頁面了;
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
至此編譯環境搭建完成。
第二部分:下載OpenWrt原始碼並編譯
OpenWrt原始碼分兩種,一種是最新但不是最穩定的Trunk開發版,一種是最穩定的Backfire版,建議下載官方原始碼。下載前先在本地建立資料夾:
mkdir openwrt
sudo chmod 777 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
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 系統的安裝,不同型號的路由器的安裝方法可能也會不一樣,但一般常用的有三種方法:
- 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 root@192.168.1.1 //Mac
一般指令與常見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下交叉編譯Node.js(HG255D) http://www.linuxidc.com/Linux/2014-06/102734.htm
OpenWRT上判斷用戶端線上個數 http://www.linuxidc.com/Linux/2014-06/102733.htm
Ubuntu親自手動編譯Openwrt (DreamBox): for njit....ipk http://www.linuxidc.com/Linux/2014-02/97217.htm
基於Tiny210v2編譯OpenWrt http://www.linuxidc.com/Linux/2013-07/87621.htm
相關文章