1. 程式人生 > 其它 >迅為i.MX6Q開發板Openwrt 檔案系統構建

迅為i.MX6Q開發板Openwrt 檔案系統構建

 

 

1 什麼是 Openwrt

配套資料在網盤資料的iTOP-i.MX6 系列開發板(6Q,6D,6QPLUS)\4_iTOP-i.MX6 開發板資料彙總(不含光碟資料)\12_iTOP-i.MX6 開發板 buildroot 系統 OTA 升級” Cisco/Linksys 2003 年釋出了 WRT54G 這款無線路由器,同年有人發現它的 IOS 是基於 Linux 的,然而Linux 是基於 GPL 許可證釋出的,按照該許可證 Cisco 應該把 WRT54G IOS 的原始碼公開。

2003 3 月,Cisco 迫於公眾壓力公開了 WRT54G 的原始碼。此後就有了一些基於 Cisco 原始碼的第三方路由器韌體,OpenWrt

是其中的一個。

OpenWrt 的特點:

可擴充套件性好,可以線上安裝您所需要的功能,目前有 1000 多個功能包可選;

是一臺完整的 Linux 工作站,檔案系統可讀可寫,便於開發者學習和實踐;

2 為什麼要使用軟路由?

首先家裡面的路由器功能有限,很多功能不支援,就比如外網然後家中普通路由器支援一定的功能,但是效能有限,開啟複雜功能之後原本路由器的職責又承擔不了了,會出現丟包斷流等現象,這時候需要別的硬體來完成高層的工作,減輕路由器的負擔,保證家庭網路的執行的流暢穩定。

我們一般家庭的網路拓撲圖,如下圖所示:

 

 

 

 

 

 

 

 

 

根據上述圖片,我們已經知道了家庭網路的大致結構,那麼我們現在就需要在中間設定一個代理,把本來從使用者走向路由器的流量攔下來,經過這個代理的

“處理”之後,再直接給家庭路由器傳送出去即可,

這樣家庭路由器只需要關注傳統的路由交換功能,而不需要處理傳輸層或者應用層的資料了,這就保證了家庭路由器的低負載和網路功能的增強。於是,我們提出來的一種新的網路結構,其物理結構如下:

 

 

 

 

 

 

實際的資料流向如下圖所示:

 

 

 

 

 

 

叫旁路由的原因其實就是因為他就掛在一旁啦,是不是很形象呢?

3 openwrt 的編譯

本章節參考 lede 大神的教程進行編譯,具體連結為 https://github.com/coolsnowwolf/lede

下面是幾點注意事項:

1.不要用 root 使用者進行編譯!!!

2.請全程使用

3.預設登陸

IP 192.168.1.1 密碼 password

對於第一次編譯,迅為已經編譯完成,存放路徑為

iTOP-i.MX6 系列開發板(6Q,6D,6QPLUS)\4_iTOP-i.MX6開發板資料彙總(不含光碟資料)\12_iTOP-i.MX6 開發板 openwrt 檔案系統\03_編譯好的原始碼”。

編譯環境為 Ubuntu 64bit,推薦 Ubuntu 20.04 LTS x64 首先進入終端,輸入命令,使用以下命令搭建編譯環境

 

 

 

 

 

編譯環境搭完成後,使用命令 git clone https://github.com/coolsnowwolf/lede,對 lede 大神的原始碼進行克隆拉取,拉取完成會在當前目錄下產生名字為 lede 的資料夾如下圖所示:

 

 

 

 

 

或者將迅為已經下載好的原始碼拷貝到 ubuntu 虛擬機器上,使用命令對其解壓縮也也可以實現,原始碼存放 路徑為iTOP-i.MX6 系列開發板(6Q,6D,6QPLUS)\4_iTOP-i.MX6 開發板資料彙總(不含光碟資料) \12_iTOP-i.MX6 開發板 openwrt 檔案系統\01_編譯所需原始碼”

然後使用命令cd lede”進入該資料夾,

作者這裡為已經編譯完成的,具體檔案可能會有區別,拉取成功即可。

使用下列命令進行更新擴充套件:

./scripts/feeds update -a

擴充套件時間略長請耐心等待,擴充套件過程如下圖所示:

 

 

 

 

 

 

更新擴充套件完成之後繼續輸入命令

./scripts/feeds install -a

進行安裝擴充套件。安裝完成之後我們的環境就搭建完成了。

安裝擴充套件完成後。輸入命令make menuconfig”,進入視覺化介面進行配置,如下圖所示:

 

 

 

 

 

 

點選回車進入首選項 Target System,如下圖所示:

 

 

 

 

 

 

對相應的平臺架構進行選擇,我們選擇 i.MX 6,

選擇後,功能頁面如下圖所示:

 

 

 

 

 

 

其他的地方不需要修改,通過 save 進行儲存,

通過 Exit 進行退出,

回到原始碼目錄後,使用命令

make -j8 download V=s

下載 dl 庫,

輸入命令

make -j1 V=s

即可開始編譯你要的韌體了。

 編譯時間取決於自身機器的效能,大約五個小時左右。編譯完成如下圖所示:

 

 

 

 

 

 

 

 

4 openwrt 檔案系統的燒寫

編譯完成後,使用命令

cd bin/targets/imx6/generic

進入 generic 目錄,在這裡我們只用最後生成的檔案系統,如下圖所示:

 

 

 

 

 

然後拷貝該檔案系統到任意目錄(看個人,自己怎樣方便怎樣來),作者拷貝到了/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

對檔案進行打包處理,壓縮成我們能燒寫的檔案格式。

如下圖所示,可以看到我們所需要的壓縮檔案已經生成了

 

 

 

 

 

 

將該壓縮檔案燒寫進我們的開發板。

燒寫完成之後正常上電啟動,進入 uboot 模式,來設定啟動方式,由於我們燒寫的是 Linux 系統,所以

我們使用以下命令來設定 Linux 啟動

setenv bootsystem qt

使用命令來儲存。

saveenv

最後使用命令重啟,開發板重啟就可以正常啟動了,正常啟動如下圖所示:

 

 

 

 

 

 

至此我們的檔案系統就燒寫成功了。