基于OpenWrt的多媒體路由器設(shè)計
引言
隨著物聯(lián)網(wǎng)和互聯(lián)網(wǎng)的融合,網(wǎng)絡(luò)的覆蓋范圍越來越 廣,人們對于網(wǎng)絡(luò)連接的需求也越來越高,對路由器的功能 要求也越來越多。目前家用型路由器功能較單一,一般不具 有多WAN口協(xié)調(diào)功能,且性能較低,不適合在公共場合使 用。本項目以OpenWrt系統(tǒng)為基礎(chǔ),通過配置和添加應(yīng)用程 序,使該路由器能夠在公共場所提供網(wǎng)絡(luò)連接以及本地音視 頻服務(wù)。系統(tǒng)既可以使用以太網(wǎng)或者Wi-Fi進行網(wǎng)絡(luò)連接, 也可以使用3G/4G移動網(wǎng)絡(luò)進行連接。
1 OpenWrt系統(tǒng)介紹
OpenWrt是一種基于Linux內(nèi)核的路由器操作系統(tǒng),和 我們平常使用的Ubuntu等發(fā)行版系統(tǒng)類似。它專門針對路 由器,里面有很多在路由器上使用的軟件,例如網(wǎng)絡(luò)監(jiān)視、 動態(tài)DNS、路由、VLAN等。OpenWrt不是一個單一、靜態(tài) 的固件,而是提供了一個可添加軟件包的可寫的文件系統(tǒng)。 使用戶可以自由選擇應(yīng)用程序和配置,而不必受設(shè)備提供商 的限制,并且可以使用一些適合某方面應(yīng)用的軟件包來定制 你的設(shè)備。目前網(wǎng)絡(luò)上大概有3500個左右的OPKG包,用戶 可以根據(jù)需要選擇安裝,極大地方便了使用。該系統(tǒng)的好處 是,用戶可以通過配置文件進行網(wǎng)絡(luò)管理,方便對路由器 進 行 配 置 和 管理 。 系 統(tǒng) 還 提 供 了 一 個 簡 單 的 We b 界 面 , 使 用 L u a 語 言 實 現(xiàn) , 能 夠 方便地對界面進行重新定制,并且能夠通過cgi接口與系統(tǒng)進行交互。本文基于OpenWrt系統(tǒng)設(shè)計一種支持異構(gòu)網(wǎng)絡(luò)的多媒體 路由系統(tǒng),為了提高系統(tǒng)的性能及可擴展性,系統(tǒng)設(shè)計中摒 棄了路由器常用的ARM處理器,改用X86處理器作為硬件平 臺,以提高路由器
的處理性能和擴展性。該系統(tǒng)能夠在蜂窩 網(wǎng)絡(luò)、Wi-Fi及以太網(wǎng)之間進行自動切換,并且能夠提供音 視頻多媒體服務(wù)。
2 系統(tǒng)硬件功能結(jié)構(gòu)
本項目硬件部分采用Conga-TCA/N2800作為核心控制 板。該控制板符合COM Express Compact(95x95mm),Type6 標(biāo)準,CPU是Intel? Atom? N2800,并配備1 GBy te DDR31066MHz內(nèi)存,板卡支持PCI Express、SATA、USB、I2C、 LPC等總線接口,具有體積小、擴展性強等特點。硬件總體 結(jié)構(gòu)如圖1所示。
2.1 以太網(wǎng)接口BCM5696介紹
以太網(wǎng)接口選用博通的BCM5696,配合BCM5464芯片 能夠提供12個10/100/1000-Mbps有線以太網(wǎng)接口,并且能 夠通過級聯(lián)擴展以太網(wǎng)接口數(shù)量。芯片內(nèi)部集成先進的QoS 服 務(wù) , 具 有 高 度 靈活 的 包 過 濾 、 速 率 限 制 、 標(biāo) 記 、 監(jiān) 控 等 功 能 。 同 時 芯 片 支 持 雙 V L A N 標(biāo) 記 (IEEE 802.1Q)以及 VLAN轉(zhuǎn)換等高級功
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
圖2 BCM5696模塊
圖3 U8300/1使用流程
圖4 系統(tǒng)軟件基本結(jié)構(gòu)圖
圖5 網(wǎng)絡(luò)地址分配
圖6 web工作框架
能,為上層應(yīng)用提供了很大的便利性和靈活性。芯片的典型應(yīng)用框圖如圖2所示。
2.2 蜂窩網(wǎng)絡(luò)接口模塊
為了能夠通過3G/4G移動蜂窩網(wǎng)絡(luò)連接互聯(lián)網(wǎng),硬件 系統(tǒng)擴展了基于Mini PCI-E 接口的U8300和U8301模塊,分 別用于接入采用TDD-LTE/FDD-LTE/TD-SCDMA、TDD- LTE/FDD-LTE/TD-SCDMA網(wǎng)絡(luò)制式的移動蜂窩網(wǎng)絡(luò)。在 LTE-FDD網(wǎng)絡(luò)環(huán)境下,該模塊理論上能夠提供100Mbps的上 行速率和50Mbps的下行速率。模塊支持PPP-stack和TCP/IP- stack,并且提供USB和UART接口。U8300/1模
塊的使用流程 如圖3所示。
3 系統(tǒng)軟件功能結(jié)構(gòu)
路由器軟件系統(tǒng)的設(shè)計主要包括OpenWrt系統(tǒng)配置編 譯、設(shè)備驅(qū)動程序移植、網(wǎng)絡(luò)環(huán)境配置、應(yīng)用程序編寫、多 媒體開發(fā)軟件移植、LuCI界面開發(fā)等,下面對其中部分工 作進行簡單介紹。
3.1 OpenWrt系統(tǒng)配置編譯
OpenWrt的移植編譯功能已經(jīng)比較完善,能夠較好地支 持x86平臺。編譯過程中能夠自動下載源代碼以及對應(yīng)平臺 的補丁代碼。在使用x86默認的配置之外,需要根據(jù)系統(tǒng)環(huán) 境針對性地添加或者移除相應(yīng)的模塊。主要有a.選擇eglibc作 為C語言庫;b.添加usb-serial模塊以支持U8300和U8301模塊 接口;c.添加iwlagn模塊,提供Wi-Fi支持;d.添加ppp和ppoe 撥號功能。
3.2 網(wǎng)絡(luò)配置及地址管理
本系統(tǒng)支持以太網(wǎng)、Wi-Fi、4G網(wǎng)絡(luò)接入互聯(lián)網(wǎng),需要 手動進行網(wǎng)絡(luò)配置。其中主要包含U8300/1、I210、Wireless- N1030的網(wǎng)絡(luò)配置。
設(shè)計中多個WAN口的網(wǎng)絡(luò)地址分配如圖5所示,需要 格外注意的是,當(dāng)Wi-Fi工作在橋接模式時,要保證Wi-Fi的 WAN IP和LAN IP地址不在同一網(wǎng)段內(nèi)。除去部分保留IP地 址,其余 IP從192.168.1.10到192.168.1.240可以自由分配給局域網(wǎng)的設(shè)備,IP地址配置可以在/etc/con句g/dhcp文件中進行更改,例如:
con句g dhcp 'lan' option interface 'lan'
option start '10' //起始IP地址,即192.168.1.
option limit '230' //最多分配的IP地址數(shù),即地址范圍從
10到240系統(tǒng)設(shè)計的目的是優(yōu)先保證系統(tǒng)的連通性。多WAN口 的平衡選擇主要通過路由規(guī)則實現(xiàn),本設(shè)計在mwan3的基 礎(chǔ)上進行改進,使系統(tǒng)能夠從多個WAN口中選擇一個網(wǎng)絡(luò) 狀態(tài)較好的WAN口作為連接外網(wǎng)的接口。配置文件位于/ etc/config/mwan3,通過該文件配置網(wǎng)絡(luò)端口的優(yōu)先級及控 制規(guī)則??傮w的控制思路是:1. 啟動一個后臺進程Internet_ monitor監(jiān)控各個WAN口的狀態(tài);2.
進程Internet_switch根據(jù) 用戶定制的切換規(guī)則更改系統(tǒng)所使用的WAN口。
3.3 安裝流媒體服務(wù)器
為了能向局域網(wǎng)內(nèi)的網(wǎng)絡(luò)用戶提供本地音視頻服務(wù), 系 統(tǒng) 移 植 了 u S h a re 作 為 本 地 多 媒 體 服 務(wù) 器 。 u S Ha re 是 由 Geexbox開發(fā)的一個開源項目,它基于UPnP(Universal Plug and Play) A/V & DL AN協(xié)議框架,實現(xiàn)了相應(yīng)的多媒體服 務(wù)器功能,能夠向支持UPnP的設(shè)備提供多媒體服務(wù),并且 使用libupnp內(nèi)置的http server向用戶提供多媒體信息服務(wù)。 相比于其它多媒體服務(wù)器例如FUPPES、 MediaTomb以及 MiniDLAN等,uShare具有易于移植以及配置簡單等特點。 目前uShare能夠支持大多數(shù)多媒體格式文件,如表1所示。
圖7 多媒體文件配置
圖8 網(wǎng)絡(luò)狀態(tài)管理
目前已經(jīng)有基于OpenWrt的OPKG包,因此軟件的安裝 特別方便,針對平臺進行配置之后即可使用。配置文件為/ etc/con句g/ushare,可以參照下面的形式進行配置,主要修改 媒體文件所在目錄,即content_directories對應(yīng)的選項,其他 參數(shù)保持默認值。
con句g 'ushare'
option 'servername' 'OpenWrt'option 'enabled' '1'
option 'content_directories' '/
mnt/sda1/vedio, /mnt/sda1/audio' option 'disable_telnet' '1' option 'disable_webif '
'0'
3.4 LuCI界面開發(fā)
OpenWrt中利用uhttp作為web服務(wù)器,實現(xiàn)客戶端web頁面配置功能。對于request請求采用cgi處理方式,所用的cgi程序是
LuCI,工作框架如圖6所示。Client端和server端采用cgi方式交互,在uhttpd服務(wù)器的 cgi方式中,fork出一個子進程,子
進程利用execl替換為LuCI 進程空間,通過設(shè)置環(huán)境變量的方式,傳遞一些固定格式的 數(shù)據(jù)(如PATH_INFO)給LuCI。另外一些非固定格式的數(shù)據(jù)(post-data)由父進程通過一個w_pipe寫給LuCI的stdin, LuCI的返回數(shù)據(jù)寫在stdout上,由父進程通過一個r_pipe讀取。
項目針對系統(tǒng)需求使用Lua語言對界面進行重新編寫, 方便對系統(tǒng)進行配置和管理以及查看網(wǎng)絡(luò)狀態(tài),配置多媒體 信息等。系統(tǒng)Web頁面效果如圖7和圖8所示。
4 結(jié)束語
我們分別對網(wǎng)絡(luò)連接及媒體服務(wù)功能進行測試。將該 系統(tǒng)置于不同的網(wǎng)絡(luò)環(huán)境中進行網(wǎng)絡(luò)連接
測試,結(jié)果如表2 所示。
多媒體服務(wù)功能測試通過本地電腦安裝ushare軟件進行 測試,測試結(jié)果顯示,在使用有線網(wǎng)絡(luò)或者Wi-Fi連接狀態(tài) 下播放720P高清視頻比較流暢。本項目基于OpenWrt操作系統(tǒng)設(shè)計實現(xiàn)了能夠在多WAN口之間自動切換,并且具有多媒體服務(wù)的高性能路由系統(tǒng)。 該系統(tǒng)具有豐富的總線接口,可以自由擴展總線設(shè)備,從 而適應(yīng)不同的系統(tǒng)要求。我們通過PCI總線擴展Alta ARINC MPCIE-A429
模塊,用于檢測飛機飛行狀態(tài)從而控制路由的 開關(guān)等動作。擴展后的路由器在測試環(huán)境中工作良好,具備 實用價值。通過添加其他總線模塊,也可以將系統(tǒng)應(yīng)用于火 車、汽車以及小型商場等領(lǐng)域。
評論