1 什么是 Openwrt
配套資料在網(wǎng)盤資料的“iTOP-i.MX6 系列開發(fā)板(6Q,6D,6QPLUS)\4_iTOP-i.MX6 開發(fā)板資料匯總(不含光盤資料)\12_iTOP-i.MX6 開發(fā)板 buildroot 系統(tǒng) OTA 升級(jí)” Cisco/Linksys 在 2003 年發(fā)布了 WRT54G 這款無線路由器,同年有人發(fā)現(xiàn)它的 IOS 是基于 Linux 的,然而Linux 是基于 GPL 許可證發(fā)布的,按照該許可證 Cisco 應(yīng)該把 WRT54G 的 IOS 的源代碼公開。
2003 年 3 月,Cisco 迫于公眾壓力公開了 WRT54G 的源代碼。此后就有了一些基于 Cisco 源碼的第三方路由器固件,OpenWrt 就 是其中的一個(gè)。
OpenWrt 的特點(diǎn):
可擴(kuò)展性好,可以在線安裝您所需要的功能,目前有 1000 多個(gè)功能包可選;
是一臺(tái)完整的 Linux 工作站,文件系統(tǒng)可讀可寫,便于開發(fā)者學(xué)習(xí)和實(shí)踐;
2 為什么要使用軟路由?
首先家里面的路由器功能有限,很多功能不支持,就比如外網(wǎng)然后家中普通路由器支持一定的功能,但是性能有限,開啟復(fù)雜功能之后原本路由器的職責(zé)又承擔(dān)不了了,會(huì)出現(xiàn)丟包斷流等現(xiàn)象,這時(shí)候需要?jiǎng)e的硬件來完成高層的工作,減輕路由器的負(fù)擔(dān),保證家庭網(wǎng)絡(luò)的運(yùn)行的流暢穩(wěn)定。
我們一般家庭的網(wǎng)絡(luò)拓?fù)鋱D,如下圖所示:
根據(jù)上述圖片,我們已經(jīng)知道了家庭網(wǎng)絡(luò)的大致結(jié)構(gòu),那么我們現(xiàn)在就需要在中間設(shè)置一個(gè)代理,把本來從用戶走向路由器的流量攔下來,經(jīng)過這個(gè)代理的“處理”之后,再直接給家庭路由器發(fā)送出去即可,
這樣家庭路由器只需要關(guān)注傳統(tǒng)的路由交換功能,而不需要處理傳輸層或者應(yīng)用層的數(shù)據(jù)了,這就保證了家庭路由器的低負(fù)載和網(wǎng)絡(luò)功能的增強(qiáng)。于是,我們提出來的一種新的網(wǎng)絡(luò)結(jié)構(gòu),其物理結(jié)構(gòu)如下:
實(shí)際的數(shù)據(jù)流向如下圖所示:
叫旁路由的原因其實(shí)就是因?yàn)樗蛼煸谝慌岳玻遣皇呛苄蜗竽兀?/p>
3 openwrt 的編譯
本章節(jié)參考 lede 大神的教程進(jìn)行編譯,具體鏈接為 https://github.com/coolsnowwolf/lede
下面是幾點(diǎn)注意事項(xiàng):
1.不要用 root 用戶進(jìn)行編譯!!!
2.請(qǐng)全程使用
3.默認(rèn)登陸 IP 192.168.1.1 密碼 password
對(duì)于第一次編譯,迅為已經(jīng)編譯完成,存放路徑為“
iTOP-i.MX6 系列開發(fā)板(6Q,6D,6QPLUS)\4_iTOP-i.MX6開發(fā)板資料匯總(不含光盤資料)\12_iTOP-i.MX6 開發(fā)板 openwrt 文件系統(tǒng)\03_編譯好的源碼”。
編譯環(huán)境為 Ubuntu 64bit,推薦 Ubuntu 20.04 LTS x64 首先進(jìn)入終端,輸入命令,使用以下命令搭建編譯環(huán)境
編譯環(huán)境搭完成后,使用命令 git clone https://github.com/coolsnowwolf/lede,對(duì) lede 大神的源碼進(jìn)行克隆拉取,拉取完成會(huì)在當(dāng)前目錄下產(chǎn)生名字為 lede 的文件夾如下圖所示:
或者將迅為已經(jīng)下載好的源碼拷貝到 ubuntu 虛擬機(jī)上,使用命令對(duì)其解壓縮也也可以實(shí)現(xiàn),源碼存放 路徑為“iTOP-i.MX6 系列開發(fā)板(6Q,6D,6QPLUS)\4_iTOP-i.MX6 開發(fā)板資料匯總(不含光盤資料) \12_iTOP-i.MX6 開發(fā)板 openwrt 文件系統(tǒng)\01_編譯所需源碼”
然后使用命令“cd lede”進(jìn)入該文件夾,
作者這里為已經(jīng)編譯完成的,具體文件可能會(huì)有區(qū)別,拉取成功即可。
使用下列命令進(jìn)行更新擴(kuò)展:
./scripts/feeds update -a
擴(kuò)展時(shí)間略長(zhǎng)請(qǐng)耐心等待,擴(kuò)展過程如下圖所示:
更新擴(kuò)展完成之后繼續(xù)輸入命令
./scripts/feeds install -a
進(jìn)行安裝擴(kuò)展。安裝完成之后我們的環(huán)境就搭建完成了。
安裝擴(kuò)展完成后。輸入命令“make menuconfig”,進(jìn)入可視化界面進(jìn)行配置,如下圖所示:
點(diǎn)擊回車進(jìn)入首選項(xiàng) Target System,如下圖所示:
對(duì)相應(yīng)的平臺(tái)架構(gòu)進(jìn)行選擇,我們選擇 i.MX 6,
選擇后,功能頁面如下圖所示:
其他的地方不需要修改,通過 save 進(jìn)行保存,
通過 Exit 進(jìn)行退出,
回到源碼目錄后,使用命令
make -j8 download V=s
下載 dl 庫(kù),
輸入命令
make -j1 V=s
即可開始編譯你要的固件了。
編譯時(shí)間取決于自身機(jī)器的性能,大約五個(gè)小時(shí)左右。編譯完成如下圖所示:
4 openwrt 文件系統(tǒng)的燒寫
編譯完成后,使用命令
cd bin/targets/imx6/generic
進(jìn)入 generic 目錄,在這里我們只用最后生成的文件系統(tǒng),如下圖所示:
然后拷貝該文件系統(tǒng)到任意目錄(看個(gè)人,自己怎樣方便怎樣來),作者拷貝到了/home/topeet/rootfs 目錄下,
使用命令
tar -vxf openwrt-imx6-default-rootfs.tar.gz
對(duì)其進(jìn)行解壓縮,
然后使用命令
rm -rf openwrt-imx6-default-rootfs.tar.gz
移除原壓縮文件,如下圖所示:
然后使用命令
tar -zcvf rootfs.tgz bin etc mnt proc root sys usr www dev lib overlay rom sbin tmp var
對(duì)文件進(jìn)行打包處理,壓縮成我們能燒寫的文件格式。
如下圖所示,可以看到我們所需要的壓縮文件已經(jīng)生成了
將該壓縮文件燒寫進(jìn)我們的開發(fā)板。
燒寫完成之后正常上電啟動(dòng),進(jìn)入 uboot 模式,來設(shè)置啟動(dòng)方式,由于我們燒寫的是 Linux 系統(tǒng),所以
我們使用以下命令來設(shè)置 Linux 啟動(dòng)
setenv bootsystem qt
使用命令來保存。
saveenv
最后使用命令重啟,開發(fā)板重啟就可以正常啟動(dòng)了,正常啟動(dòng)如下圖所示:
至此我們的文件系統(tǒng)就燒寫成功了。
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
5081瀏覽量
97692
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論