基于OpenWrt的多媒体路由器设计
引言
随着物联网和互联网的融合,网络的覆盖范围越来越 广,人们对于网络连接的需求也越来越高,对路由器的功能 要求也越来越多。目前家用型路由器功能较单一,一般不具 有多WAN口协调功能,且性能较低,不适合在公共场合使 用。本项目以OpenWrt系统为基础,通过配置和添加应用程 序,使该路由器能够在公共场所提供网络连接以及本地音视 频服务。系统既可以使用以太网或者Wi-Fi进行网络连接, 也可以使用3G/4G移动网络进行连接。
1 OpenWrt系统介绍
OpenWrt是一种基于Linux内核的路由器操作系统,和 我们平常使用的Ubuntu等发行版系统类似。它专门针对路 由器,里面有很多在路由器上使用的软件,例如网络监视、 动态DNS、路由、VLAN等。OpenWrt不是一个单一、静态 的固件,而是提供了一个可添加软件包的可写的文件系统。 使用户可以自由选择应用程序和配置,而不必受设备提供商 的限制,并且可以使用一些适合某方面应用的软件包来定制 你的设备。目前网络上大概有3500个左右的OPKG包,用户 可以根据需要选择安装,极大地方便了使用。该系统的好处 是,用户可以通过配置文件进行网络管理,方便对路由器 进 行 配 置 和 管理 。 系 统 还 提 供 了 一 个 简 单 的 We b 界 面 , 使 用 L u a 语 言 实 现 , 能 够 方便地对界面进行重新定制,并且能够通过cgi接口与系统进行交互。本文基于OpenWrt系统设计一种支持异构网络的多媒体 路由系统,为了提高系统的性能及可扩展性,系统设计中摒 弃了路由器常用的ARM处理器,改用X86处理器作为硬件平 台,以提高路由器
的处理性能和扩展性。该系统能够在蜂窝 网络、Wi-Fi及以太网之间进行自动切换,并且能够提供音 视频多媒体服务。
2 系统硬件功能结构
本项目硬件部分采用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 服 务 , 具 有 高 度 灵活 的 包 过 滤 、 速 率 限 制 、 标 记 、 监 控 等 功 能 。 同 时 芯 片 支 持 双 V L A N 标 记 (IEEE 802.1Q)以及 VLAN转换等高级功
图1 系统硬件结构图
图2 BCM5696模块
图3 U8300/1使用流程
图4 系统软件基本结构图
图5 网络地址分配
图6 web工作框架
能,为上层应用提供了很大的便利性和灵活性。芯片的典型应用框图如图2所示。
2.2 蜂窝网络接口模块
为了能够通过3G/4G移动蜂窝网络连接互联网,硬件 系统扩展了基于Mini PCI-E 接口的U8300和U8301模块,分 别用于接入采用TDD-LTE/FDD-LTE/TD-SCDMA、TDD- LTE/FDD-LTE/TD-SCDMA网络制式的移动蜂窝网络。在 LTE-FDD网络环境下,该模块理论上能够提供100Mbps的上 行速率和50Mbps的下行速率。模块支持PPP-stack和TCP/IP- stack,并且提供USB和UART接口。U8300/1模
块的使用流程 如图3所示。
3 系统软件功能结构
路由器软件系统的设计主要包括OpenWrt系统配置编 译、设备驱动程序移植、网络环境配置、应用程序编写、多 媒体开发软件移植、LuCI界面开发等,下面对其中部分工 作进行简单介绍。
3.1 OpenWrt系统配置编译
OpenWrt的移植编译功能已经比较完善,能够较好地支 持x86平台。编译过程中能够自动下载源代码以及对应平台 的补丁代码。在使用x86默认的配置之外,需要根据系统环 境针对性地添加或者移除相应的模块。主要有a.选择eglibc作 为C语言库;b.添加usb-serial模块以支持U8300和U8301模块 接口;c.添加iwlagn模块,提供Wi-Fi支持;d.添加ppp和ppoe 拨号功能。
3.2 网络配置及地址管理
本系统支持以太网、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系统设计的目的是优先保证系统的连通性。多WAN口 的平衡选择主要通过路由规则实现,本设计在mwan3的基 础上进行改进,使系统能够从多个WAN口中选择一个网络 状态较好的WAN口作为连接外网的接口。配置文件位于/ etc/config/mwan3,通过该文件配置网络端口的优先级及控 制规则。总体的控制思路是:1. 启动一个后台进程Internet_ monitor监控各个WAN口的状态;2.
进程Internet_switch根据 用户定制的切换规则更改系统所使用的WAN口。
3.3 安装流媒体服务器
为了能向局域网内的网络用户提供本地音视频服务, 系 统 移 植 了 u S h a re 作 为 本 地 多 媒 体 服 务 器 。 u S Ha re 是 由 Geexbox开发的一个开源项目,它基于UPnP(Universal Plug and Play) A/V & DL AN协议框架,实现了相应的多媒体服 务器功能,能够向支持UPnP的设备提供多媒体服务,并且 使用libupnp内置的http server向用户提供多媒体信息服务。 相比于其它多媒体服务器例如FUPPES、 MediaTomb以及 MiniDLAN等,uShare具有易于移植以及配置简单等特点。 目前uShare能够支持大多数多媒体格式文件,如表1所示。
图7 多媒体文件配置
图8 网络状态管理
目前已经有基于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界面开发
OpenWrt中利用uhttp作为web服务器,实现客户端web页面配置功能。对于request请求采用cgi处理方式,所用的cgi程序是
LuCI,工作框架如图6所示。Client端和server端采用cgi方式交互,在uhttpd服务器的 cgi方式中,fork出一个子进程,子
进程利用execl替换为LuCI 进程空间,通过设置环境变量的方式,传递一些固定格式的 数据(如PATH_INFO)给LuCI。另外一些非固定格式的数据(post-data)由父进程通过一个w_pipe写给LuCI的stdin, LuCI的返回数据写在stdout上,由父进程通过一个r_pipe读取。
项目针对系统需求使用Lua语言对界面进行重新编写, 方便对系统进行配置和管理以及查看网络状态,配置多媒体 信息等。系统Web页面效果如图7和图8所示。
4 结束语
我们分别对网络连接及媒体服务功能进行测试。将该 系统置于不同的网络环境中进行网络连接
测试,结果如表2 所示。
多媒体服务功能测试通过本地电脑安装ushare软件进行 测试,测试结果显示,在使用有线网络或者Wi-Fi连接状态 下播放720P高清视频比较流畅。本项目基于OpenWrt操作系统设计实现了能够在多WAN口之间自动切换,并且具有多媒体服务的高性能路由系统。 该系统具有丰富的总线接口,可以自由扩展总线设备,从 而适应不同的系统要求。我们通过PCI总线扩展Alta ARINC MPCIE-A429
模块,用于检测飞机飞行状态从而控制路由的 开关等动作。扩展后的路由器在测试环境中工作良好,具备 实用价值。通过添加其他总线模块,也可以将系统应用于火 车、汽车以及小型商场等领域。
评论