王憲宇 張魯
摘要:通過學(xué)習(xí)OpenWRT可以更深入地了解Linux系統(tǒng)以及嵌入式的知識(shí),并且學(xué)習(xí)路由開發(fā)的知識(shí)。本文通過虛擬機(jī)搭建開發(fā)環(huán)境來實(shí)現(xiàn)根據(jù)自己的需求來開發(fā)一個(gè)符合自己需求的路由器系統(tǒng)。
關(guān)鍵詞:OpenWRT,Linux,編譯環(huán)境
1. 引言
OpenWRT是一個(gè)嵌入式Linux系統(tǒng),它不提供單一的、不可修改的固件,而是一個(gè)提供軟件包管理功能的完全可寫文件系統(tǒng)。這將使得用戶可以擺脫供應(yīng)商提供的應(yīng)用程序范圍和配置,并允許用戶使用適合于任何應(yīng)用程序的軟件包定制設(shè)備。
2.OpenWRT系統(tǒng)簡介
2.1OpenWRT系統(tǒng)的發(fā)展歷程
在2004年1月,正式啟動(dòng)了OpenWRT項(xiàng)目,第一個(gè)版本基于Linksys提供的GPL源代碼和uclibc的buildroot項(xiàng)目,這個(gè)版本被稱為“stable”版,目前仍被許多互聯(lián)網(wǎng)項(xiàng)目使用,作為知名的Freifunk-Firmware和sip @ home便是其中重要的代表。
2005年初,一些新的開發(fā)者加入了這個(gè)項(xiàng)目,幾個(gè)月后他們發(fā)布了第一個(gè)“experimental”版本,與上一個(gè)版本的不同之處在于,這個(gè)版本幾乎完全拋棄了Linksys的GPL源代碼,采用buildroot2作為核心技術(shù),完全模塊化OpenWRT,使用Linux官方發(fā)布的核心源代碼(2.4.30),外加一些補(bǔ)丁和網(wǎng)絡(luò)驅(qū)動(dòng)。開發(fā)團(tuán)隊(duì)給OpenWRT增加了很多免費(fèi)工具。用戶可以將image鏡像文件直接寫入閃存(mtd),并設(shè)置無線功能和VLAN切換功能。他們把這個(gè)版本名為“White Russian”,1.0版將于2005年底發(fā)布。
2.2OpenWRT系統(tǒng)的特點(diǎn)
(1)性能高,穩(wěn)定性強(qiáng):OpenWRT由網(wǎng)絡(luò)專家等專業(yè)人士設(shè)計(jì),專注于網(wǎng)絡(luò)性。OpenWRT匯集了許多最新研究的算法,因此其性能遠(yuǎn)遠(yuǎn)好于供應(yīng)商提供的原廠固件。
lOpenWRT相當(dāng)穩(wěn)定,經(jīng)受住了長時(shí)間運(yùn)行的考驗(yàn)。
l通過優(yōu)化無線網(wǎng)絡(luò),可以支持設(shè)備之間更高的數(shù)據(jù)速率和平衡的通信時(shí)間。
l即使制造商停止更新,許多老舊設(shè)備仍然可受OpenWRT系統(tǒng)更新改進(jìn)支持。(只要用戶的設(shè)備內(nèi)存或閃存可容納新版本)
(2)安全性強(qiáng):作為一個(gè)開源軟件,來自全世界的許多開發(fā)者在發(fā)布前反復(fù)檢查它的源碼。
l沒有硬件供應(yīng)商隱藏的后門程序。
l得益不受常見攻擊影響的Linux操作系統(tǒng),OpenWRT可抵抗常見漏洞。
lOpenWRT積極更新,所以大部分漏洞在發(fā)現(xiàn)后不久就會(huì)被立即修復(fù)。
l許多舊設(shè)備仍然受OpenWRT支持,并繼續(xù)享受OpenWRT的安全性和便攜性,能繼續(xù)延長用戶路由器的使用壽命。
(3)可擴(kuò)展性:OpenWRT提供了許多以往只有在高端設(shè)備上才提供的各種功能。它擁有超過3000個(gè)標(biāo)準(zhǔn)化應(yīng)用軟件包,讓用戶可以輕松地將這些軟件應(yīng)用于各種支持的設(shè)備,甚至包括幾年前的路由器。
(4)易于配置:OpenWRT是真正的基于Linux的系統(tǒng),因此用戶可以完全控制路由器設(shè)備的所有功能。
lOpenWRT可以使用通過SSH建立的命令行和基于Web的用戶界面進(jìn)行配置。
l配置信息存儲(chǔ)在純文本文件中以簡化編輯和(或)復(fù)制。
lOpenWRT Image Builder允許用戶自由配置其設(shè)備(如預(yù)設(shè)密碼、無線風(fēng)格等)并自定義固件以滿足用戶需求。
lLuCI的Web圖形化界面除了可以讓用戶選擇適合自己需求或口味的主題外,還可以使用支持20多種語言的軟件包實(shí)現(xiàn)Web用戶界面的本地化。
l配置外部LED和按鈕或開關(guān)以滿足用戶的需求。
(5)零成本支出:OpenWRT是開源的,得益于包括個(gè)人和公司等志愿者的努力,讓大家在使用時(shí)無需額外支出訂購或授權(quán)費(fèi)用。
(6)給力的社區(qū)支持:由開發(fā)者、志愿者和其他長期OpenWRT用戶組成的活躍社區(qū),因此最終可以幫助用戶解決其所遇到的問題。
lLEDE論壇?- 成員間討論LEDE的平臺(tái)
lLEDE開發(fā)者?和?LEDE開發(fā)者?郵件列表
l#lede-dev?和#lede-adm?的IRC頻道
l可以通過OpenWRT官方網(wǎng)站上的聯(lián)系方式獲得更多信息
2.3OpenWRT系統(tǒng)的優(yōu)點(diǎn)
OpenWRT系統(tǒng)的優(yōu)點(diǎn):如果對Linux系統(tǒng)有一定的了解或者掌握Linux基礎(chǔ)知識(shí), 并且希望學(xué)習(xí)或接觸嵌入式 Linux 的話, OpenWRT是一個(gè)不錯(cuò)的選擇。 OpenWRT支持大部分處理器架構(gòu),無論是ARM架構(gòu),X86架構(gòu),PowerPC架構(gòu)還是MIPS架構(gòu),都有很好的適配方案。 并且其內(nèi)置多達(dá)3000多種軟件包,囊括從工具鏈(toolchain),到內(nèi)核(linux kernel),到軟件包(packages),再到根文件系統(tǒng)(rootfs)整個(gè)體系,使得用戶只需簡單的一個(gè)make命令即可方便快速地定制一個(gè)具有特定功能的嵌入式系統(tǒng)來制作固件。
3.環(huán)境搭建
硬件環(huán)境:競斗云2.0(路由器型號)或者樹莓派全系設(shè)備
軟件環(huán)境:VMware WorkStation Pro虛擬機(jī)安裝Ubuntu64位操作系統(tǒng)或者微軟商城安裝Ubuntu18.04 LTS64位。
安裝完畢后搭建編譯環(huán)境。
這里以Ubuntu18.04 LTS64位版為例
3.1更改下載源
打開vi編輯器,按下?i?(英文insert簡寫)鍵即可進(jìn)入插入模式,從而可以做文本輸入。將原來的內(nèi)容注釋或者直接刪除,然后將國內(nèi)的源復(fù)制粘貼進(jìn)來即可。
修改完后按「ESC」鍵可回到命令模式,輸入?wq!?保存修改文件,然后輸入?ZZ?(大寫)即可退出。)
3.2編譯
3.3.1編譯開始
輸入命令:make -j4=s(這里的-j4指的是4個(gè)線程一起編譯,一般選擇為處理器數(shù)量的2倍)
編譯好的固件名格式為lede-xxxx-generic-xxx-squashfs-sysupgrade.bin將bin文件復(fù)制到U盤或者電腦桌面。
3.3.2刷入自己編譯的OpenWRT固件
(1)之前已刷入breed或者u-boot的路由器
①網(wǎng)線一端插入路由器lan口,另一端插入電腦RJ45接口,使得電腦通過網(wǎng)線連接路由器,打開瀏覽器輸入192.168.1.1;
②路由器按住reset鍵,上電開機(jī);
③瀏覽器不斷刷新 192.168.1.1 界面直到出現(xiàn)bootloader(breed/uboot)引導(dǎo)界面,松開reset鍵;
④通過固件更新選項(xiàng),上傳固件進(jìn)行升級,支持img和bin格式;
⑤對路由器進(jìn)行重啟。
(2)之前固件為OpenWRT的路由器
①可在Luci界面->系統(tǒng)->備份升級->刷寫新固件
②選擇.tar格式文件
③版本號相同可以保留原有配置,不同不保留
4.總結(jié)
OpenWRT系統(tǒng)是一個(gè)強(qiáng)大的嵌入式Linux操作系統(tǒng),可以廣泛地使用在大部分智能路由器設(shè)備中,可以讓智能路由器發(fā)揮出更多更強(qiáng)大的功能。且OpenWRT開源免費(fèi),未來可能將成為學(xué)習(xí)嵌入式Linux最佳平臺(tái)。
參考文獻(xiàn):
〔1〕鳥哥.《鳥哥的Linux私房菜》[M].北京.人民郵電出版社,中國工信出版集團(tuán).2018年12月。
〔2〕孫冰,劉龍.《OpenWRT智能路由系統(tǒng)開發(fā)》[M].北京.人民郵電出版社,中國工信出版集團(tuán).2018年3月。
作者介紹:
王憲宇,2000.07,山東協(xié)和學(xué)院網(wǎng)絡(luò)工程專業(yè)在讀
張魯,1986.06,碩士研究生,副教授,研究方向計(jì)算機(jī)應(yīng)用技術(shù)
山東協(xié)和學(xué)院 山東濟(jì)南 250107