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