From 331603cc35a299d37a2fe84b2c91bcd9aad69569 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Mon, 5 Nov 2012 18:07:15 +0100 Subject: [PATCH] docs: Port Raspberry Pi how tos from wiki --- docs/_static/raspberry-pi-by-jwrodgers.jpg | Bin 0 -> 52681 bytes docs/index.rst | 1 + docs/installation/raspberrypi.rst | 265 +++++++++++++++++++++ 3 files changed, 266 insertions(+) create mode 100644 docs/_static/raspberry-pi-by-jwrodgers.jpg create mode 100644 docs/installation/raspberrypi.rst diff --git a/docs/_static/raspberry-pi-by-jwrodgers.jpg b/docs/_static/raspberry-pi-by-jwrodgers.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d093bb8836a30f2d166c202bdf37ec3c06a910d7 GIT binary patch literal 52681 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 is possible, although there are a few +significant drawbacks to doing so. This document is intended to help you get +Mopidy running on your Raspberry Pi and to document the progress made and +issues surrounding running Mopidy on the Raspberry Pi. + +Mopidy will not currently run with Spotify support on the foundation-provided +`Raspbian `_ distribution. See :ref:`not-raspbian` for +details. However, Mopidy should run with Spotify support on any ARM Debian +image that has hardware floating-point support **disabled**. + +.. image:: /_static/raspberry-pi-by-jwrodgers.jpg + :width: 640 + :height: 427 + + +.. _raspi-squeeze: + +How to for Debian 6 (Squeeze) +============================= + +The following guide illustrates how to get Mopidy running on a minimal Debian +squeeze distribution. The image used can be downloaded at +http://www.linuxsystems.it/2012/06/debian-wheezy-raspberry-pi-minimal-image/. +This image is a very minimal distribution and does not include many common +packages you might be used to having access to. If you find yourself trying to +complete instructions here and getting ``command not found``, try using +``apt-get`` to install the relevant packages! + +1. Flash the OS image to your SD card. See + http://elinux.org/RPi_Easy_SD_Card_Setup for help. + +2. If you have an SD card that's >2 GB, resize the disk image to use some more + space (we'll need a bit more to install some packages and stuff). See + http://elinux.org/RPi_Resize_Flash_Partitions#Manually_resizing_the_SD_card_on_Raspberry_Pi + for help. + +3. To even get to the point where we can start installing software let's + install ``sudo`` and create a user account with ``sudo`` rights so we don't + have to do everything on the ``root`` account:: + + apt-get install sudo + adduser + adduser sudo + + Log in to your Raspberry Pi again with your new user account instead of the + ``root`` account. + +4. Enable the Raspberry Pi's sound drivers: + + - To enable the Raspberry Pi's sound driver:: + + sudo modprobe snd_bcm2835 + + - To load the sound driver at boot time:: + + echo "snd_bcm2835" | sudo tee /etc/modules + +5. Let's get the Raspberry Pi up-to-date: + + - Get some tools that we need to download and run the ``rpi-update`` + script:: + + sudo apt-get install ca-certificates git-core binutils + + - Download ``rpi-update`` from Github:: + + sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update + + - Move ``rpi-update`` to an appropriate location:: + + sudo mv rpi-update /usr/local/bin/rpi-update + + - Make ``rpi-update`` executable:: + + sudo chmod +x /usr/local/bin/rpi-update + + - Finally! Update your firmware:: + + sudo rpi-update + + - After firmware updating finishes, reboot your Raspberry Pi:: + + sudo reboot + +6. Install some software that we'll need to get up and running:: + + sudo apt-get install python2.7 python-dev python-pip + + This will take a little while to download and install. + +7. Start installing Mopidy's dependencies (from :ref:`installation`):: + + sudo pip install pykka + sudo apt-get install python-gst0.10 gstreamer0.10-plugins-good \ + gstreamer0.10-plugins-ugly gstreamer-tools + +8. Install libspotify and pyspotify. Note that these two pieces of software + are rather tightly coupled; thus, it's important to make sure you have two + compatible versions installed. At the time of writing, pyspotify 1.8.1 and + libspotify 12 are the most recent stable versions of these software + components. + + - Download libspotify for ARMv5:: + + wget https://developer.spotify.com/download/libspotify/libspotify-12.1.51-Linux-armv5-release.tar.gz + tar xvfz libspotify-12.1.51-Linux-armv5-release.tar.gz + cd libspotify-12.1.51-Linux-armv5-release + sudo make install + sudo ldconfig + + - Now install pyspotify:: + + sudo pip install pyspotify==1.8.1 + +9. jackd2, which should be installed at this point, seems to cause some + problems. Let's install jackd1, as it seems to work a little bit better:: + + sudo apt-get install jackd1 + +10. Add your user to the ``audio`` group:: + + sudo adduser audio + +11. Finally! Install Mopidy:: + + sudo pip install mopidy + +You may encounter some issues with your audio configuration where sound does +not play. If that happens, edit your ``/etc/asound.conf`` to read something like:: + + pcm.mmap0 { + type mmap_emul; + slave { + pcm "hw:0,0"; + } + } + + pcm.!default { + type plug; + slave { + pcm mmap0; + } + } + + +.. _raspi-wheezy: + +How to for Debian 7 (Wheezy) +============================ + +This is a very similar system to Debian 6.0 above, but with a bit newer +software packages, as Wheezy is going to be the next release of Debian. + +1. Download the latest wheezy disk image from + http://downloads.raspberrypi.org/images/debian/7/. I used the one dated + 2012-08-08. + +2. Flash the OS image to your SD card. See + http://elinux.org/RPi_Easy_SD_Card_Setup for help. + +3. If you have an SD card that's >2 GB, you don't have to resize the file + systems on another computer. Just boot up your Raspberry Pi with the + unaltered partions, and it will boot right into the ``raspi-config`` tool, + which will let you grow the root file system to fill the SD card. This tool + will also allow you do other useful stuff, like turning on the SSH server. + +4. As opposed to on Squeeze, ``sudo`` comes preinstalled. You can login to the + default user using username ``pi`` and password ``raspberry``. To become + root, just enter ``sudo -i``. + +5. As opposed to on Squeeze, the correct sound driver comes preinstalled. + +6. As opposed to on Squeeze, your kernel and GPU firmware is rather up to date + when running Wheezy. + +7. To avoid a couple of potential problems with Mopidy, turn on IPv6 support: + + - Load the IPv6 kernel module now:: + + sudo modprobe ipv6 + + - Add ``ipv6`` to ``/etc/modules`` to ensure the IPv6 kernel module is + loaded on boot:: + + echo ipv6 | sudo tee /etc/modules + +8. Installing Mopidy and its dependencies from `apt.mopidy.com + `_, as described in :ref:`installation`. In short:: + + wget -q -O - http://apt.mopidy.com/mopidy.gpg | sudo apt-key add - + sudo wget -q -O /etc/apt/sources.list.d/mopidy.list http://apt.mopidy.com/mopidy.list + sudo apt-get update + sudo apt-get install mopidy + +9. Opposed to on Squeeze, there is no need to add your user to the ``audio`` + group, as the ``pi`` user already is a member of that group. + +10. Since I have a HDMI cable connected, but want the sound on the analog sound + connector, I have to run:: + + amixer cset numid=3 1 + + to force it to use analog output. ``1`` means analog, ``0`` means auto, and + is the default, while ``2`` means HDMI. You can test sound output + independent of Mopidy by running:: + + aplay /usr/share/sounds/alsa/Front_Center.wav + + To make the change to analog output stick, you can add the ``amixer`` command + to e.g. ``/etc/rc.local``, which will be executed when the system is + booting. + + +Known Issues +============ + +Audio Quality +------------- + +The Raspberry Pi's audio quality can be sub-par through the analog output. This +is known and unlikely to be fixed as including any higher-quality hardware +would increase the cost of the board. If you experience crackling/hissing or +skipping audio, you may want to try a USB sound card. Additionally, you could +lower your default ALSA sampling rate to 22KHz, though this will lead to a +substantial decrease in sound quality. + + +.. _not-raspbian: + +Why Not Raspbian? +----------------- + +Mopidy with Spotify support is currently unavailable on the recommended +`Raspbian `_ Debian distribution that the Raspberry Pi +foundation has made available. This is due to Raspbian's hardware +floating-point support. The Raspberry Pi comes with a co-processor designed +specifically for floating-point computations (commonly called an FPU). Taking +advantage of the FPU can speed up many computations significantly over +software-emulated floating point routines. Most of Mopidy's dependencies are +open-source and have been (or can be) compiled to support the ``armhf`` +architecture. However, there is one component of Mopidy's stack which is +closed-source and crucial to Mopidy's Spotify support: libspotify. + +The ARM distributions of libspotify available on `Spotify's developer website +`_ are compiled for the ``armel`` architecture, +which has software floating-point support. ``armel`` and ``armhf`` software +cannot be mixed, and pyspotify links with libspotify as C extensions. Thus, +Mopidy will not run with Spotify support on ``armhf`` distributions. + +If the Spotify folks ever release builds of libspotify with ``armhf`` support, +Mopidy *should* work on Raspbian. + + +Support +======= + +If you had trouble with the above or got Mopidy working a different way on +RaspberryPi, please send us a pull request to update this page with your new +information. As usual, the folks at ``#mopidy`` on ``irc.freenode.net`` may be +able to help with any problems encountered.