Outils pour utilisateurs

Outils du site


debian:raspbian

Raspbian sur Raspberry Pi

  • Objectif : Transformer la carte Raspberri Pi en un lecteur de musique.

Installation (2016-01-06)

  • Prendre l'image minimale basée sur Debian Jessie : Raspbian Jessie Lite| et la mettre sur une carte
    unzip 2015-11-21-raspbian-jessie-lite.zip
    sudo dd bs=4M if=2015-11-21-raspbian-jessie-lite.img of=/dev/sdb
    sudo sync
    • WIFI : Pour démarrer cette image avec une connexion wifi sans ethernet : Les deux ports usb de la carte Raspberry Pi ne fournissent pas beaucoup de puissance d'alimentation. Pour éviter de recourir à un hub usb alimenté, on peut utiliser Edimax EW-7811UN Nano Adaptateur clé USB sans fil 150 Mbps, qui est supportée par Raspbian. Pour l'utiliser avec mon routeur en mode WPA, et l'activer au boot, on édite le fichier /etc/network/interfaces
      auto wlan0
      allow-hotplug wlan0
      iface wlan0 inet dhcp
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

      et le fichier /etc/wpa_supplicant/wpa_supplicant.conf

      ctrl_interface=/var/run/wpa_supplicant
      network={
              ssid="le_ssid"
              psk="le_mot_de_passe"
      }

      Normalement on doit pouvoir utiliser la connexion wifi dès le premier démarrage.

      • Note : Le nom de la clé wifi n'est pas forcément wlan0. Cela se vérifie dans le fichier /etc/udev/rules.d/70-persistent-net.rules.
    • Pas besoin d'un écran et d'un clavier connectés, on peut accéder à Raspbian par ssh depuis une autre machine linux : On détermine d'abord l'adresse ip de Raspbian par la commande
      # nmap -sP 192.168.0.0/24

      et on se connecte avec user/password : pi/raspberry. Voir aussi root.

    • Lancer
      sudo raspi-config

      pour étendre la partition au maximum de la carte SD, … (voir Configuration).

  • Je n'ai plus besoin de NFS. UPnP marche bien. NFS Optionnel : Installer nfs-common et rpcbind et configurer un client nfs qui se connecte sur le GoFlex Home pour utiliser les fichiers dans /archives. Il suffit d'ajouter une ligne <code>ip_de_GoFlexHome:/archives /archives nfs4 defaults 0 0</code> dans /etc/fstab. * Le serveur NFS est le GoFlex Home sous Archlinux : installer nfs-utils, et ajouter une ligne <code>/archives ip_de_RaspberryPi(rw,sync)</code> dans /etc/exports pour partager /archives. Activer les services rpcbind, nfs-common et nfs-server.
  • Configurer Alsa : La commande cat /proc/asound/cards donne la liste de cartes son. Mettre
    pcm.!default {
    type hw
    #card 0
    card FXAUDIOD802
    }
    ctl.!default {
    type hw
    #card 0
    card FXAUDIOD802
    }

    dans /etc/asound.conf pour utiliser l'ampli numérique FX-Audio D802. Lancer “sudo alsamixer” pour réglage.

Lecteur de musique (pour trois sources)

  1. AirPlay audio player
    • Installer Shairport Sync. Voici un résumé de commandes à utiliser
      $ sudo apt-get install autoconf libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev
      $ git clone https://github.com/mikebrady/shairport-sync.git
      $ cd shairport-sync
      $ autoreconf -i -f
      $ ./configure --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd
      $ make
      $ getent group shairport-sync &>/dev/null || sudo groupadd -r shairport-sync >/dev/null
      $ getent passwd shairport-sync &> /dev/null || sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync >/dev/null
      $ sudo make install
      $ sudo systemctl enable shairport-sync
      $ sudo systemctl start shairport-sync
  2. LogitechMediaServer et Squeezelite
    • Je l'utilise seulement pour écouter des web radios.
    • LMS 7.9: compiler un Debian package (voir aussi ArchLinux package pour une explication).
      1. Préparation pour les dépendances :
        # apt-get install git nasm yasm rsync build-essential devscripts debhelper fakeroot libgd3

        (pas sûr si on a besoin de nasm et yasm sur ARM)

      2. Une copie locale des trois dépôts git du https://github.com/Logitech :
        $ git clone git://github.com/Logitech/slimserver-vendor.git
        $ git clone git://github.com/Logitech/slimserver.git
        $ git clone git://github.com/Logitech/slimserver-platforms.git
        (**vérifier la branche 7.9 avec git branch, sinon changer avec la commande git checkout**)
      3. Compiler slimserver-vendor/CPAN (assez long, des heures) :
        $ mkdir -p logitechmediaserver-vendor/CPAN
        $ cd logitechmediaserver-vendor/CPAN/
        $ rsync -av --exclude mysql-* ../../slimserver-vendor/CPAN/ .
        $ ./buildme.sh -t
        $ cd ../../
      4. Créer et installer le package logitechmediaserver :
        $ mkdir server    [ce nom est important, ne pas le changer, il est utilisé dans "debian/logitechmediaserver.install". Sinon il faut modifier ce dernier.]
        $ cd server
        $ rsync -av --exclude='.git' --exclude='CPAN/arch' --exclude='Bin/*' ../slimserver/ .
        $ cp -a ../logitechmediaserver-vendor/CPAN/build/arch CPAN/
        $ rsync -av ../slimserver-platforms/debian ./
        $ dch -e    [remplacer par exemple _VERSION_ par 7.9.0~20160106]
        $ vim debian/control    [Modification : "Architecture: any" et "Depends: perl (>= 5.8.8), adduser, libc6, libflac8, libmad0, libvorbis0a, libfaad2"]
        [Supprimer la dernière ligne "../server/revision.txt usr/share/squeezeboxserver" du fichier debian/logitechmediaserver.install]
        $ fakeroot dpkg-buildpackage -uc -b
        $ sudo dpkg -i ../logitechmediaserver_7.9.0~20160106_armhf.deb
        $ sudo adduser squeezeboxserver audio [c'est pour utiliser le plugin "Local Player"]
      • Note : Pas besoin de refaire l'étape 3 pour refaire l'étape 4 si le dépôt “slimserver-vendor” n'a pas subi de mise à jour.
    • Squeezelite : Installer le plugin. Voir ici. Et
      $ sudo chown root /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/LocalPlayer/Bin/squeezelite-armv6hf
      $ sudo chmod u+s /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/LocalPlayer/Bin/squeezelite-armv6hf
      $ sudo systemctl restart logitechmediaserver
    • Note : Si Triode Spotify Plugin ne peut pas s'installer automatiquement, on peut le faire manuellement : On trouve l'url dans https://code.google.com/p/triodeplugins/source/browse/trunk/repo.xml. Ensuite il faut changer user et group de /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/Spotify en squeezeboxserver et nogroup récursivement.
  3. Upmpdcli (avec MPD)
    • Il prend les fichiers du serveur UPnP (Minimserver) de GoFlex Home.
    • Installer Upmpdcli (et mpd bien sûr). Voir aussi ici. On peut prendre directement le package upmpdcli compilé par son auteur.
      • /etc/mpd.conf : Il suffit de modifier trois lignes dans le partie audio_output { … }
                name "FX Audio D802"
                device "plughw:1,0"
                buffer_time "1000000"

        (Le buffer_time par défaut est de 500000 (0.5sec), voir man mpd.conf, je double sa valeur à cause d'une transmission lente par wifi. C'est un paramètre optionnel.)

  4. ohPlayer (OpenHome Player) : Suivre https://github.com/openhome/ohPlayer (voir aussi http://openhome.org/pages/develop/source.html)
    git clone https://github.com/openhome/ohdevtools.git
    git clone https://github.com/openhome/ohPlayer.git
    cd ohPlayer/
    ##############################################################################
    # Editer le fichier ../ohdevtools/default_platform.py pour ajouter 'armv6l'
    # pour supporter ma vielle carte Raspberryp Pi Modèle B Rev 1.
    # 
    $ diff -Nu default_platform.py.orig defa
    ult_platform.py
    --- default_platform.py.orig
    +++ default_platform.py
    @@ -6,7 +6,7 @@
         if platform.system() == 'Linux' and platform.architecture()[0] == '32bit' and platform.machine()[0:3] == 'ppc':
             return 'Linux-ppc32'
         if platform.system() == 'Linux' and platform.architecture()[0] == '32bit':
    -        if platform.machine() == 'armv7l':
    +        if platform.machine() == 'armv7l' or 'armv6l':
                 return 'Linux-armhf'
             else:
                 return 'Linux-x86'
    ############################################################
    ./go fetch --all
    sudo apt-get install sudo apt-get install libglib2.0-dev libasound2-dev
    cd linux
    # éditer le fichier OptionalFeatures.h pour activer le support mp3 aac 
    make raspbian DISABLE_GTK=y
    sudo make raspbian-install
    openhome-player
debian/raspbian.txt · Dernière modification: 2017/08/21 12:43 (modification externe)