Being both a Linux and Xbox fan makes for an interesting time. One of the best features of the Xbox is its streaming from a PC on your LAN. There are various features that the Xbox provides for seamless media streaming (be it videos, music or pictures) but it’s not as straightforward as it may seem (at least from what I’ve seen from various searches).
Xbox media streaming uses the DNLA protocol to receive content from a peer on a network. Using ushare, you can setup streaming to your Xbox on any Linux machine quite easily. All that’s needed is libupnp2 (if you’re running Debian, you may have to install libupnp via the Ubuntu deb as only version 3 is available and the uShare package depends on it explicitly), a minor configuration change and a quick hack to the init script. All of which I’ll explain now.
Installation (for Debian Sid)
Note: for Ubuntu, you’ll just need to run ‘sudo apt-get install ushare’ in a shell. Then skip to the configuration section below.
uShare depends on libupnp2 and unfortunately only version 3 is available (at least in sid). Therefore, you’ll need to obtain a deb for version 2 (I got the Ubunutu equivalent from here and it works fine). Once you’ve downloaded a .deb for your architecture, fire up a shell (or ‘terminal’) and enter the following (filenames will differ depending on your arch):
sudo dpkg -i libupnp2_1.4.3-2_amd64.deb
Now that libupnp2 is installed, you’ll need to get a deb for uShare or alternatively (and best, because you’ll get updates via apt) is to add the uShare apt repository to your sources.list. Open /etc/apt/sources.list as root (using sudo):
sudo vi /etc/apt/sources.list
Now add the following line at the bottom of sources.list:
deb http://www.geexbox.org/debian/ unstable main
Save and close sources.list. Finally, update your package list:
sudo apt-get update
Now you’ll have uShare available via apt. To install it, run the following:
sudo apt-get install ushare
Once finished, you’ll have uShare installed and ready for configuration. Out of the box, it won’t provide much apart from a daemon listening on a random port (defined as part of IANA Dynamic Ports range). You’ll need to edit /etc/ushare.conf to enable Xbox compatibility as well as define the standard port – 49200. Open /etc/ushare.conf as root and change the following lines:
Before these changes will take effect, you’ll need to restart ushare using its init script. However, an issue I’ve noticed is that the last line (‘ENABLE_XBOX=YES’) does not always work. So before we restart uShare, we’ll need to make a small change to the init script that resides under /etc/init.d/ to force Xbox compatibility:
sudo vi /etc/init.d/ushare
and add the following line at the beginning of the script:
This tells uShare to start with Xbox compatibility. Now restart uShare using the init script:
invoke-rc.d ushare restart
And you’re done. Almost. :) You may need to restart your Xbox for it to recognise your Linux machine (although the use of UPnP – Universal Plug ‘n’ Play – would suggest otherwise). Once you’ve done that (or if you’re brave), navigate to ‘My Xbox’ and then select ‘Videos’ and finally you should see ‘uShare’ at the bottom (computer icon). Selecting that will connect to your Linux box and you’ll be able to browse your media just as you would on your PC. Awesome!