導航:首頁 > 源碼編譯 > 編譯OPENWRT配置cpu

編譯OPENWRT配置cpu

發布時間:2022-10-02 19:51:07

① openwrt i3處理器夠用嗎

夠用。openwrti3處理器對於性能上來說足夠了,對CPU的要求不是很高,主要考慮的是穩定性和功耗,也夠用了。

② 想製作openwrt固件,先要學習些什麼

  1. 先認識了解工具/原料,如PC機、路由器、網線等

  2. 學習搭建編譯環境,編譯建議在linux下進行

  3. 獲取openwrt源碼、配置軟體源等

  4. 附一個教程,您參考參考


    本教程的編譯環境:win7 專業版+VMwareWorkstation6.5虛擬機+Ylmf OS 3.0

    編譯的過程中要保持電腦聯網

    搭建編譯環境

    應用程序--附件--終端

    sudo apt-get update (更新)

    安裝編譯需要的組件:

    sudo apt-get install gcc

    sudo apt-get install g++

    sudo apt-get install binutils

    sudo apt-get install patch

    sudo apt-get install bzip2

    sudo apt-get install flex

    sudo apt-get install bison

    sudo apt-get install make

    sudo apt-get install autoconf

    sudo apt-get install gettext

    sudo apt-get install texinfo

    sudo apt-get install unzip

    sudo apt-get install sharutils

    sudo apt-get install subversion

    sudo apt-get install libncurses5-dev

    sudo apt-get install ncurses-term

  5. sudo apt-get install zlib1g-dev

    sudo apt-get install gawk

    sudo apt-get install asciidoc

    sudo apt-get install libz-dev

    編譯環境搭建完成

    mkdir openwrt 創建一個openwrt文件夾

    cd openwrt 進入openwrt文件夾

    svn co svn://svn.openwrt.org/openwrt/branches/backfire 下載官網的源碼

    /scripts/feeds update -a 更新軟體包

    /scripts/feeds install -a 安裝軟體包

    make menuconfig 進入定製界面(裡面可以選擇晶元的型號,集成的組件等等,根據實際情況選擇)

    defconfig

    make V=99 (開始編譯)

    剩下的就是等待了,第一次編譯需要的時間相對比較長,這個跟你的電腦配置和網速有關。

    下面以編譯TP-LINK 741N的openwrt固件為例,只編譯基本的功能:

    make menuconfig

    Target System---AR71xx/AR7240/AR913x/AR934x CPU型號

    Target Profile---TP-LINK 741

    LuCI—>Collections—– <*> luci 添加Luci

    LuCI—>Translations—- <*> luci-i18n-chinese 添加中文

    EXT----YES

    make V=99 開始編譯

    成功後在bin文件夾里有編譯好的固件。

③ 編譯openwrt超頻cpu主頻要修改哪個文件

Openwrt無線開啟,需要在編譯前修改源碼,更詳細的請去恩山論壇用搜索功能:
atheros的網卡需要改package/kernel/mac80211/files/lib/wifi/mac80211.sh
拉到最下有個蛋疼的
$ht_capab
option disabled 1 改為 0 即可
option txpower 10
option htmode HT40-
option noscan 1

config wifi-iface
option ssid 你的ssid
option encryption psk2+ccmp
option key 你的無線密碼

④ 怎麼在ubuntu系統上編譯定製openwrt固件

搭建編譯環境 Ubuntu x64 12/openwrt/trunk/ trunk是openwrt的開發版,openwrt有好幾個分支,要編譯其它分支,sun://後的換為相應的地址即可。 建立openwrt文件夾是為了方便存放不同分支的代碼,如果你不需要,可以省略「mkdir openwrt」及「cd openwrt」。 如果svn的速度慢,可以使用openwrt的第三方鏡像,比如國內的openwrt中文論壇所建的鏡像。 更新feed及添加package openwrt的一些額外功能都是通過package實現的,很多個package就組成了一個feed,我們可以根據需求更新自己想要的feed的源。 例如我們需要luci的web管理界面和python的支持,那麼我們需要更新luci和packages的feed源: cd trunk ./scripts/feeds update luci packages ./scripts/feeds install luci packages 當然,我們推薦更新所有feed並添加所有package ./scripts/feeds update -a ./scripts/feeds install -a 配置及編譯 進入配置界面 make menuconfig 以後再次編譯時,要先切換到工作目錄: cd openwrt cd trunk 然後在次過程中選擇好target system和target profile,target system需要看你路由器的cpu晶元信息,target profile是你路由器的型號。接下來就可以根據自己的需求進行定製了,添加上需要的支持或去掉無用的包,按「Y」在固件中添加包按「Y」,按「N」去 掉不需要的包。 要運行OH3C,必須有python-mini(lang->python->python-mini)的支持。 如果你的路由器flash空間比較緊張,可以去掉下面的包: Kernel moles->Network Support->kmod-ppp Network->ppp 選好後就保存配置退出開始編譯了: make -j -j 後面可以跟參數,即同時進行的任務數,比如2或4,不跟參數意為不限制同時進行的任務數,會大大減少編譯的時間,特別是首次編譯。 編譯過程中可能不會下載一些東西,所以斷網可能造成編譯中斷,編譯所需時間與你的CPU及網速有很大關系,一般首次編譯在40分鍾到2小時之間不等。以後的編譯一般在30分鍾之內。

⑤ 如何編譯OpenWrt

搭建編譯環境。編譯建議在Linux下進行。我的系統是Linux mint 17,執行以下命令,構建編譯環境:

sudo apt-get update
sudo apt-get install git-core build-essential

獲取openwrt源碼。在當前用戶主目錄下執行

git clone git://git.openwrt.org/openwrt.git

等待代碼下載。結束後,目錄下會出現openwrt文件夾。
配置軟體源。進入openwrt目錄,執行

./scripts/feeds update -a

./scripts/feeds install -a

檢查編譯環境是否完整:

make defconfig

make prereq

根據提示信息安裝需要的軟體包。如果提示類似

「tmp/.config-package.in:22022:warning: multi-line strings not supported」

的信息,打開 openwrt/tmp/.config-package.in,定位到對應行,添上丟掉的一個引號就可以了。
編譯選項:

執行 make menuconfig,根據路由器情況,選擇 Target System 和 Subtarget。如意雲一代和極壹S的 Target System 均為 Ralink RT288x/RT3xxx 。對於Subtarget ,前者為 MT7620n based boards ,後者為 MT7620a based boards。

其他選項根據個人喜好選擇。一般來說要選中LuCI界面,選中中文語言包等等。
開始編譯:

執行 make -j2 V=s 進行編譯。-j後面的數字是電腦物理CPU數量加一。V=s可以顯示出編譯的詳細信息。首次編譯大概需要幾個小時的時間。
錯誤排查:

編譯失敗,一般有兩種情況:

1.代碼下載鏈接失效。首次編譯時,編譯程序會實時從網上下載一些軟體包的代碼。如果下載鏈接失效,編譯就會失敗。這時需要根據軟體包的名稱,從網上自行下載,然後放在 openwrt/dl/ 目錄下,執行 make -j2 V=s 繼續編譯即可。

2.軟體包自身有問題。這時重新執行 make menuconfig ,取消對應軟體包選中即可。這種情況比較少見,目前已知的有 tor 等。

編譯成功,但沒有生成固件。這種情況一般是因為選中的軟體包過多,導致固件大小超過16MB。重新執行 make menuconfig,去掉一些軟體包,重新執行編譯即可。
得到固件。在排除了所有錯誤後,現在終於得到了固件。對於如意雲RY-1,固件在 openwrt/bin/ramips 目錄下,形如

openwrt-ramips-mt7620n-rt-n14u-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-mlw221-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wr8305rt-squashfs-sysupgrade.bin

等等。

⑥ Linux發行版(路由器固件)OpenWrt入門全集

現階段openwrt官方支持的路由列表:wiki.openwrt.org/toh/start

如果要學習openwrt的話,買些列表中二手的路由器來實踐下更容易學習,大部分要升級一下rom晶元和內存晶元,典型配置都是4M、64M。 大家先學習一下,等待小米開放時刻的到來,有備無患……

OpenWrt 可以被描述為一個嵌入式的 Linux 發行版,(主流路由器固件有 dd-wrt,tomato,openwrt三類)而不是試圖建立一個單一的、靜態的系統。OpenWrt的包管理提供了一個完全可寫的文件系統,從應用程序供應商提供的選擇和配置,並允許您自定義的設備,以適應任何應用程序。

對於開發人員,OpenWrt 是使用框架來構建應用程序,而無需建立一個完整的固件來支持;對於用戶來說,這意味著其擁有完全定製的能力,可以用前所未有的方式使用該設備。

當Linksys釋放 WRT54G/GS 的源碼後,網上出現了很多不同版本的 Firmware 去增強原有的功能。大多數的 Firmware 都是99%使用 Linksys的源碼,只有1%是加上去的,每一種 Firmware 都是針對特定的市場而設計,這樣做有2個缺點,第一個是難以集合各版本Firmware的長處,第二個是這版本距離 Linux 正式發行版越來越遠。

OpenWrt 選擇了另一條路,它從零開始,一點一點的把各軟體加入去,使其接近 Linksys 版 Firmware的功能,而OpenWrt 的成功之處是它的文件系統是可寫的,開發者無需在每一次修改後重新編譯,令它更像一個小型的 Linux 電腦系統。

OpenWrt 項目由 2004 年 1 月開始, 第一個版本是基於 Linksys 提供的 GPL 源碼及 uclibc 中的 buildroot 項目, 這個版本稱為 「stable」 版, 在網上至今仍有很多項目使用這個版本, 較為有名 Freifunk-Firmware 和 Sip@Home.

到了2005年初, 一些新的開發人員加入了這項目, 幾個月後他們釋出了第一個 「experimental」 版本, 這和以前版本不同的是, 這版本差不多完全舍棄了 Linksys 的 GPL 源碼, 使用了 buildroot2 作為核心技術, 將 OpenWrt 完全模塊化,OpenWrt 使用 Linux 正式發行的核心源碼(2.4.30),加上了一些補丁和網路驅動,開發隊伍更為OpenWrt添加了許多免費的工具,可以直接把Image寫入 Flash (mtd)裡面,設定無線功能和VLAN交換功能,這個版本名為「White Russian」,而1.0版本於2005年底公布。

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

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

如果對 Linux 系統有一定的認識, 並想學習或接觸嵌入式 Linux 的話, OpenWRT很適合。 而且OpenWRT支持各種處理器架構,無論是對ARM,X86,PowerPC或者MIPS都有很好的支持。 其多達3000多種軟體包,囊括從工具鏈(toolchain),到內核(linux kernel),到軟體包(packages),再到根文件系統(rootfs)整個體系,使得用戶只需簡單的一個make命令即可方便快速地定製一個具有特定功能的嵌入式系統來製作固件。

一般嵌入式 Linux 的開發過程, 無論是 ARM, PowerPC 或 MIPS 的處理器, 都必需經過以下的開發過程:

1、 創建 Linux 交叉編譯環境;

2、建立 Bootloader;

3、移植 Linux 內核;

4、建立 Rootfs (根文件系統);

5、安裝驅動程序;

6、安裝軟體;

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

由於CPU內核體系不同,造成很多應用程序移植到OpenWrt上的時候經常崩潰。

由於ADSL硬體模塊的驅動程序沒有開放源代碼,造成很多ADSL一體無線路由的ADSL模塊不能工作而造成功能缺失(RG100A和DB120除外)。

由於OpenWRT並不是官方發布的路由器固件,所以要使用(刷入該固件)有困難,而且其基於Linux,導致OpenWRT的入門門檻較高。

White RussianOpenWRT的初始版本,從2005年7月的White Russian RC1開始發展,一直到2007年1月才發布White Russian 0.9。

KamikazeOpenWRT的第二個版本,從2007年6月開始發布Kamikaze 7.06,一直更新到2010年1月的Kamikaze 8.09.2結束。這期間OpenWRT進行了大量改進,並為它的發展打下了堅實的基礎。

Backfire2010年03月04日,OpenWrt Backfire 10.03 Beta發布,該版本是開源的路由器固件,基於linux,功能強大,支持很多主流的平台和路由器,甚至支持國內的君正jz4740平台,是學習和開發嵌入式,也是工業、 商業應用理想平台。更新方面: brcm-2.4 更新到 2.4.37 kernel ,other targets 更新到 2.6.30 or 2.6.32 ,arm/mips平台的 gcc 更新到 4.3.3 ,powerpc的gcc更新到 4.4.3 ,uClibc 更新到 0.9.30.1 , Broadcom 11g 晶元組的 b43 無線網卡驅動更新到 2.6 kernel ,支持Atheros 11n ath9k ,支持很多新的ar71xx設備,magicbox歸入ppc40x平台 。

2010年03月25日,OpenWrt 發布 Backfire 10.03-rc1,支持國內留下的 tp-link最新多款11n的路由器,是不是想讓路由器支持萬能中繼呢,或者增加路由器的多wan口支持呢,更多的這些高端路由才有的功能,或許能 讓家用路由輕松具備。

2010年04月07日,OpenWRT放出Backfire 10.03正式版。

2010年08月29日OpenWRT放出了Backfire 10.03.1。修正了很多BUG,提高了兼容性。TP-LINK WR841N v2 已經可以正常使用了,包括無線部分和上網部分。 自rc1之後的變動:改進了防DNS重綁定攻擊,改進了uhttpd穩定性, Rootfs生成修復(Orion景象),修正了基於BRCM47XX的PCI初始化,添加了rtl8366 vlan 改變的 整合腳本,還原了一般x86鏡像 GRUB控制台,提高了ar71xx系列乙太網驅動程序性能,添加了ar7240 交換機驅動,一些swconfig 和 交換機驅動的改進,RDC 使用啟動載入器支持波特率,允許原生HID 支持 通過添加 kmod-input-hid,6in4:適當的處理了PPPoE連接並且修復了終端隧道更新。

鑒於開源軟體在國內的發展態勢,目前國內有基於OpenWRT改進而來的OpenWRT-DreamBox。這個版本的OpenWRT集成了了很多常用功能(包括離線下載等),而通過這個版本的OpenWRT便可以把一個路由器的功能發揮的淋漓盡致。

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

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

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

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

[php]

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

[/php]

至此編譯環境搭建完成。

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

[php]

mkdir openwrt

sudo chmod 777 openwrt

cd openwrt

[/php]

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

Trunk版下載命令:

[php]

svn co svn://svn.openwrt.org/openwrt/trunk/

[/php]

Backfire版下載命令:

[php]

svn co svn://svn.openwrt.org/openwrt/branches/backfire/

[/php]

添加軟體擴展包,將feeds.conf.default修改為feeds.conf:

[php]

cp feeds.conf.default feeds.conf

[/php]

更新擴展,安裝擴展:

[php]

./scripts/feeds update -a

./scripts/feeds install –a

[/php]

註:如果不是剛下載的源碼,為保持代碼為最新狀態,應定期運行svn update命令更新源碼。

測試編譯環境:

[php]

make defconfig

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

[php]

make menuconfig

[/php]

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

[php]

openwrt-make

[/php]

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

[php]

Make

[/php]

或者

[php]

make V=99

[/php]

或者

[php]

make -j V=99

[/php]

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 系統的安裝,不同型號的路由器的安裝方法可能也會不一樣,但一般常用的有三種方法:

1.Web上傳固件更新(就是路由器設置或管理界面的那個固件更新)

2.PFTP上傳固件更新(最簡單的就是HFS了)

具體型號的路由器適用於哪種或哪幾種方法,需自行嘗試。

要對OpenWrt進行配置,一般有兩條途徑:

1.SSH登錄通過命令行控制

2.Web登錄通過Web界面設置

首次安裝OpenWrt後,需要設置密碼才可以使用SSH登錄,方法是使用telnet登錄或者Web登錄設置密碼。在Windows下面telnet和SSH登錄可以使用Putty,在Linux或Mac下可分別使用如下命令:

[php]

ssh –l root 192.168.1.1 //Linux

ssh –l [email protected] //Mac

[/php]

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

[php]

opkg update //更新軟體包列表

opkg install //在線安裝軟體包

opkg remove //移除軟體包

[/php]

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

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

需要學會用ssh登錄路由器用linux命令查看。

ps 命令查看當前系統運行的進程信息

free 命令查看內存使用和swap掛載情況

ls 查看目錄和文件

cd 進入退出目錄

vi 查看編輯配置文件

安裝命令:

[php]

#opkg update

#opkg install nano

uci set network.lan.ipaddr=[lan ip]

[/php]

使用pppoe設置

Shell代碼

[php]

uci set network.wan.proto=pppoe //設置wan口類型為pppoe

uci set network.wan.username=[上網帳戶]

uci set network.wan.password=[上網密碼] //這兩行設置pppoe用戶名和密碼

[/php]

如果要掛在上級路由下面,就需要進行下面的設置

Shell代碼

[php]

uci set network.wan.proto=none //關掉wan

uci set network.lan.gateway=[上級路由ip] //網關指向上級路由

uci set network.lan.dns=[上級路由ip] //dns指向上級路由

uci set dhcp.lan.ignore=1 //關掉lan的dhcp

[/php]

最後對無線網路進行配置

Shell代碼

[php]

uci set wireless.@wifi-device[0].disabled=0 //打開無線

uci set wireless.@wifi-device[0].txpower=17 //設置功率為17dbm 太高會燒無線模塊

uci set wireless.@wifi-device[0].channel=6 //設置無線信道為6

uci set wireless.@wifi-iface[0].mode=ap //設置無線模式為ap

uci set wireless.@wifi-iface[0].ssid=[自己設置SSID] //設置無線SSID

uci set wireless.@wifi-iface[0].network=lan //無線鏈接到lan上

uci set wireless.@wifi-iface[0].encryption=psk2 //設置加密為WPA2-PSK

uci set wireless.@wifi-iface[0].key=[密碼] //設置無線密碼

[/php]

提交應用配置

Shell代碼

[php]

uci commit //應用

/etc/init.d/network restart //重啟網路服務

[/php]

安裝luci管理界面

Shell代碼

[php]

opkg update // 更新軟體列表

opkg list-installed // 查看已安裝軟體

opkg install luci // 安裝LUCI

opkg install luci-i18n-chinese // 支持中文

luci-app-firewall - 0.10.0-1

luci-i18n-english - 0.10.0-1

luci-lib-core - 0.10.0-1

luci-lib-ipkg - 0.10.0-1

luci-lib-lmo - 0.10.0-1

luci-lib-nixio - 0.10.0-1

luci-lib-sys - 0.10.0-1

luci-lib-web - 0.10.0-1

luci-mod-admin-core - 0.10.0-1

luci-mod-admin-full - 0.10.0-1

luci-proto-core - 0.10.0-1

luci-proto-ppp - 0.10.0-1

luci-sgi-cgi - 0.10.0-1

luci-theme-base - 0.10.0-1

luci-theme-openwrt - 0.10.0-1

[/php]

即可完成LUCI的安裝。

輸入以下命令開啟支持web服務的uhttpd,並設置其為自啟動:

Shell代碼

[php]

/etc/init.d/uhttpd enable # 開機自啟動

/etc/init.d/uhttpd start # 啟動uhttpd

[/php]

- Wifidog

你可以嘗試執行以下命令安裝Wifidog:

[php]

opkg update # Optional

opkg install wifidog

[/php]

--sftp安裝

[php]

opkg update

opkg install vsftpd openssh-sftp-server

/etc/init.d/vsftpd enable

/etc/init.d/vsftpd start

[/php]

小米埠轉發命令:

通過修改 /etc/config/firewall 這個文件來實現開放自己需要的埠到外網。

[php]

config rule 'httpdwan'

option src 'wan'

option dest_port '8088'

option proto 'tcp'

option target 'ACCEPT'

option name ''''httpd wan accept tcp port 8088''''

[/php]

保存後,執行 /etc/init.d/firewall restart 重啟防火牆。

SSH工具:

1.WINSCP(文件傳輸到路由器上嚴重推薦使用)

2.putty中文版 中文的使用的難度相對低一點

⑦ 如何在VMware中直接跑openwrt

步驟一:拉取源碼

1
在電腦上安裝VMware,在VMware上安裝Ubuntu14.04。
2
在Ubuntu上安裝svn,用於從官網上拉去openwrt源碼,拉取源碼時,會用到git工具,所以同時要安裝git。用以下命令:
sudo apt-get install subversion git-core
3
在拉取源碼之前,要先安裝依賴,用以下命令:
sudo
apt-get install gcc g++ binutils patch bzip2 flex bison make
autoconf gettext textinfo unzip sharutils gawk ncurses-term
zliblg-dev libncurses5-dev
安裝過程中如果有包安裝不上,可以去下載源碼自己編譯安裝。或者下載deb包,用dpkg安裝。
4
通過svn拉取源碼過程如下:
1:在家目錄下新建文件夾:mkdir wrt
2:cd wrt
3:svn co svn://svn.openwrt.org/openwrt/trunk
4:有如圖提示表明拉取完成:

5
下載完成後為了使openwrt支持更多的軟體,需要更新和安裝其它源上的軟體:
1:cd trunk
2:./scripts/feeds update -a
3:./scripts/feeds install -a
END
步驟2:配置、編譯

1
在編譯之前,我們還需要配置內核,就像我們一直Linux一樣:
Make menuconfig 配置內核,這時會出現一個熟悉的界面。如圖:

2
配置過程中,我們還需要配置幾個選項。
Target System:選擇X86。如圖:

3
Target Image:選擇ext4和Build VMware image files(VMDK)。如圖:

4
Kernel
Moles-->Network
Devices:選擇VMware網卡。官網上寫著必須選擇e1000,當我們選擇X86時,這個網卡就已經被選擇了。但是僅僅這個還是不夠的,我們在ubuntu下,使用lspci命令,如下圖,看看自己的VMware網卡是什麼,在配置選項中對應選上。

5
可以看出我的VMware網卡是PCnet32,在網路設備的配置界面中選擇上,如圖:

6
luci界面部分,這個很重要,他是用戶交互的。配置項有以下幾個,如圖:

7
collections中,選擇luci。如圖:

8
Application中,選擇luci-app-ddns,luci-app-firewall,luci-app-ntpc,luci-app-samba。如圖,也可以根據你自己的需要選擇。

9
Themes選項中全部選擇,如圖:

10
若有Translations 選項等,也可以把luci-i18n-chinese選擇上,這樣可以使用中文顯示了。
配置完成,保存之後,開始編譯,編譯的時候注意,openwrt默認是使用非root用戶的。如果你是root用戶,要切換到普通用戶。在以後開發中寫完自己的package之後記得也是用非root用戶編譯。另外編譯時會從網路上拉取依賴包和軟體,所以要保證虛擬機上的系統能上網。然後執行make
V=99,開始漫長的第一次編譯,編譯時間由電腦配置和網速決定。V=99的意思是顯示所有信息。
END
步驟3:VMware下安裝openwrt

1
編譯完成之後,進入到bin目錄下,可以發現很多文件,如圖,找到我們要的openwrt-x86-generic-combined-ext4.vmdk,拖至宿主機上。

2
我們在D盤建立目錄openwrt-vmware,把剛剛的vmdk文件放進去。然後VMware下建立新的虛擬機,選擇自定義模式,下一步,到安裝客戶操作系統時,選擇稍後安裝操作系統,下一步,選擇linux,下拉框中選擇ubuntu就可以,下一步,點擊位置輸入框的瀏覽,選擇剛剛建立的目錄。下一步配置cpu個數,內存,網路,IO控制器。根據需要自行選擇,下一步,選擇磁碟類型的時候,一定要選擇IDE類型。如圖:

3
下一步選擇磁碟,選擇「使用現有虛擬磁碟」,如圖:

4
下一步選擇現有的虛擬磁碟,如圖,瀏覽並選擇openwrt-vmware中的Openwrt-x86-generic-combined-ext4.vmdk。然後下一步,完成。接下來啟動虛擬機開始配置網路,讓我們可以本地瀏覽器訪問我們的openwrt虛擬機上的luci。

END
步驟4:開啟openwrt之旅

創建好了虛擬機,啟動之後。等待一會兒,當openwrt虛擬機完全啟動後,先修改密碼為root,然後執行如下的命令:
cd /etc/config
cat network
在lan->ipaddr中可以看到自己openwrt的IP。openwrt初始的IP是192.168.1.1,如果你的電腦是通過連接路由器上網,路由的默認IP,也就是我們的網關一般也是192.168.1.1,這樣就會沖突,你會連到路由上但是連不到openwrt上。所以我們修改自己的openwrt的IP,修改為192.168.1.3,這里一定要保證在同一個網段。執行如下的命令:
/etc/init.d/network restart
重啟整個網路。在本地ping這個IP,如果能通,表明你可以通過本地的瀏覽器訪問openwrt的網頁。如果不通,可能是網路不再同一網段或者VMware的聯網方式不是橋接。如果還是不通,那要分析具體的原因了。
此時在本地瀏覽器上輸入192.168.1.3,會出現如下的界面:
步驟閱讀
3
輸入密碼root,登錄,出現如下的界面,ok,到此,目的達成。

⑧ 如何編譯OpenWrt

Openwrt 官方正式的發行版是已編譯好了的映像文件(後綴名bin或trx、trx2),此映像文件可從Openwrt官方網站的下載頁面中輕松獲取到,連接地址為 OpenWrt官方網站。這些編譯好的映像文件是基於默認的配置設置,且只針對受支持的平台或設備的。因此,為什麼要打造一個自己的映像文件,理由有以下四點:
您想擁有一個個性化的配置OpenWrt(彰顯個性,在朋友圈子裡顯擺顯擺,開個玩笑);
您想在實驗性的平台上測試OpenWrt;
您參與測試或參與開發OpenWrt的工作;
或者,最簡單的目的就是為了保持自己的Openwrt為最新版本;
若想實現上述目的,其實很簡單,按下述文字即可成功編譯出一個您的Openwrt來。
准備工作
在開始編譯Openwrt之前需要您做些准備工作;與其他編譯過程一樣,類似的編譯工具和編譯環境是必不可少的:
一個構建OpenWrt映像的系統平台,簡單說就是准備一個操作系統(比如Ubuntu、Debian等);
確保安裝了所需的依賴關系庫, (在debian系統中就是安裝各種需要的軟體包)
OpenWrt源代碼副本
首先, 開機登陸到支持編譯Openwrt的操作系統(廢話了)。實體機或者虛擬機(Vmware 或者 Qemu)里的操作系統都行,這里推薦使用Linux系統。 bsd和mac osx系統也可以編,但不推薦,且未驗證是否可編譯成功。下文假定您使用的是Debian操作系統,使用 apt-get 來管理包. 替代的選擇是 Ubuntu (分支 Kubuntu, Xubuntu 等即可)。
第二步, 就是安裝所需要的各種軟體包, 包括編譯器,解壓工具,特定的庫等. 這些工作可以簡單的通過鍵入以下命令 (通常需要root 或者是 sudo 許可權),以root許可權安裝下列軟體包(可能並不完整,會有提示,提示缺少即裝就可以了):
32位(x86)請執行下列命令:
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev

64位(x86_64)請執行下列命令(多裝了哪些庫或軟體包呢?請您仔細看一看哦):
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev ia32-libs \
lib32gcc1 libc6-dev-i386

參考 本列表中 所列的編譯環境所需要軟體包或庫。
某些依賴的為庫或軟體包也許操作系統中已經安裝過,此時apt-get會作出提示(提示您忽略或重新安裝的),別緊張,放輕鬆些,編譯Openwrt不會像編譯DD-WRT那樣難的(至少本人是體會到了編譯DD-WRT的難)。
最後下載一份完整的 Openwrt 源碼到編譯環境中。關於Openwrt的源代碼下載,途徑有二,一是通過 svn ,一是通過 git,建議使用 svn ,因為Openwrt主要以 svn 來維護Openwrt系統的版本。另外,請注意Openwrt中不同的分支版本,一個是用得較多的開發快照,俗稱 trunk,二是穩定版,俗稱 backfire。
安裝Subversion
若你想通過svn下載源代碼,你需安裝 Subversion。Subversion,或稱SVN, 是OpenWrt的project中用來控製版本的系統,它非常類似的 CVS的界面和使用條款。 執行下述命令即可安裝SVN,很容易的:
# apt-get install subversion

Subversion安裝完畢,通過SVN命令可獲取得到一份OpenWrt純凈源代碼。您還得創建一個目錄以便存放獲取得到的Openwrt源代碼,要獲取源代碼你還得輸入subversion命令來獲取 (svn里這種操作稱之為'check out') 。命令很簡單的,繼續看下去就能見到了,別著急,耐心點兒。
編譯流程
編譯專屬於您的設備的特定Openwrt固件以一下五個步驟:
通過Subversion命令獲得源代碼;
更新(或安裝) package feeds〔package feeds無法確切翻譯,待譯吧);
創建一個默認配置以檢查編譯環境是否搭建好了 (假如需要的話);
用Menuconfig來配置即將編譯生成的固件映像文件的配置項;
最後開始編譯固件;
下載源代碼
最後,下載一份完整的OpenWrt源代碼。你可選擇:
下載穩定發行版,或
下載開發版 (俗稱"trunk"版)。
使用發行版的源碼
截止本文時, Openwrt公開發行的穩定版為 OpenWrt 10.03 "backfire"。此版本是最穩定的,但也許不包括最新更新的補丁或最新編寫的出的新功能。
下述代碼即舉例說明了通過svn從brandkfire獲得backfire源代碼(此版本意思是從trunk分支的補丁也在backfire版本中了,即包含修復補丁):
# mkdir OpenWrt/
# cd OpenWrt/
# svn co svn://svn.openwrt.org/openwrt/branches/backfire

註解: 上述svn命令將在當前目錄創建一個 OpenWrt/backfire/ 子目錄,此目錄包含此命令獲取到的源代碼。
您也可以通過下述命令,下載不含修復補丁的backfire的原版源碼:
# svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03

使用開發版源代碼
當前的開發版本分支(trunk)已包含最新的實驗補丁。此分支或許還突破了Openwrt原來所不支持的硬體設備的限制哦,驚喜的同時也有風險存在。因此,編譯trunk版,慎之~
# mkdir OpenWrt/
# cd OpenWrt/
# svn co svn://svn.openwrt.org/openwrt/trunk/

更多詳細資料詳見: https://dev.openwrt.org/wiki/GetSource.
跟進並更新源代碼
因Openwrt的源代碼隨時都會變動,故此命令將確保您所獲取得到的源碼的最新性。下述假設您用的是backfire版本的源碼:
## Here, backfire is the directory name of the current release branch you're tracking
# cd OpenWrt/backfire/
# svn up

'svn up' 命令用於更新SVN上更新了,但本地尚未更新的這部分源代碼(本人實踐證明此命令會將本地源碼與SVN上的源碼先比較,若SVN有更新才會下載更新的部分,很實用的一個命令)。如果未指定目標路徑,則此命令將更新當前目錄及當前目錄的子目錄內的源碼。
Feeds下載
Feeds即為包含到你的OpenWrt環境中的額外軟體包的索引之類的。(feed譯名很多,莫衷一是,至2008年底為止,還沒有一個十分通用而備受認可的中文譯名;所以此文當中我們用英文feed來稱呼)。 最主要的Feeds有以下三個:
'packages' - 路由的基本功能,
'LuCI' - OpenWrt默認的GUI(WEB管理界面), 及
'Xwrt' - 其他的GUI。
一般情況,你至少需要含 'packages' 和 'LuCI'兩個Feeds。
下載完feeds之後, (為編譯OpenWrt的recipies額外的預定義包) 您可以檢查哪些feeds要包括在內。編輯在你的編譯環境的根目錄下的'feeds.conf.default'文件。
然後使用下列命令開始下載(註:可能你需要先運行cd trunk進入trunk目錄才能成功執行下列命令):
# ./scripts/feeds update -a

在此之後,下載的軟體包需要安裝。亦即指的下邊的命令啦。若路過下邊的install命令則後續make menuconfig將無法成功執行!(註:可能你需要先運行cd trunk進入trunk目錄才能成功執行下列命令):
# ./scripts/feeds install -a

只需編輯Feeds的配置文件或運行更新命令,即可很方便地更新或添加新的實驗性的packages到源碼中並編譯到OpenWrt固件去。
注意:請老壇友及舊的新聞組成員們注意了,這一步取代了創建符號鏈接symlinks的老辦法哦。
更新Feeds
諸如此類源碼,你得定期更新Feeds。 通過如上相同的命令:
# ./scripts/feeds update -a
# ./scripts/feeds install -a

注意:若你清楚地知道你不需添加新的packages到menuconfig中去,那麼你可在更新Feeds時跳過這一步。
生成配置
You may not have to make configration always after updating sources and feeds, but making it ensures that all packages from source and feeds are correctly included in your build configuration.
Defconfig
下一步是檢查編譯環境,若可進行編譯則生成默認配置:
# make defconfig

若defconfig回顯提示缺少軟體包或編譯庫等依賴,則按提示安裝所缺軟體包或庫等即可,不難的,細心點就行。
Menuconfig
menuconfig是一個基於文本的工具,它處理選擇的目標(需要還是不需要)、編譯生成軟體包(openwrt下是IPKG格式)以及內核選項(編譯成模塊還是內核)等等
# make menuconfig

在你離開並保存配置文件(默認都是.config)後,將自動配置依賴關系,讓你可以著手編譯更新的固件。
大眾可通過'menuconfig'這一簡單的圖形化的配置環境,非常輕松地編譯出專屬您本人的OpenWrt固件。
可以用'menuconfig',以開發的意圖來編譯OpenWrt的固件,為自己(個人)創造一個結構簡單但是功能強大的環境。(上句實在難翻譯,只能意譯。並且也請大家都學習下編譯OP固件,讓以OP固件盈利的人丟掉那骯臟的飯碗!)
Menuconfig或多或少有些難以說明的地方,即使是最專業的配置,也可以尋求幫助並加以解決。 需要你指定何種目標平台,要包含的package軟體包和內核模塊等均需要你指定,配置標準的過程中會包括修改:
目標平台(即路由器何種架構,BCM呢還是AR均可選擇)
選擇要包含的package軟體包
構建系統設置
內核模塊
Target system is selected from the extensive list of supported platforms, with the numerous target profiles – ranging from specific devices to generic profiles, all depending on the particular device at hand. Package selection has the option of either 'selecting all package', which might be un-practical in certain situation, or relying on the default set of packages will be adequate or make an indivial selection. It is here needed to mention that some package combinations might break the build process, so it can take some experimentation before the expected result is reached. Added to this, the OpenWrt developers are themselves only maintaining a smaller set of packages – which includes all default packages – but, the feeds-script makes it very simple to handle a locally maintained set of packages and integrate them in the build-process.
假如你需要LuCI, 要到Administration 菜單里,在LuCI組件的子菜單下, 並選擇: luci-admin-core, luci-admin-full, and luci-admin-mini組件包。
假如你不需要PPP,你可到Network菜單下取消對它的選擇,以便編譯時不包含此組件。
Menuconfig用法: 確保這些組件包是以 '*'星號標記而不是 'M'標記。
如果你是以星號 '*'標記該組件包, 則該組件包將編譯進最終生成的OpenWrt固件中。
如果你僅以 'M'標記該組件包, 則該組件包將不會編譯進最終生成的OpenWrt固件中。
The final step before the process of compiling the intended image(s) is to exit 'menuconfig' – this also includes the option to save a specific configuration or load an already existing, and pre-configured, version.
Exit and save.
Source Mirrors
The 'Build system settings' include some efficient options for changing package locations which makes it easy to handle a local package set:
Local mirror for source packages
Download folder
In the case of the first option, you simply enter a full URL to the web or ftp server on which the package sources are hosted. Download folder would in the same way be the path to a local folder on the build system (or network). If you have a web/ftp-server hosting the tarballs, the OpenWrt build system will try this one before trying to download from the location(s) mentioned in the Makefiles . Similar if a local 'download folder', residing on the build system, has been specified. The 'Kernel moles' option is required if you need specific (non-standard) drivers and so forth – this would typically be things like moles for USB or particular network interface drivers etc.
編譯固件
萬事具備,只欠東風,通過下面簡單的make命令來編譯:
# make

在多核電腦中編譯
具有多核CPU處理器的電腦進行編譯,使用下述參數可令編譯過程加速。 常規用法為 <您cpu處理器的數目 + 1> – 例如使用3進程來編譯 (即雙核CPU), 命令及參數如下:
# make -j 3

後台編譯
若你在這個系統內編譯OpenWrt的同時還處理其他,可以讓閑置的I/O及CPU來在後台編譯固件 (雙核CPU):
# ionice -c 3 nice -n 20 make -j 2

編譯簡單的基本的軟體包
當你為OpenWrt開發或打包軟體包,編譯簡單的基本的軟體包可以很輕易地編譯該軟體包 (例如, 軟體包cups):
# make package/cups/compile V=99

一個在Feeds里的軟體包大約是這樣子的:
# make package/feeds/packages/ndyndns/compile V=99

編譯錯誤
如果因某種不知道的原因而編譯失敗,下面有種簡單的方法來得知編譯到底錯在哪裡了:
# make V=99 2>&1 |tee build.log |grep -i error

上述編譯命令意為:V99參數,將出錯信息保存在build.log,生成輸出完整詳細的副本(with stdout piped to stderr),只有在屏幕上顯示的錯誤。
舉例說明:
# ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 \
|tee build.log |egrep -i '(warn|error)'

The above saves a full verbose of the build output (with stdout piped to stderr) in build.log and outputs only warnings and errors while building using only background resources on a al core CPU.
一鍵編譯
即使用腳本來編譯Openwrt固件。許多朋友編譯Openwrt是用的腳本來編譯的,詳見: https://forum.openwrt.org/viewtopic.php?id=28267
生成的固件在哪
編譯成功後所生成的固件文件位於bin目錄下,可用如下命令查看:
# cd bin/
# ls */

清理
編譯OpneWrt時你可能需要一個清潔干凈的編譯環境。 以下操作有利用編譯工作:
清潔
清潔trunk/ 目錄,在編譯過程中使用「make clean」命令即可。 此命令將刪除bin目錄和build_dir目錄下的所有文件及文件夾。
## See CAUTION below
# make clean

⑨ openwrt對cpu的要求

openwrt對cpu的要求:openwrt的內核默認限制為8線程,需要更大可自行修改,可在內核配置中改大最大cpu支持數量。

OpenWrt可以被描述為嵌入式Linux發行版。(主流路由器固件dd-wrt、tomato、openwrt、padavan四類)相比單一、靜態的系統,openwrt包管理提供了一個完全可寫的文件系統,從應用程序供應商選擇和配置,並允許您定製設備,從而適應任何應用程序。
對於開發者來說,OpenWrt使用框架來構建應用程序,而不需要構建完整的固件來支持它們;對於用戶來說,這意味著完全定製和以前所未有的方式使用設備的能力。

閱讀全文

與編譯OPENWRT配置cpu相關的資料

熱點內容
程序員的實力測試 瀏覽:509
手機版寶可夢模組的伺服器怎麼進 瀏覽:118
qt在arm上編譯過程 瀏覽:124
黑白命令在哪裡 瀏覽:22
演算法崗問面試官的問題 瀏覽:116
720pjpg壓縮 瀏覽:525
經濟學人app怎麼用 瀏覽:733
thunderbird如何刪除伺服器 瀏覽:632
編譯內核模塊准備工作 瀏覽:186
protues單片機 瀏覽:679
淘寶想多開店怎麼租伺服器 瀏覽:580
小鹿情感app怎麼打不開了 瀏覽:325
可自編譯的C 瀏覽:62
vfl90壓縮機是哪個廠家 瀏覽:677
安卓系統游戲怎麼開發 瀏覽:410
抖助力app綁定的銀行卡怎麼辦 瀏覽:466
我的電腦文件夾打開方式 瀏覽:931
東莞加密u盤公司 瀏覽:137
graphvizlinux 瀏覽:438
智能手錶藍牙怎麼下載app 瀏覽:293