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