Playing music on a Raspberry Pi using UPnP and DLNA (revisited)

Edit, 2014-05-11: Please note there are (yet again) updated instructions for installing gmediarender. The rest of this tutorial is still valid though.

What we are aiming for

A music system with a Raspberry Pi plugged in to an amplifier playing music that you choose with your mobile phone. The music can come from MP3s on your phone, from files on your server or from internet radio stations. If there’s more than one Android phone in your household you can have them all synchronised, showing the same playlist and controlling the same music. If you have multiple Raspberry Pis you can put one in each room and choose which one to play the music with. This is all achieved with free software and open standards. I’ve just written some instructions to show how to do it.

With any luck your initial outlay will only be about £45. The end result will be similar to the systems from Sonos and Squeezebox costing loadsamoney. Further additional devices to play music through another Hi-Fi or TV would also be £45.

My earlier post about getting Raspberry Pis to play music using your phone or phones as the controller has been very popular. Since then though the software has developed with new releases of the Debian distribution, gmrender-resurrect and the Raspberry Pi firmware. Taking all these new releases the process is now very much simpler and the sound does not have annoying pops.

What you need

  • A Raspberry Pi
    • I got mine with a case from ModMyPi for £35
  • A wireless USB dongle (or wired ethernet connection near your Hi-Fi)
  • A micro-USB power supply (most phones use these so you might have one already)
  • An SD Card (2GB minimum) – perhaps an old one from a camera?
  • An SD Card reader/writer – often built in to a computer
  • Your music available on a linux server (e.g. CDs ripped to MP3 files) – this could be replaced with e.g. a NAS device or a Windows machine or just MP3s on your phone
  • An amplifier with a 3.5mm auxiliary input and speakers (perhaps a TV sound bar?)
  • An audio cable to connect the Pi to the amplifier
  • At least one Android device
  • Some sort of router / wireless network to connect the media server to the Raspberry Pi
  • You might need a USB keyboard and a TV/monitor to do the initial set-up (hopefully you have these lying around)

Setting up a Raspberry Pi to be a UPnP Media Renderer

The one essential thing is to get gmrender-resurrect (also known as GMediaRenderer, gmrenderer, gmrender, …) installed and working. Once that is done you will be able to play MP3s from your phone through the Raspberry Pi. GMediaRenderer is what is known as a UPnP Media Renderer: that is a destination for media files using the UPnP protocol. There is a lot of software that supports UPnP and many modern “Smart TVs” can also play your music in this way. This is also related to DLNA but I have to confess I don’t understand the interplay between these standards.

Installing the Operating System

I started from fresh, downloading the latest “Wheezy” Debian Linux distribution from the Raspberry Pi downloads page. At the time of writing this was Following instructions on the Raspberry Pi site, I copied it onto an SD Card and turned the RPi on.

Get the Raspebrry Pi on the network

This is one of the more involved parts, which I wrote about last time. It depends on your network basically so have a look at my instructions and use Google to find some more.

First steps and updates

We now have to get everything updated to the latest versions. Note, that these instructions will get the latest software and latest firmware so you might end up with something more recent than me and therefore slightly different behaviour. To see what operating system you have:

$ uname -a
Linux raspberry2 3.6.11+ #474 PREEMPT Thu Jun 13 17:14:42 BST 2013 armv6l GNU/Linux

Do the initial configuration:

$ sudo raspi-config

You need to enable ssh access, set your password, set the hostname and reboot.

When I looked at this last time, even with my final solution of using Pulse audio there were annoying pops when music started and stopped. This issue was investigated by the Raspberry Pi developers and has now been fixed in the latest firmware.

To update the firmware to the latest drivers etc, we can use the rpi-update tool:

$ sudo apt-get install rpi-update
$ sudo rpi-update
 *** Running ldconfig
 *** Storing current firmware revision
 *** Syncing changes to disk
 *** If no errors appeared, your firmware was successfully setup
 *** A reboot is needed to activate the new firmware
$ sudo shutdown -r now

Once the RPi has rebooted you can see what version you have:

$ /opt/vc/bin/vcgencmd version
Jun 17 2013 20:49:11
Copyright (c) 2012 Broadcom
version d380dde43fe729f043befb5cf775f99e54586cde (clean) (release)

Now you need to update all the software. This can take a little while but it’s all automatic:

$ sudo apt-get update
$ sudo apt-get upgrade

Installing GMediaRenderer

Please note there are (yet again) updated instructions for installing gmediarender.

Log in to your RPi and make sure you are in your home directory. Get a copy of the gmrender-resurrect project from GitHub and enter the new directory that appears:

$ cd
$ git clone
$ cd gmrender-resurrect

Henner Zeller has done a great job in fixing bugs and adding features to the old gmrender project and now has a Raspberry Pi himself so has made sure the instructions included with gmrender-resurrect work very nicely. All you have to do now is follow the instructions in the file (type “more” to see them, or go see them online at GitHub):

$ sudo apt-get install autoconf automake libtool
$ sudo apt-get install libupnp-dev libgstreamer0.10-dev \
                gstreamer0.10-plugins-base gstreamer0.10-plugins-good \
                gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly \
                gstreamer0.10-ffmpeg \
                gstreamer0.10-pulseaudio gstreamer0.10-alsa
$ ./
$ ./configure
$ make
$ sudo make install
$ sudo cp scripts/init.d/gmediarenderer /etc/init.d

If you followed up to that point you will have just copied the “init script” that starts and stops the gmrender service into the /etc/init.d directory where all these scripts live. Henner’s script may need editing for your situation but it is all commented to tell you what to do. I use two Raspberry Pis in two rooms so I just changed the UPNP_DEVICE_NAME to “kitchen” and one to “bedroom”. The init script automatically generates a unique identifier (UUID) for each Raspberry Pi that you use it on so if you use more than one then they won’t clash on your network. If you need to edit the file, use “vi” or “nano” to edit the file /etc/init.d/gmediarenderer

To actually get the operating system to run the init script at the right times we need one more command and then we might as well reboot to test it:

$ sudo update-rc.d gmediarenderer defaults
$ sudo shutdown -r now

Test that GMediaRenderer is running by listing all the processes with “ps” and searching the output for gmediarender with “grep”:

$ ps aux|grep gmedia
 2279 ?        Ssl   69:52 /usr/local/bin/gmediarender -f Bedroom -d -u bd1dcf3e746aa69812943cb1d00f7ebc --gstout-audiosink=alsasink --gstout-audiodevice=sysdefault --gstout-initial-volume-db=-10

Your output won’t be exactly the same as that but as long as you get something then it’s running.

Setting the default volume

Probably the easiest way to turn the volume up is to run the alsamixer command and press the up arrow cursor until the screen looks like this:
alsamixer on a Raspberry Pi
Press the Escape key to exit. You then need to store that configuration so that it is the default when the machine is turned on:

$ sudo alsactl store

At this point you should move the Raspberry Pi so that you can plug it in to your amplifier. These instructions assume you are just going to use the 3.5mm stereo audio jack. The sound quality from that is not the best in the world but for many people it is good enough. If you want better then you can buy a USB sound card very cheaply but then the sound configuration will be different and I can’t help you on that (yet).

Checking that ALSA is fine

To summarise this part, I didn’t have to change anything even though it looked like it wasn’t working. I’m not sure what’s going on but I’ve included some diagnostic output here in case it is useful. You can probably skip on to the next section!

Check what the “sysdefault” audio sink is that GMediaRenderer is going to use:

$ aplay -L
    Discard all samples (playback) or generate zero samples (capture)
    bcm2835 ALSA, bcm2835 ALSA
    Default Audio Device
    bcm2835 ALSA, bcm2835 ALSA
    Default Audio Device

More information from “amixer”. This looks suspicious as it says that the playback is “Mono” when we’d expect “Stereo”:

$ amixer
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback -10239 - 400
  Mono: Playback -1862 [79%] [-18.62dB] [on]

Confirm that the correct driver is loaded (bcm2835):

$ lsmod|grep snd
Module                  Size  Used by
snd_bcm2835            16304  1
snd_pcm                77560  2 snd_bcm2835
snd_seq                53329  0
snd_timer              19998  2 snd_pcm,snd_seq
snd_seq_device          6438  1 snd_seq
snd                    58447  6 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
snd_page_alloc          5145  1 snd_pcm

Run a speaker test:

$ speaker-test

I found this kept testing what it thought was “Front Left” and sending noise out of both speakers. There are files on the RPi that are supposed to play out of only one speaker which should be useful for testing:

$ aplay ./share/sounds/alsa/Front_Right.wav
$ aplay ./share/sounds/alsa/Front_Left.wav

I found that both of these came out of both speakers. Another speaker test showed that stereo was possible:

$ speaker-test -c 2

That resulted in sound coming from each speaker in turn! Finally I tried playing two MP3s (left and right) from a useful page and they also worked fine:

$ sudo apt-get install mpg123
$ cd /tmp
$ wget
$ wget
$ mpg123 right.mp3
$ mpg123 left.mp3

Once I found that MP3s were in stereo I finished the rest of the installation and found that music from GMediaRenderer was also in stereo. There’s definitely something wrong but as it doesn’t affect what we want to do I’m leaving it well alone for now.

Using your phone as a controller

To control the music with your phone I use BubbleUPnP for Android. Go to Google Play and install BubbleUPnP. It is a UPnP renderer and control point and also works with the OpenHome protocol (more on that later). In other words, it will play music (and videos and pictures) from the a media server if you have one and can also tell the Pi to play music. The free app has some limitations (not too restrictive) and you can pay £3 to have it unrestricted which is well worth it whether you need to or not if you ask me. Other UPnP controllers exist and are no doubt also available for iPhone but I haven’t tried them.

If you run BubbleUPnP and go to the “Devices” screen then you should see your Raspberry Pi listed under the “Renderers” section along with the “Local Renderer” which is the phone itself. Select the Raspberry Pi. In the “Libraries” section you should see “Local Media Server” which is the files (e.g. music) on your phone and you may see other music libraries as well if you have a media server in the house. To play music from your phone through the Raspberry Pi select the Local Media Server, choose some music from the “Library” screen and get it to play.

If someone else in the house also has BubbleUPnP installed on their phone and configured correctly then you can also choose music from their phone to play on the Raspberry Pi.

Playing music from a media server

I have all my music stored in FLAC and MP3 format on a small Linux computer that is on all the time: this is my “media server”. You may have a laptop or computer with music on which is on sometimes, or a NAS drive with music, or you might put music on a USB disc and plug that into the Raspberry Pi. All these options can be considered to be media servers.

To “serve” the music there must be a computer with software on that understands the UPnP protocol so that the phone can find it and select music from it. When you do this, the phone just tells the Raspberry Pi to fetch the music directly from the media server so it doesn’t all stream via the phone, which is good because it doesn’t suck the battery.

I’ll try to cover some of the options here. There is a big list of UPnP servers on Wikipedia.

Serving music from a Windows computer

I haven’t done this, but there are various options that are known to work:

Configure the software and it should appear in the “Libraries” list on the BubbleUPnP “Devices” screen.

Serving music using MiniDLNA on a separate Linux computer

This is what I have: a computer running Linux with the music stored on it. Again, there are many options but I have chosen to use the
MiniDLNA software. You can most likely find MiniDLNA in your package manager. For me I did:

$ sudo apt-get install minidlna

Point minidlna at your music files by editing the /etc/minidlna.conf file, e.g.:

# set this to the directory you want scanned.

# set this if you want to customize the name that shows up on your clients
friendly_name=My DLNA Server

# set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache

I also had to “sudo chown minidlna.minidlna /var/cache/minidlna” to get it to work, but YMMV.

The log for minidlna is in /var/log/minidlna.log so to see the latest messages do “tail -f /var/log/minidlna.log” and use Ctrl-C when you’ve had enough. Sometimes you need to force minidlna to rescan your media files, in which case use “sudo service minidlna force-reload”.

Serving music using MiniDLNA on the Raspberry Pi

If you have no other computer that is on all the time then you can put your music on a USB hard drive and plug that into the Raspberry Pi. The Raspberry Pi should find the USB drive automatically and mount it, making it available for use (type “mount” to see what’s available). You will still need to have the UPnP server so follow the instructions above to install MiniDLNA. You will have to set the “media_dir” config option to point to your USB drive. (Sorry this is a bit brief, I haven’t tried it.)

Serving music using a NAS

If you have a NAS on your network, or you have a Windows computer that is sharing a drive with your music on then you can mount the network drive on your Raspberry Pi and get the music as if it is on a local disc (i.e. follow the previous section). To get the network drive mounted, follow these helpful instructions.

Using multiple synchronised controllers

If you’ve stuck with it so far then you have one or more Raspberry Pis playing music from one or more media servers, all controlled from your phone. If you have more than one Android device in your house then there is one remaining problem that needs to be solved. Each BubbleUPnP controller on a phone can see the music files on the server and can tell the Raspberry Pi to play music but they will be fighting each other with no shared playlist or shared “playing now” indication.

To achieve the situation shown in the video at the start we need to use the OpenHome protocol on top of all the UPnP devices so that all your controllers (phones, tablets) share the same playlist, volume and “playing now” view. To do this we need BubbleUPnP server. Again, there are many places this last piece of software can be installed. There are instructions provided at on the BubbleUPnP server page but I’ll explain a little more. To me it makes most sense to have BubbleUPnP server running on the same machine as the MiniDLNA service.

BubbleUPnPServer on a separate Linux computer

My server runs Ubuntu so all I had to do was:

$ sudo apt-get install openjdk-7-jre-headless
$ sudo add-apt-repository ppa:bubbleguuum/bubbleupnpserver
$ sudo apt-get update
$ sudo apt-get install bubbleupnpserver
$ sudo start bubbleupnp

BubbleUPnPServer on the Raspberry Pi

Firstly install Java:

$ sudo apt-get install openjdk-7-jre-headless

Then download BubbleUPnPServer, make a place to install it and unzip the package. We’ll also install ffmpeg so that it can transcode files if necessary:

$ cd /tmp
$ wget
$ cd /usr/local/bin
$ sudo mkdir BubbleUPnPServer
$ cd BubbleUPnPServer
$ sudo unzip /tmp/
$ sudo apt-get install ffmpeg

The easiest way to get the BubbleUPnPServer running is to use the provided script, firstly making it executable:

$ sudo chmod +x
$ sudo ./ > /dev/null 2>&1 &

That second command is running the launch script and sending all its output to /dev/null (which means it doesn’t appear on your terminal). The final “&” means it is run in the background so you get your terminal prompt back. Check it’s running like this:

$ ps aux |grep Bubb
13089 pts/0    Sl     1:18 java -Xss256k -Djava.awt.headless=true -Dfile.encoding=UTF-8 -jar BubbleUPnPServer.jar
13212 pts/0    S+     0:00 grep --color=auto Bubb

The log file for the service can be found in /usr/local/bin/BubbleUPnPServer/BubbleUPnPServer.log.0 so if you are still in the same directory, typing “tail -f BubbleUPnPServer.log.0″ will show you the latest messages (use Ctrl-C to stop viewing).

The problem with this approach is that the BubbleUPnPServer process will not start automatically if you reboot your Raspberry Pi so we need an init script for it. Chris Mobberley has written one just for this purpose, but you’ll need to change the DAEMON_PATH definition from “/var/www/bubbleupnp” to “/usr/local/bin/BubbleUPnPServer” to be consistent with my previous instructions. I’ve also just posted a more generic guide to init scripts that could be adapted to this case.

Setting up BubbleUPnPServer

Wherever you have installed BubbleUPnPServer you should now have it running. You need to go to the server’s admin web page to configure it. The admin page can be found on port 58050 so in your web browser go to http://hostname:58050 where “hostname” is the name of the computer running BubbleUPnPServer. If you’ve just installed it on a Raspberry Pi then you might not have a hostname that the web browser recognises. In which case use the Pi’s IP address, finding this as so:

$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether b8:27:eb:94:63:30 brd ff:ff:ff:ff:ff:ff
    inet brd scope global eth0

So in this case the RPi’s address is (under “eth0″ as it is plugged in with an ethernet cable) and I need to go to in my web browser. If you had it on a wireless network then the IP would be under the “wlan0″ category.

Once you have the admin page then follow the instructions from the BubbleUPnPServer website. You should see you Raspberry Pi listed in the Media Renderers tab. Tick the box to “Create an OpenHome renderer”.

Using the BubbleUPnPServer

Once you have created the OpenHome renderer then you can use it from your phones. Go back to BubbleUPnP on your phone and go to the “Devices” screen. You should now see you Raspberry Pi there twice, once as before and now also there with “(OpenHome)” after it. If you use this renderer from your phones then all instructions go via the BubbleUPnPServer and all your phones can share the same playlist etc.

BubbleUPnP for Android using OpenHome

BubbleUPnP for Android using OpenHome

Final thoughts

Finally, there is a lot more to the BubbleUPnP client and server that I couldn’t cover here and which isn’t to do with the Raspberry Pi. The client for instance can play music from internet radio stations and from Google Music. You can also set up the server so that you can access it from outside your house and by some clever configuration make it so that if you go to a friend’s house who has a DLNA renderer (lots of TVs do these days) then you can use your phone to tell your friend’s TV to play music from your server!

This solution does not create synchronised music coming from several RPi’s at once. I understand this can be done with Squeezelite (more info here).

If you have Apple devices then you might want to use Airplay, in which case look at shairport.

There is a new protocol called MagicPlay which is an open version of AirPlay. Again, I’ve not tried it but it looks very promising.

Lots of people are doing the same sort of thing. There’s a particularly good post from Mark.

I’m happy to answer questions below, but do read the massive comment thread on the previous post and the Raspberry Pi forum. I’ve tried to address some ALSA issues in another post (though please note that that was with a different Wheezy and firmware version).

2013-07-22, edit: fixed typo in alsactl command.
2013-07-23, edit: included more info on the init script for BubbleUPnP server.
2013-08-11, edit: added BubbleUPnP for Android screenshot showing OpenHome.
2014-02-20, edit: updated BubbleUPnP server version to 0.8.
2014-08-31, edit: updated BubbleUPnP server version to 0.8.3.

  • Pingback: Using a Raspberry Pi with Android phones for media streaming with UPnP / DLNA | Stephen C Phillips()

  • Pingback: A UPnP renderer for the Raspberry Pi | Stephen C Phillips()

  • Pingback: Playing music on a #RaspberryPi using UPnP and DLNA | Raspberry PiPod()

  • Mikkel Elmholdt

    A slight typo: The command to save the alsamixer config is not “sudo alsctl store” but “sudo alsactl store”.

    • scp93ch

      Thanks, corrected now.

      • Mikkel Elmholdt

        Another one: “sudo update-rc.d gmediarenderer default” should be ”
        sudo update-rc.d gmediarenderer defaults” :-)

        • scp93ch

          Well spotted.

          • Chris Mullen

            I wanted to use your solution to be a wireless head and stream from an iphone or anrdroid phone that had mp3s on it directly to my car stereo using the rpi as the dlna renderer with no network router involved. My question / concern is that the rpi must directly connect to the phone via wifi without a wifi router present. Is this possible? How are the rpi network settings different? In fact the no router wifi rpi solution is so inexpensive I would think this would be a great way to enable phone feeds to any stereo system with out involving a wifi router.

          • Stephen C Phillips

            It should be possible. I googled for “raspberry pi WAP” and got this:
            (“WAP” is wireless access point).
            I think the adafruit tutorial there is not quite what you want as it routes traffic to the ethernet port but it might just work and should give you some useful info. Or just google around… :-)
            Good luck!

  • chrismobberley

    Thanks for referencing my work. This tutorial is one of the most useful I have ever used great work!

  • Talat


    I followed your guide and gmrender-resurrect install instructions on git page. everything ok since make command. but make and make install commands gives following error. i also installed “autoconf automake and libtool”


    pi@raspinas ~/gmrender-resurrect $ make
    make all-recursive
    make[1]:`/home/pi/gmrender-resurrect’ dizinine giriliyor
    Making all in src
    make[2]:`/home/pi/gmrender-resurrect/src’ dizinine giriliyor
    (echo “#define GM_COMPILE_VERSION “2013-07-24_77758bf”” > git-version.h-new;
    cmp -s git-version.h git-version.h-new || cp git-version.h-new git-version.h;
    rm git-version.h-new)
    gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -pthread -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/libxml2 -pthread -I/usr/include/upnp -DPKG_DATADIR=”/usr/local/share/gmediarender” -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c
    In file included from main.c:48:0:
    /usr/include/glib-2.0/glib/gversion.h:28:2: error: #error “Only can be included directly.”
    make[2]: *** [main.o] Hata 1
    make[2]: `/home/pi/gmrender-resurrect/src’ dizininden çıkılıyor
    make[1]: *** [all-recursive] Hata 1
    make[1]: `/home/pi/gmrender-resurrect’ dizininden çıkılıyor
    make: *** [all] Hata 2

    pi@raspinas ~/gmrender-resurrect $ make install
    Making install in src
    make[1]:`/home/pi/gmrender-resurrect/src’ dizinine giriliyor
    (echo “#define GM_COMPILE_VERSION “2013-07-24_77758bf”” > git-version.h-new;
    cmp -s git-version.h git-version.h-new || cp git-version.h-new git-version.h;
    rm git-version.h-new)
    gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -pthread -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/libxml2 -pthread -I/usr/include/upnp -DPKG_DATADIR=”/usr/local/share/gmediarender” -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wwrite-strings -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c
    In file included from main.c:48:0:
    /usr/include/glib-2.0/glib/gversion.h:28:2: error: #error “Only can be included directly.”
    make[1]: *** [main.o] Hata 1
    make[1]: `/home/pi/gmrender-resurrect/src’ dizininden çıkılıyor
    make: *** [install-recursive] Hata 1

    • scp93ch

      Sorry, but I really don’t know what the problem could be there. You’re using the most recent gmrender-resurrect source there and it’s changed slightly in the last few days ( Line 48 of that file has been added and your error seems related….

      • scp93ch

        I can confirm that I get the same problem. It doesn’t compile. I’ll ask Henner to fix it. Meanwhile you can checkout the version from July 21 (which I have checked, does work) using:

        git checkout be5eb1e6156182f410cee612767bf5cdc08220de

        then do “make” again, “sudo make install”, etc…

        • Talat

          Thank you so muchh.
          I could compiled with older version.
          Now trying to transfer my laptops sound to pi. I hope i am going to success with it. Apriciated for your help. See you.

          • scp93ch

            Henner’s now fixed it, so the instructions in the blog post work again.

          • Talat

            well, so what should i do to checkout with latest version. should i unininstall older and make a new clean install? sorry for making you busy.

          • scp93ch

            Well, the one you’ve built is fine. If you wanted, do a “git pull” and “make clean install”.

  • TJ

    OK, let me be honest, I feel rather stupid to post here when everyone is a coder and I am not. Still, I will post.

    I wonder if there is a possibility that someone can make a bootable disk or something like Ubuntu live which can be copied on SD card and stick it into Raspberry Pi, so that novice like me can do it without getting scared of this thing. I really want to use this board as my music server but coding for me is like nightmare. I don’t know Abc of it.

    Thanks in advance.

    • scp93ch

      Hi TJ, thanks for posting – I’m sure you’re not the only one.

      It would be possible to make an image that you could put on an SD card which would have more of this pre-configured. There are 2 problems though (1) you’d have to trust that the person who gave you the image hadn’t also put something nasty on it, (2) it is hard to get the Wi-Fi or wired network automatically connected.

      My tutorial is admittedly brief on the first stages. Can I suggest looking for a “first steps” type guide for the Raspberry Pi? Get it plugged into your TV and a keyboard and mouse. Boot into the Ubuntu desktop and try out some of the applications there (as well as the shell where all these commands are typed).


      Try the “New Out Of Box Software”:

  • Fabio Freitas

    Hi Stephen, thanks for this precise tutorial !! I followed it and all worked as you described with my Raspberry PI connected to a HDTV through the HDMI output. The audio stream played correctly in TV speakers. But when I play a video file (Raspberry set as renderer), I have the audio output but not the video output on TV screen. I tested playing video files with omxplayer and it worked fine (video and audio). So I am figuring out if there is a way to make omxplayer (or any other video renderer) to work with your gmrender-resurrect / minidlna solution. I am fresh new to Raspberry PI and these media protocols, so I would appreciate very much any help. Thanks in advance.

    • scp93ch

      Hi Fabio, I have not tried this system for anything other than audio as mine is just plugged in to an amplifier. You could look at Raspbmc as it is designed primarily for video but can do audio as well. I believe it also supports DLNA / UPnP.

  • Heath Paddock

    Thanks for this great tutorial. Much appreciated.

  • Robin Gunning

    Hi. Awesome guide. Works like a charm. Only one problem though. When i change song on one android device, i can’t see the change on the other android device. Any clue whats wrong?

    **** edit. Sorry but i fixed it. missed the openhome part. Thanks

    • scp93ch

      Ah, that’s what I was going to suggest. Glad you worked it out.

  • Pingback: [WTF] Kommerzgeil II - Seite 173 - inQuake Forum - mehr braucht man nicht!()

  • LMB

    This solution is unfortunately dependent on BubbleUPnP, which is very buggy, starting with the inability to read system volume control. To be able to change volume one must actually open the app and then change the volume.

    • scp93ch

      I think that’s unfair. I have not found BubbleUPnP buggy at all. If you haven’t got the app open why would a phone’s volume keys change the volume of the media renderer? Or are you talking about changing the volume of the phone when it is playing the music? I think that there is a volume control in the notification tray though I don’t often change the volume from the app so I’m not sure.
      You can use other UPnP controllers as well – that’s part of the point: it’s an open standard. I am not sure if there is another controller that supports the OpenHome protocol though which provides the synchronised playlist across devices. Happy to be corrected!

      • LMB

        ” If you haven’t got the app open why would a phone’s volume keys change the volume of the media renderer?”

        Because there’s a volume button, and it’s meant to control volume. The inability to use it is not a feature.

    • Retarded Cockroach

      I am very happy with this and prefer the independent level control for my phone (which I tend to keep quiet at home) and my renderer (which I like to play LOUD at times). It is not a bug… just a feature :)

  • Retarded Cockroach


  • Dan

    Very cool! I’m going to build this with one of my Pi’s and couple it with a really good FM transmitter that I have.

    Thanks for posting this!

  • Mateusz Lempkowski

    Thanks for this. Just one question – I wonder if it is possible to have equalizer plugin added? I have speakers that don’t have treble control and I am lacking treble – sound from rpi is a bit flat. Alsa eualizer does not work with gstreamer. I found this but I do not know how to add this plugin to gstreamer. i tried adding -gst-plugin-load equalizer-10bands band9=xx, but it had no effect on the sound. Any advice?

    • scp93ch

      Sorry, but I just don’t know.
      Anyone else?

  • CasterAnd

    I installed everything – but in which part do I tell the raspberry pi what server to fetch things from? This just installed stuffs but never got things working.

    • scp93ch

      You control the Raspberry Pi from the BubbleUPnP software. In BubbleUPnP you select the music source and the Raspberry Pi as the sink.

      • CasterAnd

        Yea I saw that now – although I’m using Jamcast on my Windows PC. I try to select Raspberry pi, but nothing happens.

        • scp93ch

          Can you be more specific? Can you play music from Jamcast on the phone using BubbleUPnP (selecting local renderer)? When you try to play on the Raspberry Pi is thee an error message in BubbleUPnP or does it appear to be playing? Is the volume up?!

          • CasterAnd

            The problem is that BubbleUPnP can’t find the raspberry pi.

  • Mr Green

    Everything works fine on local wireless network, I am wanting to run Pi in my car. A little confused as to what I need to do this, Ad-Hoc or Access Point?

    • scp93ch

      Hi, I’m not clear exactly what you are trying to do (e.g. where is the music stored? What provides an internet connection, if you need one?). There are plenty of people making in-car entertainment systems with Raspberry Pi’s, e.g.

      • Mr Green

        Music is stored on my phone using bubbleupnp to share with pi (gmedia-renderer) works fine hooked up to router at home but I need access point to accept requests. Will keep searching, thanks for your link.

      • Jay Patel

        Actually, I am also looking for something similar. having my music from android phone streamed to raspberry pi, which is connected to my car system with aux cable. I have a wifi dongle that could serve as a ad-hoc, where my phone gets connected when I start up my car, and uses BubbleUPnP to stream music to raspberry pi.

    • Chris Mullen

      Did you ever solve the problem of streaming directly from mp3 on phone to RPi rendering music with out an access point and/or router? Any and all input will be appreciated. TIA

      • Stephen C Phillips

        Sorry, no, I haven’t looked into it.

      • Stephen C Phillips

        Sorry, I haven’t looked into this at all.

  • Marcolino


    followed your guide step by step.

    I have an issue. Starting GMediaRender. I got some error with GStreamer:

    (gmediarender:3714): GStreamer-CRITICAL **: gst_pad_new_from_template: assertion `GST_IS_PAD_TEMPLATE (templ)’ failed

    (gmediarender:3714): GStreamer-CRITICAL **: gst_pad_template_get_caps: assertion `GST_IS_PAD_TEMPLATE (templ)’ failed

    (gmediarender:3714): GStreamer-CRITICAL **: gst_pad_set_caps: assertion `GST_IS_PAD (pad)’ failed

    (gmediarender:3714): GStreamer-CRITICAL **: gst_element_add_pad: assertion `GST_IS_PAD (pad)’ failed

    Due This I can’t see my raspberry in UPNP Device on my phone.
    How can I do?

  • andy

    hi Fab tutorial. i have just finished going through it with one slight issue.
    Before installing bubbleupnp server on the pi my phone could see the renderer fine after installing the server it can no longer see it nor can the bubbleupnp server

    Any ideas why

    • scp93ch

      Sorry, I can’t imagine why. Check that gmrender is still running on the RPi (“ps aux|grep gmedi”). Turn the RPi off and on again?!

    • Chris Mullen

      I wanted to use your solution to be a wireless head and stream from an iphone or anrdroid phone that had mp3s on it directly to my car stereo using the rpi as the dlna renderer with no network router involved. My question / concern is that the rpi must directly connect to the phone via wifi without a wifi router present. Is this possible? How are the rpi network settings different? In fact the no router wifi rpi solution is so inexpensive I would think this would be a great way to enable phone feeds to any stereo system with out involving a wifi router.

  • Ivan

    Hi Stephen,

    Does the Raspberry + gmrender-resurrect support FLAC?
    I have all my music in a vortexbox server ripped to FLAC, I really do not want to mirror it as MP3.

    • scp93ch

      Yes, my music is mostly FLAC – it works fine.
      gmrender can play anything gstreamer plays.

      • Ivan

        Thanks, that sounds promising. Now I need to find a good price source in Mexico…

  • plomkiolki

    thanks a lot for this tutorial

  • Kristian Nielsen

    I’m having some trouble getting any sound from my pi. I followed the instructions, but is stuck with the sound testing. any idea what I’ve done wrong?

  • logical Octopus

    Well I had followed your previous version of instructions which had explained how to install pulseaudio to fix the audio problems. it was excellent. than today i decided to do a rpi-update followed by an update and an upgrade. make sure if you do that you now UNINSTALL PULSE otherwise you’ll have pretty much the same problems that you installed pulse to fix in the first place. Now that they’ve fixed alsa they have succesfully pooched pulseaudio in the process. :P

    • Stephen C Phillips

      Thanks for this information. I started from a completely fresh SD card image so wasn’t aware of this problem.

  • Ivan ッ Atanasov

    Thanks for sharing your time and knowledge with us.
    I have an issue:

    pi@RPi /gmrender-resurrect $ ./
    autoreconf: Entering directory `.’
    autoreconf: not using Gettext
    autoreconf: running: aclocal –force
    autom4te: cannot create autom4te.cache: No such file or directory
    aclocal: /usr/bin/autom4te failed with exit status: 1
    autoreconf: aclocal failed with exit status: 1

    pi@RPi /gmrender-resurrect $ ./configure
    -bash: ./configure: No such file or directory

    Any idea how i could fix it? Can’t “make”, cause there is no makefile. Thanks!

    • Ivan ッ Atanasov

      So….. i have managed to sort this out. Now i have a device showing on my phone, playing my server’s mp3s, but i can’t hear a sound. I was not able to hear the sound even on the test mp3s, but i thought its supposed to be a quiet sound, cause i was using earplugs. Well… its not quiet. My Pi doesn’t play sound. It uses the correct driver. any ideas again ?

      • Ivan ッ Atanasov

        for those of you which came to the same problem: the thing is… my pi was set to stream through HDMI. to set it to the analog output just type:

        $ amixer cset numid=3 1

        where: 0=auto, 1=analog, 2=hdmi. I have a 100% working wireless audio switcher :).

        Thanks again Stephen for making my life easier.

    • DS

      Hi, i have the same issue.
      if i enter ./ it says -> No such file or directory
      Could you let me know how you fixed this? Thank you.

      • Stephen C Phillips

        Sorry, that wasn’t a problem I had. Try following the instructions very carefully, one step at a time.

    • Ricardo Tribaldos

      instead of $ ./ type $ sudo ./

  • texasfrank

    Hi. I followed your instructions and got my Pi playing audio tracks from my MythTV box under control of my Android phone in no time – fantastic.

    However, you say it’s also possible to do Internet radio in a similar way. I’m specifically interested in BBC stations. Please can you give me any pointers? Thanks.

    • Stephen C Phillips

      I would also like to do BBC radio but cannot yet. I meant you can use xialive for instance on your phone and set bubbleupnp on the phone to intercept the stream and tell the rpi to play it instead. Check the bubbleupnp instructions and settings.

      • texasfrank

        I did manage to get BBC Radio working, but it’s a rather Heath Robinson affair.

        XiiaLive _almost_ worked on its own, but for me it seemed to have trouble with the type of stream the Beeb uses. However, I got round that by using another two pieces of free software.

        – I already knew that MPD plays the types of stream the BBC transmits, and it can also stream to other applications as well as direct to sound cards, etc.

        – Icecast is compatible with Shoutcast, which works with XiiaLive.

        After a bit of searching I found this article on how to use the two together:

        Not on the Pi itself as per that, but on the Ubuntu server where I am running BubbleUPNP server, I followed these instructions and added the BBC stream as a playlist to MPD.

        Finally, I used BubbleUPNP on my Android phone to control my Pi, and entered the Icecast stream URL into XiiaLive, and – lo and behold – I had Radio 4 coming out of my Pi headphones.

        I don’t think this is a particularly good solution, as it involves rather a lot of links in the chain. I also think there will need to be some cron script to keep refreshing the BBC playlist on MPD (as referred to in However, I offer it if only as a starting point for someone who can come up with a much more cunning plan. :-)

  • nicurda

    Great tutorial, thanks Steve.

    I have a question that’s mostly related to UPnP in general but thought someone may be able to help.

    My current setup is the following:

    – Synology DiskStation 212j NAS –> Music library (server)
    – Raspberry Pi –> configured as a Media Renderer
    – Android Phone –> Running Bubble UPnP, acting as a Controller

    The Use Case is simple: using my phone, I tell the Raspi to play music stored in my NAS.

    Everything works like a charm as long as I have WiFi coverage, meaning there needs to be a “stateful” connection between the controller (my phone) and the renderer (the raspi).

    My question is: Is there a way of instructing the renderer to continue playing music even if the controller is not available anymore?



    • Stephen C Phillips

      I think that’s exactly one of the things that the BubbleUPnP server does for you. I guess I should have mentioned that!

  • malteee

    Hey Steve,
    first: amazing tutorial! I really like it! Great!

    But I have got some questions:
    1. Is there a way to make a random playback? I have many, many titels of music on my NAS but I dont want to look every time on my mobile phone and put 16 tracks into the playlist. It’s annoying. I only want to say: Play music until I pull the plug :D

    2. How do you turn your Pi on/off? Is your Pi running the hole time (24/7)?

    3. I use Ubuntu 12.04 LTS on my Desktop computer. I want to klick the “play” Button on my computer and then hear the sound from my Hi-Fi. Is there a way to tell my computer / to tell my music programm to use the raspberry by as a renderer? Or do you know a good music programm for linux which can do this?

    I hope you unterstand my questions.


  • Pingback: stream audio to DLNA renderer in ubuntu | Ubuntu InfoUbuntu Info()

  • hareti

    Thanks for a great tutorial Stephen.

    I don’t have an Android device. Is it possible to control the OpenHome BubbleuPnPserver with any OpenHome compatible controller? Could you give some examples ?


  • hareti

    Hello again Stephen,

    Not sure whether you’ve come across this but I’ve found that gmediarenderer stops responding after a while. I need to kill and restart it to get it to work again. The init.d script doesn’t even work on it, I have to kill it manually and then restart it.

    I have read that there is a bug in old versions gstreamer that cause it to leak a thread every time a new track is played and so after a while all resources are tied up and it stops working. The Pi repository only seem to have version 0.10. I’ll try to find where I read this and post it for you.

    I’ve tried compiling the latest version of gstreamer (1.2.1) on the Pi. It takes ages and is failing at the last hurdle currently. It’s complaining about not being able to find a libgstbase shared library whilst compiling the plugins-base module.

    Have you tried compiling a later version of gstreamer?



    • Stephen C Phillips

      Sorry, not tried it. Let us know if you have any success.

  • Bjoern

    Hi Stephen,

    I have followed all your instructions up to the speaker test, but
    somehow I cannot select the Pi as a renderer, it just does not show up on BubbleUpnp, whereas XBMC and Windows Media Player can be selected.
    Any idea on what is wrong?


  • Purinda Gunasekara

    I worked on a similar project, but my goal was to get Raspberry Pi to stream audio from an online music streaming service, currently it supports streaming over Grooveshark network. If interested head over to my blog and check it out… This is an opensource project btw. So feel free to contribute.

  • Akku

    Can you also start a stream on the rpi from a local machine, preferably using a webinterface?

    • Stephen C Phillips

      Not quite sure what you mean. If you mean you want to choose a file from your media server and play it on the RPi and control it from a Windows machine (instead of using BubbleUPnP on a phone) then you can try Kinsky ( I don’t think it supports OpenHome but other than that it should work.

      • Akku

        Exactly that way. But I am running a linux machine. Is there a nice tool too?

  • Alex

    thank you very much for this great howto. greetings from germany and wish you merry Christmas!

    • Stephen C Phillips

      Thanks! Merry Christmas!

      • Frank

        merry xmas

  • Adam

    Thank you

  • MikeMarc


    I think I’ve gone through most of the posts hoping I’d get my answer in there but unfortunately I couldn’t find…

    I installed BubbleUPnP server on my linux box for the Openhome protocol but it can’t recognize any Media server or Media renderer…

    Has anybody been through this type of problem before? This doesn’t seem to be documented on Bubble UPNP server page.What should I try?

    Thanks in advance,


    • Stephen C Phillips

      Can you see any media renderers in anything else, e.g. BubbleUPnP on your phone?

      • MikeMarc

        Hi Stephen, Thanks for replying!

        Yes I do see the renderer on m Android phone and my Tablet.

        I’m exchanging emails with Bubble developpers and will let you know what solved my problem asap.



      • MikeMarc

        Hi Stephen,

        I’m replying here to let people know that if they cannot see any renderes or Media servers with Bubble server I fixed this pretty easily.

        Multicast seem to be enabled when checking with “ifconfig eth0″ but I had to force multicasting with the following command:

        ifconfig eth0 multicast

        Afterwards, everything seemed find.

        Thanks for your time.


  • JamesCobbett


    Great tutorial but i’ve run into a little problem. When I run $ ps aux|grep gmedia while connected via ethernet, or not connected to the network at all I get a similar message return to what you got. I can see and stream to the Pi other Ethernet.

    However when I unplug the ethernet, and turn on the wifi and run $ ps aux|grep gmedia I only get the second line return (pi 2348 0.0 3544 808 tty1 S+ 11:21 0:00 gretp –color=auto gmedia)

    The PI is still connected to the network, I can ping it from my mac. But something about the wifi seems to be preventing gmediarender from running properly.

    Any ideas? I had to set up wifi using wicd in the end because I struggled to do it with the instructions. Its a WEP router.


    • JamesCobbett

      If I run ./src/gmediarender -f “My Renderer” then I can see and render to the PI, but it’s very jerky and stop starty.

      • Stephen C Phillips

        Firstly it seems odd that gmediarender stops running when you unplug the ethernet but I suppose it could make sense. I assume you’ve tried restarting the gmediarender service once you have switched to the WiFi (“sudo service gmediarenderer restart”)?

        Sounds from your second comment that it’s a WiFi problem. Can you test the WiFi speed somehow by timing a file transfer or something (try using scp for instance).

  • John

    Hi Stephen,

    Great blog, worked like a dream!! Thanks.
    Have you come across synchronized music playback across multiple renderers via the ‘AVTransport::SyncPlay()’ command (or any other)??

    I am investigating this as I want my set up to be similar to a Sonos system that has a sync’ed music playing system. I have investigated OpenHome to no avail.
    Any info gratefully received.


    • Stephen C Phillips

      I know there are people who have looked at synchronised playback – it’s a lot harder. I can say for sure that the solution above doesn’t support it. Did you check out the link to Squeezelite at the end of my article?

  • mapi

    Holy moly…I prepared myself for hours of fighting with the pi but with your step-by-step tutorial it was a walk in the park. Just awesome…thanks a lot!

    • Stephen C Phillips

      Great! Thanks for the comment.

  • Sérgio Pires

    Great tutorial, there’s just one thing that i can’t seem to fix. How do i get gapless playback? There’s always a gap between songs.

    • Stephen C Phillips

      Sorry, I don’t know – it’s not something I’ve ever needed. Perhaps a different DLNA renderer would do the job?

  • Saraah Jane

    I could not get any tutorial in so much depth till now.Thanks for sharing this with us appreciate it. Interactive Board for discussion

  • Hugh Franklin

    Great tutorial Stephen. Used it to get BubbleUPnP Server running under Raspbmc. By doing that there was no need to install another renderer like MiniDLNA or fiddle around with the RPi audio settings. Also, you end up with all the XBMC functionality such as music information, and you can use your existing remote to control the player on the TV. All pretty much out of the box.

    Quite simple, just follow the “BubbleUPnPServer on the Raspberry Pi” section but make sure you do a

    $ sudo apt-get update

    first or Java won’t install (NB: it’s not recommended to do an upgrade with Raspbmc).

    Otherwise works like a dream.


    • Stephen C Phillips

      Glad it was useful for you, and thanks for the info and ideas.

  • Christi Scarborough

    I have done a bit of work on automating a lot of this procedure, at least as far as installing gmrender-resurrect with up to date libraries on the Pi goes. Hopefully this is of use to some:

  • Hugh Franklin

    Just noticed that you updated the tutorial to reference BubbleUPnP Server 0.8 – for information this is now at 0.8.1 as there was a bug in the initial version which prevented the server finding the public ip address that you’re using (NB: if you have Bubble UPnP installed on your phone you will now also get message from the developer when BubbleUPnP Server gets updated).

  • Fanch Loic

    That’s exactly the project that will make me buy a Raspberry, thank you !
    Is it possible to have the RPi play the last playlist or last radio automatically when I turn it on (to not have to launch a controler) ?

    • Stephen C Phillips

      Possible, I’m sure; easy probably not. Sorry!

  • morechilli

    Hi, great post thank you. I went down the wireless route you described but didn’t want to set a static IP address. This gave me a few issues on startup which I eventually solved. In case it helps someone else I added the the following to my init script file:

    while [ -z “$MY_IP” ] ; do
    echo “Attempting to get IP address”
    sleep 1
    MY_IP=$(ip addr | sed ‘s/^.*inet ([.0-9]*).*wlan0/1/p;d’)
    echo “ip address=$MY_IP”

    I then pass this into the gmediarender start commandline with:

  • edfardos

    Awesome tutorial. Please allow me to add that you must use an rp-update from august through december of 2013. Prior to that is white-noise distortion, after that is pops and clicks during any network activity. This applies if you use a usb audio dongle. The 3.5mm audio output was never designed for hifi music. If you use hdmi for audio ignore my comments.

  • Pingback: Der böse Metaller! ;) » Ein Arbeitsplatz für den PI()

  • Mak

    Great, I have a question may be stupid.
    How to stream music over the internet so I cna listen to my music repository anywhere?
    Not just as a local renderer?

    • Stephen C Phillips

      Hi, that’s not a stupid question at all.
      It is possible if you use the BubbleUPnP server software and open the necessary ports in your firewall etc (I can’t go into that here). You are then able to access the music on your home server outside the house through e.g. the BubbleUPnP Android client on your phone and play the music directly from your Android device or even direct a DLNA renderer at another location to play your music.

    • MikeMarc

      I’ve done it this way:
      1- Connected my external HDD on my Asus RT-N66U router with Merlin’s latest firmware. My music DB has 53000 titles, I needed a reliable router. DLNA function is easy on the router.
      2- Bubbleserver saw the HDD and made it accessible automatically. (I use Dyndns to connect to the home Bubbleserver.)

      This way I can even stream my home music through my car’s bluetooth anywhere.

    • Frank

      I know this is an old ‘post’, but i thought I’d add my two pence.. If you’re on android,the simplest way is to use google play music. Just upload your music (40,000 tracks max) and hey presto, you can play your music online. On my setup, i have the google play application sat on a pc, looking out for new mp3’s, it then up loads them. The other benefit, and it’s something i never did, is that once your library is uploaded, you’ve got a nice safe secure backup!

  • josh

    Excellent tutorial! Thanks very much for writing this.
    I followed the whole thing and now have bubbleupnp server and minidlna server running on the pi, which also acts as an openhome renderer. In future I plan to buy a couple more pis to use as renderers in other rooms.

    I have encountered one particularly frustrating problem though:
    Every time the pi reboots; when I start up BubbleUPnP on my android phone I select the openhome renderer and the minidlna server on the pi and choose some music to play, the default volume appears to match how it was last left, but as soon as I alter the volume from within BubbleUPnP it skips to 100%, which is deafening.

    This does not occur when I simply exit BubbleUPnP on the android device and reconnect – it only happens once each time the pi has rebooted. I’ve changed the default volume on the pi using alsamixer from 100% to 30%, but as soon as I try to change the volume it jumps up to 100% (which I can then reduce to a sensible level). Do you have any idea how I might go about fixing this?

  • Pingback: My home entertainment network with NAS and Raspberry Pi | Sony Arouje Blog()

  • Martijn Balink

    Great tutorial. One small thing I noticed: The downloadsource for BubbleUPnP (at least for the Raspberyy Pi) has changed, it’s now located here:

    • Stephen C Phillips

      Thanks, I’ve updated it.

  • nicola.m

    Hi, thanks a lot for your very clear tutorial. I was able to install BubbleUPnP Server on my Raspberry PI and it worked fine for a while.
    However the day after I could not to retrieve my Rasp in the Media Server list.
    I tried to reinstall, but still no result.
    I can see my Raspberry in Media Renderer list, but I do not find it in Media Server.
    Any hints?
    Thanks a lot

  • Paul

    Hi Stephen,

    Thanks so much for this tutorial… I’m so close to getting everything up and running and have spent the last few days trying hard not to contact you! (I wanted to figure it all out for myself)
    Basically I have everything up and running except when I try and access music from a USB flash stick which is plugged into my Raspberry Pi… I get the following error:

    [….] Restarting DLNA/UPnP-AV media server: minidlna[2014/09/23 22:41:57] minidlna.c:474: error: Media directory “/home/pi/usb_drive/AUDIO” not accessible! [Permission denied]

    I have tried various different methods for changing permissions but they seem not to have worked, I’ve also started minidlna in root as has been often suggested I’ve even changed combinations of USER and GROUP within /etc/default/minidlna but alas… to no avail. As you can see from the error message I pasted above I have even changed the mount point for the usb_drive…

    When I run media from the 8gb micro SD which is running the Pi there is no problem it’s only when I try and use my 64gb USB flash drive as the source for my music that I encounter the PERMISSION DENIED message…

    Any help greatly appreciated – I thought I’d ask here as you have written such clear tutorials.

    I do hope you can help,

  • Martijn Balink

    The link pointing to Chris Mobberley’s init-script no longer works.
    There is an archived version of the page available on

  • edfardos

    The gmediarenderer, and the entire gstreamer chain is just to hacky and unreliable IMHO. There’s a new upnp renderer that feeds mpd. It works perfectly right out of the box. Just install mpd and upmpdcli and point your android bubblepnp app at your pi.


    • Stephen C Phillips

      I’m actually running Volumio on one of my RPi’s now which uses upmpdcli I believe.

      • edfardos

        Indeed, it does, which is why I investigated upmpdcli. Great stuff! Thanks again for this article.

  • Mack

    Genius, love it – that’s my Sonos done! Thank you

  • southafricanrob

    Hi, great tutorial – thanks. Anyway to get play video through the DLNA player instead of just audio?