Fedora7下安装编译UPnP的过程

  

UPnP概述

 

UPnP 体系允许 PC 间的点对点连接、网际互连和无线设备。它是一种基于 TCP/IPUDP HTTP 的分布式、开放体系。

UPnP 使得任意两个设备能在 LAN 控制设备的管理下相互通信。其特性包括:

  • 传输介质和设备独立。UPnP 技术可以应用在许多媒体上,包括电话线电线电力线通信PLC)、以太网红外通讯技术(IrDA)、无线电Wi-Fi蓝牙)和Firewire(1394)。无需任务设备驱动;而是采用共同的协议。
  • 用户界面(UI)控制。UPnP 技术使得设备厂商可以通过网页浏览器来控制设备并进行交互。
  • 操作系统和程序语言独立。任何操作系统和程序语言均可以用于构建 UPnP产品。UPnP 并没有设定或限制运行于控制设备上的应用程序 API;OS厂商可以创建满 足他们客户需求的 API。UPnP使得厂商可以像开发常规应用程序一样来控制设备 UI 和交互。
  • 基于因特网技术。UPnP 构建于 IP, TCP, UDP, HTTP,和 XML 等许多协议之上。
  • 编程控制。UPnP 体系同时支持常规应用程序编程控制。
  • 扩展性。每个 UPnP 设备都可以有构建于基本体系之上、与具体设备相关的服务。

UPnP 支持零配置,"看不见的网络" 和自动检测;任何设备能自动加入一个网络, 获取一个 IP 地址,宣布自己的名字,根据请求检查自身功能以及检测出其它设备 和它们的功能。DHCPDNS 服务是可选的,并只有它们在网络上存在的时候才会 使用。设备可以自动离开网络而不会遗留下任何不需要的状态信息。

UPnP 的基础是 IP 地址解析。每一个设备都应当有一个 DHCP 客户端并在连入网 络的时候自动搜索 DHCP 服务。如果没有找到 DHCP 服务,也就是说网络是缺乏管 理状态,那么设备必须给自己设定一个地址。如果在和 DHCP 服务器交互的过程中, 设备获得了一个域名(比如通过 DNS 服务器或者 DNS 传递),那么它应当在接下 来的网络操作中使用这个域名;否则,设备应当使用它的 IP 地址。

 

                                                        1. 添加 upnp支持

详情参阅linux-igd官方文档 http://linux-igd.sourceforge.net/documentation.php

http://www.upnp.org/

ushare:http://sourceforge.net/projects/ushare

linuxigd和libupnp
linuxigd编译需要libupnp(库的支持,libupnp.so。


# tar xzvf libupnp-1.3.1.tar.gz
#./configure --prefix=/usr
# make 

# make install

直接X86编译:
# tar xzvf linuxigd-1.0.tar.gz
# make 

# make install
在当前目录或者/usr/sbin下生成upnpd。

查看linuxigd源码包下的文档。告诉你如何使用和如何调试。
# route add -net 239.0.0.0 netmask 255.0.0.0 eth0
# upnpd -f eth0 eth0     //前台启动
upnpd[1078]: AddPortMap: DevUDN: uuid:75802409-bccb-40e7-8e6c-fa095ecce13e ServiceID: urn:upnp-org:serviceId:WANIPConn1 RemoteHost: (null) Prot: TCP ExtPort: 51413 Int: 10.18.13.83.51413
upnpd[1078]: AddPortMap: DevUDN: uuid:75802409-bccb-40e7-8e6c-fa095ecce13e ServiceID: urn:upnp-org:serviceId:WANIPConn1 RemoteHost: (null) Prot: UDP ExtPort: 51413 Int: 10.18.13.83.51413
upnpd[1078]: DeletePortMap: Proto:TCP Port:51413
upnpd[1078]: DeletePortMap: Proto:UDP Port:51413

打开一个支持UPnP协议的软件(BT、电驴、MSN Manager),并新建一个下载任务
以BT为例:
AddPortMap表示PT进程已经开始,DeletePortMap代表PT进程已经结束

# upnpd eth0 eth0  //daemon进程

发现upnpd在后台运行时,需要启动syslogd进程,否则刚启动就被停掉了!!

 

交叉编译移植:
交叉编译后,拷贝/usr/sbin/upnpd及其依赖库,/etc/linuxigd/*,/etc/upnpd.conf。

                                                          2. 架设upnp服务器

upnp服务器有好多种,见:http://en.wikipedia.org/wiki/List_of_UPnP_AV_media_servers_and_clients#Software

下面讲述ushare(轻量级)ushare

直接X86编译:
# tar xzvf ushare-0.9.7.tar.gz
# cd ushare-0.9.7

# ./configure --prefix=/usr/ushare
# make && make install

启动ushare
# /usr/ushare/bin/ushare -f /etc/ushare/conf -D

详细方式查看相关文档即可。

 

打开浏览器,地址栏键入:http://192.168.13.133:49153/web/ushare.html就可以看到服务器提供的web界面了!

49153是服务器监听的端口号。

交叉编译ushare:
# ./configure --help
# ./configure --prefix=/usr/app/ushare --cross-compile --cross-prefix=/usr/local/cross-build/cross/bin/arm-mv5sft-linux-gnueabi- --with-libupnp-dir=/usr/local/cross-build/rootfs/usr/lib

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值