2008-06-06

UPnP

http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/upnp/overview/index.htm

http://ushare.geexbox.org/

在我們的 NAS 中UPnP server是用 Microsoft 開發的 ushare。ushare 是針對 xbox所開發的 UPnP server。最新版的還支援了 PS3,是套免費且堪用的server。ushare在porting方面的問題不大,反而是在跟不同的 UPnP client溝通時會有問題。在製作時遇到以下問題:

1. Windows Authorization

描述:
    UPnP在溝通時是利用 http在傳輸資料,而使用 xml 來定義他的各種行為。而ushare在建立聯結的過程中,有去跟 client做驗證,因為當初他的設計是為了搭配 xbox,所以也要求要通過 Windows的認證。由於一開始驗證都是以WinDVD 8為 client,OS 使用的是 Windows XP,所以 Windows 驗證方面也沒有問題。直到拿來跟別台 DMA做測試時才發現不能撥放,因為一般的 DMA並沒有包含 Windows的認證,那連線也就建不起來了。

解法:
    ushare 所送出的 xml是 hard code的。所以找到他定義各項 service的部份,並將其中微軟驗證的部份拿掉,如此一來即可不需驗證。可以參考GeeXboX uShare

 

2. XBox 360 & PS3

描述:
    照第一項的作法在這兩台機器上無法正常使用。

解法:
    最新版的 ushare有支援,因此抓下來重 build即可。唯一的問題是如果不照第一項的方式修改,其他各家的 DMA 可能無法使用,但若照其方法修改 XBOX則無法使用,可能是他要求要驗證的關係吧。最後是因為說 XBOX 比較多人用,所以不去更改。

在解第一項問題時,花了一些時間去抓封包,比較封包差異,研究無法撥放的原因。在做NAS時,很常感覺到一有問題就說要抓封包,有的情況下確實很有用,抓到封包比對後可以看出 code哪裡可能會有問題,但也常常不知道抓來要做啥,這之間的矛盾很難取捨。

沒有留言:

★★★★★★ 傑森系列 ★★★★★★