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