OPENWRT學習筆記入門篇

OPENWRT入門

首先,分享幾個openwrt的網址:php

http://www.openwrt.org.cn/bbs/forum.php?mod=viewthread&tid=4217
http://www.open-mesh.org/projects/batman-adv/wiki/Wiki
http://blog.csdn.net/teddy99999/article/details/17537545
http://blog.csdn.net/cupidove/article/details/45093385
https://openwrt.org/linux

本身看openwrt的源碼獲取方法
https://dev.openwrt.org/wiki/GetSourcegit

還有就是正式版也會升級的,具體請看
https://dev.openwrt.org/browser/branchesubuntu

OPENWRT簡介markdown

路由器至關於一臺小型計算機,部分配置比較好的(內存、CPU性能充足)能夠手動刷入linux系統(網友製做的dd-wrt和openwrt是兩種流傳較廣的linux系統),並在這個系統裏運行銳捷撥號程序。網絡

OpenWRT是一個高度模塊化、高度自動化的嵌入式Linux系統,擁有強大的網絡組件和擴展性,經常被用於工控設備、電話、小型機器人、智能家居、路由器以及VOIP設備中。 同時,它還提供了100多個已編譯好的軟件,並且數量還在不斷增長,而 OpenWrt SDK 更簡化了開發軟件的工序。架構

OpenWRT不一樣於其餘許多用於路由器的發行版,它是一個從零開始編寫的、功能齊全的、容易修改的路由器操做系統。實際上,這意味着開發者可以使用本身想要的功能而不加進其餘的累贅,而支持這些功能工做的linux kernel又遠比絕大多數發行版來得新。編輯器

OpenWRT支持各類處理器架構,不管是對ARM,X86,PowerPC或者MIPS都有很好的支持。 其多達3000多種軟件包,囊括從工具鏈(toolchain),到內核(linux kernel),到軟件包(packages),再到根文件系統(rootfs)整個體系,使得用戶只需簡單的一個make命令便可方便快速地定製一個具備特定功能的嵌入式系統來製做固件。模塊化

通常嵌入式 Linux 的開發過程, 不管是 ARM, PowerPC 或 MIPS 的處理器, 都必需通過如下的開發過程:svn

1.建立 Linux 交叉編譯環境;

2.創建 Bootloader;

3.移植 Linux 內核;

4.創建 Rootfs (根文件系統);

5.安裝驅動程序;

6.安裝軟件;

熟悉這些嶔入式 Linux 的基本開發流程後,再也不侷限於 MIPS 處理器和無線路由器, 能夠嘗試在其它處理器, 或者非無線路由器的系統移植嵌入式 Linux, 定製合適本身的應用軟件, 並創建一個完整的嵌入式產品。

OPENWRT刷入路由器

在官網下載最新的OpenWrt固件,連接以下:http://downloads.openwrt.org/snapshots/trunk/ar71xx/

進入連接地址後,找到對應於TP-LINK WR703N的固件,會有以下四個:

首先,有兩種不一樣的格式,即jffs2與squashfs。這兩種不一樣格式的固件區別在於,squashfs安裝後,會佔用必定的空間來存放系統的一些必要文件,這些文件都只是可讀的,這些文件的做用是幫助恢復系統,當OpenWrt崩潰時,能夠基於這些文件,使用firstboot腳本重建初始系統,而jffs2則不會存儲這樣的文件,好處在於節省了空間。通常,咱們都使用squashfs格式的固件,方便恢復系統到初始狀態。其次,每種格式都有兩個文件,factory與sysupgrade,這兩個文件的區別是,factory多了一些驗證的東西,用於在原廠固件的基礎上進行升級,若是已是OpenWrt,直接使用第二個文件便可。而且,在原廠固件的基礎上進行升級時,首先使用factory文件,而後須要再次使用sysupgrade文件,選擇不保留原來配置進行升級。

固然也能夠經過編譯來定製本身的固件。方法以下。

第一部分:搭建編譯環境

一、安裝Ubuntu(編譯須要Linux環境)

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

三、逐條輸入下列命令(及時驗證是否安裝成功):

  1. sudo apt-get install g++

  2. sudo apt-get install libncurses5-dev

  3. sudo apt-get install zlib1g-dev

  4. sudo apt-get install bison

  5. sudo apt-get install flex

  6. sudo apt-get install unzip

  7. sudo apt-get install autoconf

  8. sudo apt-get install gawk

  9. sudo apt-get install make

  10. sudo apt-get install gettext

  11. sudo apt-get install gcc

  12. sudo apt-get install binutils

  13. sudo apt-get install patch

  14. sudo apt-get install bzip2

  15. sudo apt-get install libz-dev

  16. sudo apt-get install asciidoc

  17. sudo apt-get install subversion

  18. sudo apt-get install sphinxsearch

  19. sudo apt-get install libtool

  20. sudo apt-get install sphinx-common

至此編譯環境搭建完成。

apt-get install libtool autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev

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

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

  1. mkdir openwrt

  2. sudo chmod 777 openwrt

  3. 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

更新擴展,安裝擴展:

  1. ./scripts/feeds update -a

  2. ./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及網絡環境有很大關係,第一次編譯時間較久,快則半小時長則二、3個小時,以後的編譯所需時間較短。編譯完成後會在源碼文件目錄出現bin文件夾(如trunk/bin/XXXX),若是你手裏的路由是原版固件須要刷OpenWrt須要選用XXX-factory.bin固件,若是路由已經刷了OpenWrt,選用升級固件XXXX-sysupgrade.bin升級用的,在升級界面升級便可。進到文件夾找到你須要的固件傳出(經過郵箱、網盤、U盤等),開始刷機吧。

完成上述工做以後便可將openwrt刷入路由器。

相關文章
相關標籤/搜索