It feels like Groundhog Day all over again. After finding a relatively painless way of installing the PS3 Media Server on Ubuntu (PS3 Media Server And Ubuntu Foo), I found an easy way with a PPA (PS3 Media Server made easy) and I thought all will be good when I do the re-install of my server with Saucy. I couldn’t be more wrong. The latest Ubuntu version that is supported by the PPA is Raring and it seems it stopped at version 1.81.0 of the PS3 Media Server. A quick check of the home page and the current version is 1.90.1.
After some thought, I checked my old blog post and the configuration files from the PPA. So, this is a chimera of all these components and most importantly, it works. I can now feed media to my devices that don’t support the Plex Media Server.
So, lets get started. Oh, before I forget it. All these steps need to be done as root!
The good thing is, that nowadays most of the media related packages are already part of Ubuntu. So, we can simply pull most dependencies directly from Ubuntu’s repository and don’t have to add tons of PPA’s.
First and foremost you need Java. I prefer for some unrelated reasons to use the Oracle JDK. I know JDK 8 was just released but 7 will do for the moment. And as far as I know PMS (yes, I use the abbreviation again) works fine with the OpenJDK. So this first step is kinda optional.
add-apt-repository ppa:webupd8team/java apt-get update apt-get install oracle-java7-installer
And if you want to try OpenJDK, you do the following
apt-get install openjdk-7-jdk
Now we need the media related dependencies. All the encoders, decoders, muxers, etc. Most of it is already in Ubuntu and you might not need all of it (like dcraw). But I think it is better to have it installed and ready use, then be surprised when a feature, you never used before, doesn’t work. So here we go.
apt-get install mplayer mencoder mediainfo ffmpeg imagemagick vlc flac dcraw
tsMuxeR is the only one missing in this list. Luckily Robert Tari created a PPA. Lets just add it:
add-apt-repository ppa:robert-tari/main apt-get update apt-get install tsmuxer
Get PS3 Media Server
The project switched from Google Code to SourceForge but has its source code at GitHub. Confused? Well, so am I, but they must have their reasons and I don’t question it. Anywhoo, you can download the latest version (currently 1.90.1) from here:
After downloading you can install PMS into /opt or any other directory you think might be useful (/usr/local, etc.). I personally prefer /opt. Here we go:
tar xzvf pms-1.90.1-generic-linux-unix.tar.gz -C /opt/ ln -s /opt/pms-1.90.1/ /opt/pms
Creating the symlink in the second step makes life easier for later updates. All the configuration and start/stop scripts just look for /opt/pms. Updating should be as easy, as extracting the package into /opt and recreating the symlink.
I based my scripts on the scripts from the PPA from Happy-Neko. Currently I did just some path corrections but I am planning on moving more configuration options to the configuration in /etc/default/.
Here are the steps to get the Upstart script, service configuration file and set the legacy link.
wget http://www.rfc3092.net/wp-content/uploads/2014/03/ps3mediaserver.conf_.gz gunzip ps3mediaserver.conf_.gz mv ps3mediaserver.conf_ /etc/init
wget http://www.rfc3092.net/wp-content/uploads/2014/03/ps3mediaserver.gz gunzip ps3mediaserver.gz mv ps3mediaserver /etc/default
cd /etc/init.d/ ln -s /lib/init/upstart-job ps3mediaserver
The last two steps set the legacy link, so that you can start the service using the old /etc/init.d mechanism. And the second is to tell Upstart, to scan for new services.
Please check /etc/default/ps3mediaserver, if it fits your needs. For instance, not everybody wants to run PMS as root. So take a minute and clean that up.
The configuration for PMS with this setup in the configuration area for the user root.
You can change this in /etc/default/ps3mediaserver. Here is how you get a basic configuration going.
wget http://www.rfc3092.net/wp-content/uploads/2014/03/PMS.conf_.gz gunzip PMS.conf_.gz mkdir -p /root/.config/ps3mediaserver mv PMS.conf_ /root/.config/ps3mediaserver
The configuration file is already updated to reflect the paths for all external tools. It does not contain a UUID for the server, because that is created automatically when you fire up the server for the first time.
You should take a look at the following settings (see also my blog post PS3 Media Server And Ubuntu Foo for tips):
folders is the only one out of these that you definitely want to set to reflect your setup. The server is running as a service and therefor headless. Just put a comma separated list of directories in there. Something like
folders = /src/videos,/srv/music
name on the other hand is just a cosmetic thing and defines with which name the server shows up on the client.
Yet, the default for network_interfaces can sometimes cause some grieve. You might have to bind the server to a specific interface if some virtual interface seems to be more attractive to PMS.
hostname is similar to network_interfaces. Usually it should not be needed but if you have multiple IP’s on a device you might want to specify which IP it binds itself to.
Now that everything is set up you can start the service.
service ps3mediaserver start
The service should fire up without any errors. And if you encounter errors you will find the logs in /var/log/ps3mediaserver/root/.
I think it is pretty straight forward to get PMS to work on Ubuntu. If I find some time… did I just write that?! Well, if I find some time, I will create a PPA with the latest version and I will try to keep it up to date.