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.
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.
uShare and its dependencies are included in the Arch [community] repository. To install, run as usual:
# pacman -S ushare
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) USHARE_ENABLE_WEB= # Enable Telnet control interface (yes/no) USHARE_ENABLE_TELNET= # Use XboX 360 compatibility mode (yes/no) USHARE_ENABLE_XBOX=yes # Use DLNA profile (yes/no) # This is needed for PlayStation3 to work (among other devices) USHARE_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.
- 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 this if you are connecting to a Playstation 3 otherwise it is safe to say no here
You will need to add the following line to /etc/hosts.allow:
ushare : ALL : ALL
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.
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.