![OpenWrt移植簡(jiǎn)介及平臺(tái)應(yīng)用_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/13/7ce8c668-58c4-4a7c-ab49-bcb81529bbb3/7ce8c668-58c4-4a7c-ab49-bcb81529bbb31.gif)
![OpenWrt移植簡(jiǎn)介及平臺(tái)應(yīng)用_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/13/7ce8c668-58c4-4a7c-ab49-bcb81529bbb3/7ce8c668-58c4-4a7c-ab49-bcb81529bbb32.gif)
![OpenWrt移植簡(jiǎn)介及平臺(tái)應(yīng)用_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/13/7ce8c668-58c4-4a7c-ab49-bcb81529bbb3/7ce8c668-58c4-4a7c-ab49-bcb81529bbb33.gif)
![OpenWrt移植簡(jiǎn)介及平臺(tái)應(yīng)用_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/13/7ce8c668-58c4-4a7c-ab49-bcb81529bbb3/7ce8c668-58c4-4a7c-ab49-bcb81529bbb34.gif)
![OpenWrt移植簡(jiǎn)介及平臺(tái)應(yīng)用_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/13/7ce8c668-58c4-4a7c-ab49-bcb81529bbb3/7ce8c668-58c4-4a7c-ab49-bcb81529bbb35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 openwrt移植簡(jiǎn)介及平臺(tái)應(yīng)用移植簡(jiǎn)介及平臺(tái)應(yīng)用 openwrt 簡(jiǎn)介 openwrt 編譯環(huán)境搭建 openwrt 編譯及其常見問題 openwrt 固件升級(jí) 如何在openwrt環(huán)境下做開發(fā) 相關(guān)資源收集 openwrt 簡(jiǎn)介 openwrt是一個(gè)高度模塊化、高度自動(dòng)化的嵌入式linux 系統(tǒng),擁有強(qiáng)大的網(wǎng)絡(luò)組件,常常被用于工控設(shè)備、電話、 小型機(jī)器人、智能家居、路由器以及voip設(shè)備中。 openwrt支持各種處理器架構(gòu),無論是對(duì)arm,x86, powerpc或者mips都有很好的支持。 其多達(dá)3000多種軟 件包,囊括從工具鏈(toolchain),到內(nèi)核(linux kerne
2、l), 到軟件包(packages),再到根文件系統(tǒng)(rootfs)整個(gè)體系, 使得用戶只需簡(jiǎn)單的一個(gè)make命令即可方便快速地定制 一個(gè)具有特定功能的嵌入式系統(tǒng)來制作固件。 其模塊化 設(shè)計(jì)也可以方便的移植各類功能到openwrt下,加快開發(fā) 速度。 openwrt 簡(jiǎn)介 openwrt的特點(diǎn) openwrt提供了一個(gè)完全可寫文件系統(tǒng)及 軟件包管理, 它通過簡(jiǎn)單易用的方式,最大限度地降低了嵌入式linux開 發(fā)的門檻,并充分釋放并挖掘嵌入式設(shè)備的潛能,它允許 您使用軟件包的概念來定制嵌入式設(shè)備,這使得它能適用 于絕大多數(shù)應(yīng)用。對(duì)于開發(fā)人員,openwrt提供簡(jiǎn)單易用 的環(huán)境框架來構(gòu)建應(yīng)用程序。
3、對(duì)于用戶來說,這意味著完 全定制的自由,它通過您預(yù)想不到的方式讓你了解嵌入式 是什么。 開源和free openwrt項(xiàng)目是gpl許可下的完全自由和開 放源碼的項(xiàng)目。項(xiàng)目打算將源代碼永久存放于openwrt站 點(diǎn),以便易于獲得源代碼。 輕松和自由的入門 為什么選擇openwrt 為什么使用openwrt? gnu為我們提供了很多免費(fèi)的軟件,我們可以用一個(gè)很 低的價(jià)錢購買像wrt54g的硬件,做成一個(gè)小型的linux 系統(tǒng),現(xiàn)在openwrt已經(jīng)提供了近千個(gè)多個(gè)已編譯好的軟 件,而且數(shù)量還在不斷增加,而openwrtsdk更是簡(jiǎn)化了 嵌入軟件開發(fā)的工序。 為什么學(xué)習(xí)openwrt? 你不需要對(duì)m
4、ips處理器有很深入的了解,也不用懂得如何 去設(shè)計(jì)一個(gè)arm或mips處理器專用的linux內(nèi)核,因?yàn)檫@些 在網(wǎng)上已有人為你做好,你只需懂得如何安裝和使用就行 了,不過你也可以去 找到相關(guān)的 資料。如果你對(duì)linux系統(tǒng)有一定的認(rèn)識(shí),并想學(xué)習(xí)或接觸 嵌入式linux的話,openwrt很適合你,你將學(xué)會(huì)一些無線路 由器的基本知識(shí),以及一般嵌入式linux的開發(fā)過程. 為什么選擇openwrt 通過openwrt快速構(gòu)建一個(gè)應(yīng)用平臺(tái),openwrt從 交叉編譯器,到linux內(nèi)核,再到文件系統(tǒng)甚至 bootloader都整合在了一起,形成了一個(gè)sd
5、k環(huán) 境。 隨著linux的成熟,大量不同的處理器內(nèi)核和 應(yīng)用軟件相繼出現(xiàn),當(dāng)你熟悉這些嵚入式linux的 基本開發(fā)流程后,你不再局限于mips處理器和無 線路由器,你可以嘗試在其它處理器,或者非無線路 由器的系統(tǒng)移植嵌入式linux, 定制合適自己的應(yīng) 用軟件,并建立一個(gè)完整的嵌入式產(chǎn)品。 openwrt 編譯環(huán)境搭建 首 先, 要有支持編譯openwrt的操作系統(tǒng)。 實(shí)體機(jī)或者虛擬機(jī)(vmware 或者 qemu)里 的操作系統(tǒng)都行,這里推薦使用linux系統(tǒng)。 bsd和mac osx系統(tǒng)也可以編,但不推薦, 且未驗(yàn)證是否可編譯成功。下文中我使用 的是ubuntu操作系統(tǒng),使用 apt-g
6、et 來管理 包。 openwrt 編譯環(huán)境搭建 第二步, 就是安裝所需要的各種軟件包, 包括編譯器,解壓工 具,特定的庫等. 這些工作可以簡(jiǎn)單的通過鍵入以下命令 (通 常需要root 或者是 sudo 權(quán)限),以root權(quán)限安裝下列軟件包 (可能并不完整,會(huì)有提示,提示缺少即裝就可以了): 32位(x86)請(qǐng)執(zhí)行下列命令: # apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev 64位(x86_64)請(qǐng)執(zhí)
7、行下列命令(多裝了哪些庫或軟件包呢? 請(qǐng)您仔細(xì)看一看哦): # 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 openwrt 編譯環(huán)境搭建 參考 本列表中 所列的編譯環(huán)境所需要軟件 包或庫。 某些依賴的為庫或軟件包也許操作系統(tǒng)中 已經(jīng)安裝過,此時(shí)apt-get會(huì)作出提示(提 示您忽略或重新安裝的) openwrt 編譯環(huán)境搭建 最
8、后下載一份完整的 openwrt 源碼到編譯 環(huán)境中。關(guān)于openwrt的源代碼下載,途徑 有二,一是通過 svn ,一是通過 git,建議 使用 svn ,因?yàn)閛penwrt主要以 svn 來維 護(hù)openwrt系統(tǒng)的版本。另外,請(qǐng)注意 openwrt中不同的分支版本,一個(gè)是用得較 多的開發(fā)快照,俗稱 trunk,二是穩(wěn)定版, 俗稱 backfire。 openwrt 編譯環(huán)境搭建 安裝subversion 若你想通過svn下載源代碼,你需安裝 subversion。subversion,或稱svn, 是 openwrt的project中用來控制版本的系統(tǒng), 它非常類似的 cvs的界面和使用
9、條款。 執(zhí) 行下述命令即可安裝svn,很容易的: # apt-get install subversion openwrt 編譯 subversion 安裝完畢,通過svn命令可獲 取得到一份openwrt純凈源代碼。您還得 創(chuàng)建一個(gè)目錄以便存放獲取得到的openwrt 源代碼,要獲取源代碼你還得輸入 subversion命令來獲取 (svn里這種操作稱 之為check out) 。 openwrt 編譯 編譯流程編譯流程 編譯專屬于您的設(shè)備的特定openwrt固件以一下五個(gè)步驟: 通過subversion命令獲得源代碼; 更新(或安裝) package feeds 創(chuàng)建一個(gè)默認(rèn)配置以檢查編譯
10、環(huán)境是否搭建好了 (假 如需要的話); 用menuconfig來配置即將編譯生成的固件映像文件 的配置項(xiàng); 最后開始編譯固件; openwrt 編譯 下載源代碼 最后,下載一份完整的openwrt源代碼。你可選擇: 下載穩(wěn)定發(fā)行版,或 下載開發(fā)版 (俗稱“trunk”版)。 使用發(fā)行版的源碼 openwrt公開發(fā)行的穩(wěn)定版為 openwrt 10.03 backfire。 此版本是最穩(wěn)定的,但也許不包括最新更新的補(bǔ)丁或最新 編寫的出的新功能。 下述代碼即舉例說明了通過svn從brandkfire獲得backfire源 代碼(此版本意思是從trunk分支的補(bǔ)丁也在backfire版本中 了,即包
11、含修復(fù)補(bǔ)丁): openwrt 編譯 # mkdir openwrt/ # cd openwrt/ # svn co svn://openwrt/branches/backfire 您也可以通過下述命令,下載不含修復(fù)補(bǔ)丁的 backfire的原版源碼: # svn co svn://openwrt/tags/backfire_10. 03 注解: 上述svn命令將在當(dāng)前目錄創(chuàng)建一個(gè) openwrt/backfire/ 子目錄,此目錄包含此命令獲 取到的源代碼。 openwrt 編譯 使用開發(fā)版源代碼 當(dāng)前的開發(fā)版本分支(trunk)已
12、包含最新的實(shí)驗(yàn)補(bǔ)丁。此分 支或許還突破了openwrt原來所不支持的硬件設(shè)備的限制 哦,驚喜的同時(shí)也有風(fēng)險(xiǎn)存在。mkdir openwrt/ cd openwrt/ svn co svn://openwrt/trunk/(回車后等 待下載) svn 回滾 或 svn 指定版本 需要的版本是 28007,操作: svn co svn://openwrt/trunk -r 28007 回滾或到指定版本:svn up -r 28007 指定luci版本 cd trunk/feeds/luci svn up -r r7612 openwrt
13、編譯 關(guān)于關(guān)于openwrt dreambox openwrt中文網(wǎng) 創(chuàng)建于2010年2月14日 建立了技術(shù)論壇、開發(fā)站點(diǎn)、下載中心。 主要是為openwrt的中文化,以及固件的易用性。 獲取dreambox trunk開發(fā)版svn代碼庫 # svn co svn:/ openwrt-pandorabox openwrt 編譯 開始準(zhǔn)備編譯 首先跟進(jìn)并更新源代碼 因openwrt的源代碼隨時(shí)都會(huì)變動(dòng),故此命令將 確保您所獲取得到的源碼的最新性。 如果你用的是backfire版本的源碼: cd openwrt/backfire/ 如果你用的是trunk版本的源碼: cd openwrt/trun
14、k/ svn up ./scripts/feeds update -a ./scripts/feeds install -a openwrt 編譯 下一步是檢查編譯環(huán)境,若可進(jìn)行編譯則 生成默認(rèn)配置: make defconfig 若defconfig回顯提示缺少軟件包或編譯庫 等依賴,則按提示安裝所缺軟件包或庫等 即可,不難的,細(xì)心點(diǎn)就行。 進(jìn)入編譯組件包菜單 make menuconfig openwrt 編譯 make menuconfig會(huì)有一個(gè)編譯管理器,在里面可以選擇 型號(hào)、op功能組件,需要用到方向鍵、回車鍵、空格鍵。 方向鍵是移動(dòng)光標(biāo),回車鍵是確認(rèn),空格鍵是選擇(在選 項(xiàng)框按下
15、空格鍵,*號(hào)是編譯進(jìn)固件,m是編譯但是不編譯 進(jìn)固件)。 1.選擇cpu型號(hào) target systematheros ar71xx/ar7240/ar913x/ar934x 2.選擇路由型號(hào) target profile-tp-link tl-wr703 3.添加luci lucicollections luci openwrt 編譯 4.添加luci的中文語言包 lucitranslations- luci-i18n-chinese 5.添加ddns luciapplications luci-app-ddns. 6.添加usb掛載 base system block-mount 7.添加
16、硬盤格式支持 kernel modules filesystems kmod-fs-ext4 8.添加utf8編碼 kernel modules native language support kmod-nls-utf8 9.添加usb擴(kuò)展支持 kernel modules usb support kmod-usb-storage-extras. 110.添加自動(dòng)掛載工具 utilities filesystem badblocks openwrt 編譯 開始編譯make v=99,最后會(huì)得到一個(gè)4m的帶中文 luci的tl-wr703n固件。 網(wǎng)上固件下載網(wǎng)址: http:/download
17、/ 在編譯的時(shí)候需要比較長(zhǎng)的時(shí)間,因?yàn)橐螺d很多 軟件包,假如編譯下載不成功,可以退出,自己去 下載后放入dl的文件夾下,再繼續(xù)編譯。 如果出現(xiàn)編譯錯(cuò)誤,請(qǐng)?jiān)俅螜z查開始編譯前那些依 賴程序裝好了沒有 ,如果還有錯(cuò)誤請(qǐng)看后面的編譯出 現(xiàn)的常見問題。 openwrt 編譯 若編譯成功,會(huì)出現(xiàn)如下圖所示: openwrt 編譯 編譯成功后,在/openwrt/trunk/bin/ar71xx 目錄下可見如下2個(gè)固件, openwrt-ar71xx-generic-tl-wr703n-v1- squashfs-factory.bin 出廠帶配置的固件 openwrt-ar71
18、xx-generic-tl-wr703n-v1- squashfs-sysupgrade.bin 在原來的openwrt基礎(chǔ)上更新的固件 openwrt 編譯 內(nèi)核配置 make kernel_menuconfig命令是進(jìn)去配 kernel 這和普通的linux kernel的 make menuconfig沒有什么區(qū)別 ,在 machine selection加一個(gè)選擇board,選 tl-wr703n supprot。其他需要什么就配 置什么,與linux內(nèi)核一樣。配置完后重新 編譯。 openwrt 編譯 修改默認(rèn)ssid,添加wifi配置 修改mac80211.sh文件,位于packa
19、ge/mac80211/files/lib/wifi option disabled 1改成0,默認(rèn)開啟wifi。 option disabled 0下添加 option htmode ht40+ option channel 1 option country cn option txpower 17 option ssid openwrt-wr703 option htmode ht40+ 使用40mhz頻寬,但只支持1-7信道。ht40-,支持5- 13信道。ht20 支持1-13信道,20mhz頻寬 option channel 1使用信道1,1-13之間。若有限定頻寬,信道參考如上。
20、option country cn 設(shè)定wifi標(biāo)準(zhǔn)為中國(guó) option txpower 17 發(fā)射功率為17dbm,大約50mw。按實(shí)際板子的功率來設(shè) 置。 openwrt 編譯 修改root密碼 由于openwrt默認(rèn)是沒有密碼的,所以ssh沒法連接, 只能連接telnet,我們只要做到讓openwrt開啟時(shí) 就配置好密碼就可以了! 修改shadow文件,位于package/base-files/files/etc 如需要密碼為root: root:$1$ioswlaew$jwht3bwuhtq7vklywxwpv 0:15811:0:99999:7: 將密碼修改成root。 編譯的常見問
21、題 一、普遍問題 a.在menuconfig中找不到所需的組件,用腳 本./scripts/feeds 安裝對(duì)應(yīng)的package,嫌麻煩直接-a, 就是時(shí)間長(zhǎng)點(diǎn)。 b.編譯完成后bin目錄下找不到生成的固件,恭喜你,你犯 了跟我一樣2b的錯(cuò)誤,你選擇的組件過大,導(dǎo)致所需的固 件大小操作targets源代碼中的限制,解決方法,如果確定 你的flash比較大,修改源代碼,各個(gè)路由器不同網(wǎng)上找, 否則減少組件,只選擇最基本的組件。 c.編譯錯(cuò)誤,查看錯(cuò)誤信息。make的時(shí)候加參數(shù)v=99, 為便于查找錯(cuò)誤可以重導(dǎo)向一下2 return 0; 如何在openwrt環(huán)境下做開發(fā) 編寫makefile文件
22、 # build helloworld executable when user executes make helloworld: helloworld.o $(cc) $(ldflags) helloworld.o -o helloworld helloworld.o: helloworld.c $(cc) $(cflags) -c helloworld.c # remove object files and executable when user executes make clean clean: rm *.o helloworld 在這兩個(gè)文件的目錄下,執(zhí)行make 應(yīng)該可以生成h
23、elloworld的可執(zhí)行 文件。執(zhí)行helloworld后,能夠打印出“hell! o world, why wont my code compile?”。 這一步,主要保證我們的源程序是可以正常編譯的。 下面我們將其移植到openwrt上。 如何在openwrt環(huán)境下做開發(fā) 將openwrt-sdk-ar71xx-for-linux-i686-gcc-4.3.3+cs_uclibc-.tar.bz2解壓 tar xvf openwrt-sdk-ar71xx-for-linux-i686-gcc-4.3+cs_uclibc-.3.tar.bz2 (3)進(jìn)入sdk cd openwrt-sdk-ar71xx-for-linux-i686-gcc-4.3.3+cs_uclibc- 可以看到里面的目錄結(jié)構(gòu)跟我們之前source的目錄結(jié)構(gòu)基本相同,所需要編譯的軟件包, 需要放置在packag
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023八年級(jí)道德與法治上冊(cè) 第二單元 遵守社會(huì)規(guī)則 第五課 做守法的公民 第2框 預(yù)防犯罪說課稿 新人教版
- Unit 2 Ways to school Part A Let's learn (說課稿)-2024-2025學(xué)年人教PEP版英語六年級(jí)上冊(cè)001
- 10的再認(rèn)識(shí)(說課稿)-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)人教版
- 2 時(shí)、分、秒(說課稿)-2023-2024學(xué)年二年級(jí)下冊(cè)數(shù)學(xué)蘇教版
- 2金木水火土 第1課時(shí)(說課稿)2024-2025學(xué)年部編版語文一年級(jí)上冊(cè)
- 2025道路清掃保潔承包合同范本
- 2025采購合同書范本
- 2023八年級(jí)物理下冊(cè) 第八章 壓強(qiáng)第二節(jié) 科學(xué)探究:液體的壓強(qiáng)第1課時(shí) 液體壓強(qiáng)的產(chǎn)生、特點(diǎn)及計(jì)算說課稿 (新版)滬科版001
- 2025年工作趨勢(shì)報(bào)告+Work+Trends+Report+2025
- 2023三年級(jí)語文上冊(cè) 第二單元 4 古詩三首 贈(zèng)劉景文說課稿 新人教版
- 華為智慧園區(qū)解決方案介紹
- 2022年江西省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 【招投標(biāo)管理探究的國(guó)內(nèi)外文獻(xiàn)綜述2600字】
- 一例蛇串瘡患者個(gè)案護(hù)理課件
- DB63-T 2269-2024 公路建設(shè)項(xiàng)目安全生產(chǎn)費(fèi)用清單計(jì)量規(guī)范
- 低壓電工理論考試題庫低壓電工考試題
- 國(guó)家電網(wǎng)培訓(xùn)課件
- 五年級(jí)上冊(cè)口算練習(xí)400題及答案
- 駱駝祥子選擇題100道及答案
- 2024年公務(wù)員考試題庫附答案【完整版】
- T-GDWCA 0019-2018 輻照工藝操作規(guī)范
評(píng)論
0/150
提交評(píng)論