openwrt18固件編譯
A. 如何編譯openwrt固件
朋友你好,想要編譯oPEnwrt的固件需要用到編程技術,必須要有很高的計算機技術才可以進行編譯
B. 如何將openwrt ipk包直接編譯到固件
如果你只是要編譯一個自定義的固件(默認帶什麼軟體,不帶什麼軟體,自定義默認的配置等等),那推薦你用ImageBuilder,簡單快速,省心省力 你要是需要自己開發軟體包,用OpenWRT的SDK,直接出ipk文件 要完全重寫就buildroot
C. openwrt怎麼編譯指定的目標版
編譯流程
編譯專屬於您的設備的特定Openwrt固件以一下五個步驟:
通過Subversion命令獲得源代碼;
更新(或安裝) package feeds[package feeds無法確切翻譯,待譯吧);
創建一個默認配置以檢查編譯環境是否搭建好了 (假如需要的話);
用Menuconfig來配置即將編譯生成的固件映像文件的配置項;
最後開始編譯固件;
D. 怎麼在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分鍾之內。
E. Openwrt 固件編譯怎麼樣添加patch 去修改一些默認配置
--- a/libs/web/root/etc/歷遲坦config/luci 2009-09-10 16:05:56.000000000 +0800
+++ b/libs/web/root/etc/config/旦桐luci 2012-10-30 11:18:41.732607000 +0800
@@ -1,5 +1,5 @@
config core main
- option lang auto
+ option lang zh_cn
option mediaurlbase /luci-static/openwrt.org
option resourcebase /luci-static/肢桐resources
aa的話是放在/feeds/luci/luci/patches/123.patch
F. Openwrt 固件編譯怎麼樣添加patch 去修改一些默認配置
wifi默認開啟要改package/kernel/mac80211/files/lib/wifi/mac80211.sh 你打開這個文件然後拉到最底下就會明白的。
luci默認中文啊……我是改了luci-i18n-chinese的uci-defaults
在源碼根目錄下新建一個files文件夾,然後所有辯改你希望放進固件的文件都可以放到這里,編譯固件後這些東西會全部被拷貝進固件里。(比如你希望在/etc/下放一個叫做a的文件你只要創建一個files然後在這個文件夾裡面搏灶慶新建etc文件夾,把a文件放到裡面就行。)
希望修改配置文件的話比較和諧的辦法是一個一個基握找配置文件的位置並進行修改。而比較暴力的辦法就是直接用上一行的方法覆蓋配置文件……弄不好會有一點後遺症……
G. 如何編譯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
等等。
H. 如何編譯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。
I. 如何編譯自己的openwrt中文固件
今天路由固件的世界幾乎都是linksys WRT54G 開創出來的, 這個型號的固件開源之後,逐漸衍生出來今天的強盡的DDWRT/tomato/openwrt固件。linksys WRT54G 是博通的晶元。 正是因為這個歷史原因,DDWRT/tomato/openwrt固件 對博通晶元的支持最好,對其他的晶元比較差, 或者根本不支持其他的晶元。 個人認為,3個固件裡面,tomato的用戶體驗相對最好。但是僅僅支持博通晶元。DDWRT對博通晶元的支持好, 對一些athero也可以,對螃蟹的支持很差。但是DDWRT固件過於陳舊,比 tomato落後很多。openwrt固件可以支持很多晶元,但是用戶體驗相對最差,但是如果想用好openwrt固件,用戶需要自己編譯openwrt固件適應各種晶元/功能,或者說用戶需要具有獨立開發新產品的能力。國內的很多垃圾路由原廠固件就是盜用的openwrt固件,開發的時候把硬體要求降到最低,一旦售出,概不維護。因為沒有優秀固件的連續支持,找到螃蟹的好芯有啥意義,難道您想幫螃蟹開發維護固件。用戶需要的功能來自於優異的固件。但是目前看來,優秀固件的只支持博通的晶元。難道您的倉庫里積壓了太多的螃蟹晶元路由,需要用新手上路的第一貼,來論壇打軟廣告。