A. 如何在openwrt系統內核源碼中添加列印語句
內核對於mac80211的代碼跟進比較謹慎,openwrt一般使用比較新的mac80211源碼(即自帶的源碼)來生成對應的kmod模塊,而不使用內核源碼包中的mac80211,這就是我在內核源碼包中的mac80211中進行修改時沒有產生效果的原因。隨後,我在內核源碼包同級的目錄下找到了openwrt自帶的mac80211(compat-wireless),在這里進行修改,就可以了。要列印的語句就出現了在kernel log中了。
B. 如何從零開始學習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 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、個人網站/伺服器
C. 【疑問】openwrt里如何使用make編譯源碼
這有一個安裝包,不知對你有用沒。在X86虛擬機安裝後,就有make了。不過我這還是用不了,提示沒有cc 命令。 http://downloads.openwrt.org/backfire/10.03.1/x86_generic/packages/make_3.81-1_x86.ipk
D. openwrt的USB驅動源代碼在什麼哪個文件夾下
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
系統文件一般在根目錄中的etc配置文件中,你去找找看吧。
E. 如何編譯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
等等。
F. openwrt怎麼編譯自定義內核模塊啊
開發環境為ubuntu.首先搭建編譯環境。
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev gawk asciidoc libz-dev git-core build-essential libssl-dev
下面就是下載源碼,源碼分兩種,一種是最新版但不穩定,就是trunk版,一種是相對穩定版,
如果不是最新下載,最好定期更新代碼,命令為
./scripts/feeds update –a
./scripts/feeds install –a
接著就是編譯了。編譯方法如下:
make defconfig
make menuconfig進入定製界面,選擇自己的設備類型。
make V=99
下面就是增加內核模塊的方法了
進入package目錄,創建模塊目錄
cd backfire/package
mkdir example
進入example目錄,創建Makefile文件和代碼路徑
cd example
touchMakefile
mkdir src
G. openwrt 不顯示內核代碼
openwrt 不顯示內核代碼設置如下:
系統內核設置:OpenWrt也是一個 Linux 操作系統,因此它和桌面操作系統 Ubuntu及Fedora 一樣, 採用sysctl作為系統的內核配置工具。sysctl.conf作為其內核配置文件在啟動時進行載入。
非UCI系統配置:OpenWrt還有一些配置並不是通過UCI配置來實現的,這部分是大多數 Linux 系統都有的配置,並且用戶很少修改,因此並不提供介面給用戶修改。
H. openwrt的USB驅動源代碼在什麼哪個文件夾下
(!文末,附加人生如戲寫的編譯OPENWRT的TXT內容,可直接跳至末尾,有例子)
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/
I. 如何能夠看到openwrt的源代碼 以c語言的形式 能夠看出功能是如何用c語言實現的
既然是開源的,那就可以直接下載代碼來看。如果找不到源代碼的下載地址,可以問一下有關的技術支持人員,一般會提供源代碼下載地址
J. 如何將一個現成的ipk加入到openwrt編譯出的固件中
(!文末附加戲寫編譯OPENWRTTXT內容直接跳至末尾例)
Openwrt 官式發行版已編譯映像文件(綴名bin或trx、trx2)映像文件Openwrt官網站載頁面輕松獲取連接址 OpenWrt官網站些編譯映像文件基於默認配置設置且針受支持平台或設備要打造自映像文件理由四點:
您想擁性化配置OpenWrt(彰顯性朋友圈顯擺顯擺玩笑);
您想實驗性平台測試OpenWrt;
您參與測試或參與發OpenWrt工作;
或者簡單目保持自Openwrt新版本;
若想實現述目其實簡單按述文字即功編譯您Openwrt
准備工作
始編譯Openwrt前需要您做些准備工作;與其編譯程類似編譯工具編譯環境必少:
構建OpenWrt映像系統平台簡單說准備操作系統(比Ubuntu、Debian等);
確保安裝所需依賴關系庫 (debian系統安裝各種需要軟體包)
OpenWrt源代碼副本
首先 機登陸支持編譯Openwrt操作系統(廢)實體機或者虛擬機(Vmware 或者 Qemu)操作系統都行推薦使用Linux系統 bsdmac 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載源代碼,需安裝 SubversionSubversion,或稱SVN, OpenWrtproject用控製版本系統,非類似 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"版本穩定許包括新更新補丁或新編寫新功能
述代碼即舉例說明通svnbrandkfire獲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/
更詳細資料詳見:
跟進並更新源代碼
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 (編譯OpenWrtrecipies額外預定義包) 您檢查哪些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
注意:若清楚知道需添加新packagesmenuconfig更新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基於文本工具處理選擇目標(需要需要)、編譯軟體包(openwrtIPKG格式)及內核選項(編譯模塊內核)等等
# 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處理器電腦進行編譯使用述參數令編譯程加速 規用 – 例使用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.