uShare is a UPnP program developed by GeeXboX that allows you to stream media from your computer to your Xbox 360 or PlayStation 3 along with other media devices. While there are other UPnP programs available, such as FUPPES, ps3mediaserver and MediaTomb (each of which are available in [community] or the AUR if you so choose), uShare is relatively easy to configure and works well out of the box.

Contents

Shortcomings

Note that uShare is a minimalist server; it keeps all media metadata in memory, and therefore needs to re-scan all your files at start. If you have lots of files (e.g. music), this can take a while. Also, as packaged in Arch now, uShare runs as root; this is a serious security problem. uShare is currently unmaintained.

Installation

uShare and its dependencies are included in the Arch [community] repository. To install, run as usual:

# pacman -S ushare

Configuration

After the installation is complete its time to move on to the configuration of uShare. This is very simple in the sense that you only have one file to edit, Template:Filename:

# /etc/ushare/ushare.conf
# Configuration file for uShare
# uShare UPnP Friendly Name (default is 'uShare').
USHARE_NAME=
# Interface to listen to (default is eth0).
# Ex : USHARE_IFACE=eth1
USHARE_IFACE=
# Port to listen to (default is random from IANA Dynamic Ports range)
# Ex : USHARE_PORT=49200
USHARE_PORT=
# Port to listen for Telnet connections
# Ex : USHARE_TELNET_PORT=1337
USHARE_TELNET_PORT=
# Directories to be shared (space or CSV list).
# Ex: USHARE_DIR=/dir1,/dir2
USHARE_DIR=
# Use to override what happens when iconv fails to parse a file name.
# The default uShare behaviour is to not add the entry in the media list
# This option overrides that behaviour and adds the non-iconv'ed string into
# the media list, with the assumption that the renderer will be able to
# handle it. Devices like Noxon 2 have no problem with strings being passed
# as is. (Umlauts for all!)
#
# Options are TRUE/YES/1 for override and anything else for default behaviour
USHARE_OVERRIDE_ICONV_ERR=
# Enable Web interface (yes/no)
ENABLE_WEB=
# Enable Telnet control interface (yes/no)
ENABLE_TELNET=
# Use XboX 360 compatibility mode (yes/no)
ENABLE_XBOX=yes
# Use DLNA profile (yes/no)
# This is needed for PlayStation3 to work (among other devices)
ENABLE_DLNA=

ex: USHARE_NAME=Archlinux

Set this to whatever you want, it is the name you will see when selecting the server

ex: USHARE_IFACE=eth0

Default is eth0 so only change it if yours is something different

ex: USHARE_PORT= 49200

I set this to 49200 so it was always the same port but you can leave it blank if you want it to randomly set it each time

ex: USHARE_DIR=/media/Share

I found uShare has problems with more than one directory. Setting this to a directory of symlinks works well for sharing a number of different unrelated directories.

USHARE_OVERRIDE_ICONV_ERR=

Unless you feel like overriding the default I would leave it blank

Web interface and Telnet service I put as no because I like to do everything from a command line but you can set this however you like

ENABLE_XBOX=yes

jordz said that this line needs to be:

USHARE_ENABLE_XBOX=yes

I can confirm that this does indeed work so if you are connecting to an Xbox you should modify and enable this option

ENABLE_DLNA=

Enable this if you are connecting to a Playstation 3 otherwise it is safe to say no here

NOTE: This is unconfirmed, but all the ENABLE_ options should propably have USHARE_ before them, atleast WEB works with USHARE_ (Lartza)

You will need to add the following line to /etc/hosts.allow:

ushare : ALL : ALL

Troubleshooting

The only issue I've run into is running uShare as a daemon. When in daemon mode, I have found that my Xbox complains about invalid video formats. To fix this I have found that changing the line:

[ -z "$PID" ] && /usr/bin/ushare -D $PARAMS

in /etc/rc.d/ushare to:

[ -z "$PID" ] && /usr/bin/ushare -x -D $PARAMS

works for me, but I cannot confirm that this is a general fix for all computers or that this is an issue to anyone other than myself.

xvid/divx

If you have problems with xvid/divx files, a possible work around would be to change mime types from avi files from /usr/share/mime/packages/freedesktop.xml from "video/x-msvideo" to "video/x-ms-wmv", update database with `update-mime-database /usr/share/mime/` and restart ushare.
This procedure was taken from This blog post and this mail.