1. 程式人生 > >從零開始學習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

注:如果不是剛下載的原始碼,為保持程式碼為最新狀態,應定期執行svn update命令更新原始碼。

測試編譯環境:

make defconfig

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

make menuconfig

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

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

開始編譯:

make

或者

make  V=99

或者

make -j 2 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 //Linuxssh [email protected] //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、個人網站/伺服器…

備註: 過程中出現什麼錯誤就根據提示進行

sudo apt-get install zlib1g

 sudo apt-get install zlib1g.dev

 sudo apt-get install libncurses5-dev

相關推薦

開始學習OpenWrt完美教程-

Cisco/Linksys在2003年釋出了WRT54G這款無線路由器,同年有人發現它的IOS是基於Linux的,然而Linux是基於GPL許可證釋出的,按照該許可證Cisco應該把WRT54G 的IOS的原始碼公開。2003年3月, Cisco迫於公眾壓力公開了WRT54G的原始碼。此後就有了一些基於C

開始學習OpenWrt完美教程

測試編譯環境: make defconfig 到這裡就可以開始編譯自己的韌體了。進入定製介面: make menuconfig 如果一切正常,會出現一個配置選單,可以選擇要編譯的韌體平臺(晶片型別)、型號,還能選擇韌體中要新增的功能和元件,配置好後儲存並退出選單即可。 如果你想修改原始碼,應該在

開始學習Openwrt教程

Openwrt教程 本文參考 https://openwrt.org openwrt官方網站 http://blog.csdn.net/fyh2003/article/details/44564219 http://www.openwrtdl.com/wordpress/openwrt-fu

開始學習ExtJs6系列教程一【Hello World】

我們在學校裡學習任何一門語言都是從"Hello World"開始,這裡我們也不例外。 那麼我們的教程就從 Hello World 講起。 helloWorld.js Ext.onReady(func

Redis開始學習教程

span 環境 解壓 修改配置文件 客戶端 所有 mage com 永久 學習Redis 對機器的性能要求是最小的,只要有空余的1M的空間都是可以的。 Redis分 服務器端和客戶端 server /client 我用的是windows環境window 7 (64) 下載地

Redis開始學習教程三:key值的有效期

圖片 com edi 數據 key值 一次 時間 inf 系統 Redis 是一種存儲系統,類似數據庫,和緩存的差別是,緩存有有效期,而Redis默認無有效期,或者說,默認有效期為永久 但是Redis可以當做緩存使用。這時候需要針對各個key設置有效期。 有效期單位默認為S

開始學習機器學習視訊教程-陸永劍-專題視訊課程

從零開始學習機器學習視訊教程—1322人已學習 課程介紹         零基礎入門機器學習視訊培訓課程概況:機器學習數學基礎、Python基礎、機器學習演算法(線性迴歸、邏輯迴歸、聚類演算法、EM

Maven教程開始學習到深入瞭解

Maven 簡述 Maven是apache 官方推出的一款專案自動構建工具。這款工具可以方便我們專案依賴的維護,構建,測試,釋出。 不同構建工具的對比 Eclipse 使用eclipse進行專案構建,相對來說,步驟比較零散,不好操作 Ant

()開始學習ASP.NET MVC(三) Controller/Action 深入解析和應用

一.摘要 一個Url請求經過了Routing處理後會呼叫Controller的Action方法. 中間的過程是怎樣的? Action方法中返回ActionResult物件後,如何到達View的? 本文將講解Controller的基本用法,  深入分析Controller的執行機制, 並且提供了建立所有型別A

Android筆記:Android後臺介面教程一(開始學習Android後臺介面)Android 前後臺通訊

前言: 作為一名android開發人員,網路資料都是web開發人員提供,每次讓他們寫一個介面都跟求神拜佛一樣,與其求別人還不如自己動手,經過將近一天的研究,參考了很多的資料。總算研究出來了,寫下來有的人可能會用到。也算是自己做個筆記。文章有些長。請細心看完。

開始學習音視訊程式設計技術(二) 音訊格式講解

轉自:http://blog.yundiantech.com/?log=blog&id=5 1. 音訊簡介     前面我們說過視訊有一個每秒鐘採集多少張的概念,這就叫做視訊的幀率。     和視訊的幀率一樣的道理,聲音也有一個頻率,叫做取樣率。   

開始學習音視訊程式設計技術(一) 視訊格式講解

轉自:http://blog.yundiantech.com/?log=blog&id=4  所謂視訊,其實就是將一張一張的圖片連續的放出來,就像放幻燈片一樣,由於人眼的惰性,因此只要圖片的數量足夠多,就會覺得是連續的動作。 所以,只需要將一張一張的圖片儲存下來

開始學習jQuery教程:jQueryUI常用功能實戰

一.摘要 本系列文章將帶您進入jQuery的精彩世界, 其中有很多作者具體的使用經驗和解決方案,  即使你會使用jQuery也能在閱讀中發現些許祕籍. 本文是實戰篇. 使用jQueryUI完成製作網站的大部分常用功能.  二.前言 經過公司內部收集, 整理了一些經

Office365教程之跟著五毛哥開始學習

從今天開始,我將利用週末的時間錄製眾多系列的Office 365視訊 第一個系列的Office 365視訊叫:跟著五毛哥從零開始學習Office 365視訊 觀看地址如下 在這個系列視訊中,我們將學習到怎麼註冊Office 365,公網域名繫結到Office 365

開始學習html(五)與瀏覽者交互,表單標簽——下

定位 開始 系統 isp ctr 程序 顯示 text 輸入 六、使用下拉列表框進行多選 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-T

開始學習iOS開發1:認識xcode

連接 啟動圖標 主動 認識 tor 音樂 滴滴打車 啟動 and 在開始之前還是不得不提一下iPhone應用開發的工具,我當然之前是沒接觸過iPhone開發,也沒使用過apple的不論什麽一種設備。所以我的概念中僅僅知道xcode是最專業的iOS開發工具。如今它是免費

開始學習html(十)CSS格式化排版——下

而是 復習 nbsp 1.5 如果 spl 排版 居住 blog 六、文字排版--刪除線 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-T

開始學習html(十二)CSS布局模型——下

位操作 女生 margin 沒有 定位元素 top 並且 變化 開始 五、什麽是層模型? 什麽是層布局模型?層布局模型就像是圖像軟件PhotoShop中非常流行的圖層編輯功能一樣, 每個圖層能夠精確定位操作,但在網頁設計領域,由於網頁大小的活動性,層布局沒能受到熱捧。 但是

開始學習html(十三) CSS代碼縮寫,占用更少的帶寬

tin imp important 都是 -h 20px 帶寬 記得 樣式 一、盒模型代碼簡寫 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Conten

開始學習html(十四)單位和值

type 當我 總結 學生 專註 bfc span blog 設置顏色 一、顏色值 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5