One reason for purchasing the HP Proliant Microserver (N40L) was to run it as a media server (since the Linkstation Live NAS drive I already have, while a decent fileserver, doesn’t seem to play nicely with the PlayStation 3 for some reason).
I looked at a few options and eventually decided on PS3 Media Server as my DLNA server – despite the name, it supposedly serves media to all sorts of devices. Oh and after trying Fedora 16 (no wake on LAN), Ubuntu (dodgy RDP display quirks), Kubuntu (software updater refused to work) and openSuse (just too different from Ubuntu) I settled on Lubuntu – a light-weight Ubuntu variant with the LXDE (Lightweight X11 Desktop Environment).
So my day has been spent trying to install the PS3 Media Server, get it to work (easy) and – now here’s the tricky part – get it to run as a service (i.e. in the background, and on startup – before I’ve logged in). This involved a lot of learning about things I’d never heard of before, or had completely forgotten, like init.d, Linux run levels, shell scripts, putty, PPAs and loads more – but I’ll try and keep this as simple as I can.
So the first bit is easy, thanks to Ubuntu Help’s PS3 Media Server page. Installation can be done using Ubuntu’s standard apt-get. PS3 Media Server isn’t in Ubuntu’s built-in repositories but someone has helpfully created a “Personal Package Archive” or PPA (whatever that is) that apt-get can install from. So you need to fire up your terminal and run:
sudo add-apt-repository ppa:happy-neko/ps3mediaserver
sudo apt-get update
sudo apt-get install ps3mediaserver
As far as I can tell these three steps tell Ubuntu to add a new repository (the ppa) to the package manager, update the list of packages available (to add the packages in the ppa) and then install the package it’s just found called ps3mediaserver. Easy, right?
Now you can play about with it (you’ll find it at /usr/bin/ps3mediaserver) and a guide to some of the PMS settings is available online. But if you’re running a home server like my Microserver, you’ll probably want it to run at startup (before any user login). This is trickier.
According to the docs, it’s not recommended to run PS3 Media Server as a daemon on Linux… oh dear. (If you want an easy life, it seems you can run it as a Windows Service easily enough). However it looks like it is possible. First, I recommend learning a little about the /etc/init.d directory and rc.d – for which I found an explanation of init.d and a helpful introduction to Linux services.
Basically the init.d directory seems to be a collection of scripts, each one designed to manage (stop/start) a specific application on start up.
In addition to this I’d been looking at Leigh Henderson’s guide to installing PS3 Media Server where the author had the same objective – running as a ‘headless’ service. However, he had downloaded and installed the files himself (not using the PPA) which seems to work slightly differently. Leigh talks about using a script (PMS.sh, which comes with the manual download) to start the program, which I simply didn’t have.
I did manage to take Leigh’s instructions and make them work for the apt-get installed version of the server though. After messing about with the ps3mediaserver script that was already in init.d (a much more complicated beast), and not being able to make it do what I want, I decided to write my own version of Leigh’s simple script.
Despite my initial trepidation, it seems all that was necessary was to call the executable /usr/bin/ps3mediaserver instead of his script at /opt/pms/PMS.sh.
i.e. create a script in /etc/init.d (I called mine pmsautostart) with the following content:
#!/bin/bash
nohup /usr/bin/ps3mediaserver &
exit
You’ll need root permissions (sudo) to save this file. The nohup help tells me that nohup simply runs a command but then ignores ‘hangup’ signals. As far as I can tell these are signals sent from the OS when a user logs out, telling the program to quit.
And you should be good to go! Please let me know if the above works for you.
Note that I take no responsibility if you repeat what I did and break your OS. I’m just learning this stuff myself and, for example, already know that this solution leaves your PS3 Media Server running as root (and I’m sure this is a bad idea so my next task will be trying to figure out how to run it as someone else). Nevertheless, you’ve been warned!
PS – The only other thing I haven’t figured out so far is how to get PS3 Media Server to not show every directory on my system to the PS3. I tried restricting the shared folders using the GUI but that doesn’t seem to do anything. If you figure this out before I do please let me know that too!