mpd mit pulseaudio und bluetooth (Raspi OS Lite)

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Vorwort

    Die Anbindung von Bluetooth-Lautsprechern ändert sich immer wieder. Nun wechselt die Raspberry Pi Foundation wieder zu pulseaudio (Foundation und PulseAudio-Doku).

    Einleitung

    Viele Musik-Player verwenden (in Stretch und Buster) mpd, alsa und bluealsa um Streams oder Audiodateien auf Bluetooth-Lautsprechern abzuspielen. Mit Raspberry Pi OS with desktop vom 02.12.2020 hat die Foundation wieder pulseaudio als Soundserver installiert. (Das war bei Jessie schonmal so.)

    Es gibt 2 Anleitungen (ohne und mit grafischer Oberfläche)

    Tutorial

    PulseAudio vorbereiten
    Code
    sudo apt update
    # pulseaudio installieren
    sudo apt install pulseaudio pulseaudio-module-bluetooth pulseaudio-utils
    # Benutzer pi in Gruppe bluetooth
    sudo adduser pi bluetooth

    Bluetooth-Lautsprecher pairen

    Code
    # BT-Tool mit root-Rechten aufrufen
    sudo bluetoothctl
    # scan on
    # scan off
    # pair <btmac>
    # trust <btmac>
    # quit

    Connect-Skript erstellen

    mkdir ~/bin

    vi ~/bin/bt_connect.sh

    Achtung im Skript muß 11:22:33:44:55:FF mit der Mac deines Bluetooth-Lautsprechers ersetzt werden

    Bash: ~/bin/bt_connect.sh
    #!/bin/bash
    # start pulseaudio
    pulseaudio --start
    
    # connect bluetooth speaker
    # BT-Tool ohne root-Rechte aufrufen
    bluetoothctl << EOF
    connect 11:22:33:44:55:FF
    quit
    EOF

    chmod u+x ~/bin/bt_connect.sh

    sudo reboot

    als Benutzer pi mit ssh einloggen

    mit Bluetooth-Lautsprecher testen

    Bluetooth-Lautsprecher verbinden:

    bt_connect.sh

    Info: das Skript schreibt viel ins Terminal

    Info: man hört einen Ton und/oder sieht eine LED leuchten (nicht blinken)

    Audiodatei mit PulseAudio abspielen:

    paplay /usr/share/sounds/alsa/Front_Center.wav

    Info: man hört "front center"

    mpd vorbereiten
    Code
    # mpd installieren
    sudo apt install mpd mpc
    # mpd braucht Rechte für pulseaudio
    sudo usermod -aG pulse,pulse-access mpd

    sudo reboot

    als Benutzer pi mit ssh einloggen

    Verbindung zw. pulseaudio und mpd herstellen

    sudo vi /etc/pulse/default.pa

    suche #load-module module-native-protocol-tcp

    darunter einfügen: load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1

    Doku

    2 "audio_output"s ändern

    sudo vi /etc/mpd.conf

    (1) suche

    Code
    audio_output {
            type            "alsa"
            name            "My ALSA Device"
    #       device          "hw:0,0"        # optional
    #       mixer_type      "hardware"      # optional
    #       mixer_device    "default"       # optional
    #       mixer_control   "PCM"           # optional
    #       mixer_index     "0"             # optional
    }

    (1) ändern in

    Code
    #audio_output {
    #        type            "alsa"
    #        name            "My ALSA Device"
    ##       device          "hw:0,0"        # optional
    ##       mixer_type      "hardware"      # optional
    ##       mixer_device    "default"       # optional
    ##       mixer_control   "PCM"           # optional
    ##       mixer_index     "0"             # optional
    #}

    (2) suche

    Code
    #audio_output {
    #       type            "pulse"
    #       name            "My Pulse Output"
    #       server          "remote_server"         # optional
    #       sink            "remote_server_sink"    # optional
    #}

    (2) ändern in

    Code
    audio_output {
           type            "pulse"
           name            "PULSE"                  # bitte ändern
           mixer_type      "software"
           server          "127.0.0.1"
    #       sink            "remote_server_sink"    # optional
    }
    Rechte der Musik- und Playlists-Verzeichnisse ändern

    vorher

    Code
    pi@raspberrypi:~ $ ls -l /var/lib/mpd | egrep "music|play"
    drwxr-xr-x 2 root root   4096 Feb 25  2019 music
    drwxr-xr-x 2 mpd  audio  4096 Feb 25  2019 playlists

    Rechte von music_directory und playlist_directory ändern

    (aus NewTron-Radio von veloci)

    - die Verzeichnisse erhalten die Gruppe audio und

    - deren "Kinder" bekommen diese Gruppe vererbt.

    Code
    if [ ! -w /var/lib/mpd/playlists -a -d /var/lib/mpd/playlists ]; then
      sudo chgrp audio /var/lib/mpd/playlists
      sudo chmod g+rwxs /var/lib/mpd/playlists
    fi
    if [ ! -w /var/lib/mpd/music -a -d /var/lib/mpd/music ]; then
      sudo chgrp audio /var/lib/mpd/music
      sudo chmod g+rwxs /var/lib/mpd/music
    fi

    nachher

    Code
    pi@raspberrypi:~ $ ls -l /var/lib/mpd | egrep "music|play"
    drwxrwsr-x 2 root audio  4096 Feb 25  2019 music
    drwxrwsr-x 2 mpd  audio  4096 Feb 25  2019 playlists
    Playlisten ins playlists-Verzeichnis kopieren

    mit WinSCP oder sftp

    - als Benutzer pi

    - in Verzeichnis /var/lib/mpd/playlists

    ACHTUNG: Der mpd reagiert empfindlich auf Windows-Zeilenende in Playlisten (<CR><LF>)

    Kontrolle mit Kommando file:

    Code
    pi@raspberrypi:~ $ cd /var/lib/mpd/playlists/
    
    pi@raspberrypi:/var/lib/mpd/playlists $ ls
    BBC.m3u
    
    pi@raspberrypi:/var/lib/mpd/playlists $ file BBC.m3u
    BBC.m3u: M3U playlist, ASCII text
    mpd Logging

    sudo vi /etc/mpd.conf

    (1) log_file

    suche log_file "/var/log/mpd/mpd.log"

    ändern in

    #log_file "/var/log/mpd/mpd.log" und

    log_file "syslog"

    (2) nur bei Bedarf und nur temporär: log_level

    Info: mit "verbose" wird viel geschrieben

    suche: #log_level "default"

    darunter einfügen: log_level "verbose"

    optional: verbose pulseaudio logging

    pulseaudio logging

    ACHTUNG: das soll nur temporär gemacht werden, weil viel geschrieben wird

    sudo vi /etc/pulse/client.conf

    suche ; extra-arguments = --log-target=syslog

    darunter einfügen ; extra-arguments = --log-target=syslog -vvvv

    sudo reboot

    als Benutzer pi mit ssh einloggen

    bt_connect.sh

    mpc ls

    dann sollte BBC zu sehen sein

    mpc load BBC

    mpc play

    Nachwort

    das ist quick&dirty, Verbesserungsvorschläge sind willkommen (Fehler, Layout, Text, ...)

    8 Mal editiert, zuletzt von kle (5. März 2021 um 11:53)

    • Offizieller Beitrag

    Hi kle!

    Danke für Deine Arbeit! :thumbup: Da hast Du Dich ja volle Kanne durch den größten Sch Mist (pulseaudio und dann noch BT) gekämpft, den es beim RPi und dessen Mulitmediabereich gibt. :stumm:

    Auf den ersten Blick eine kleine Anmerkung vielleicht. Hier:

    Zitat

    Bluetooth-Lautsprecher pairen

    Solltest Du in der Anleitung ggf. vorher zu root werden, denn das mit der # empfände ich (empathisch betrachtet) als sehr missverständlich, wenn ich Linux-Laie wäre. ;)

  • Hey kle,

    hab gerade geschaut und musste feststellen obwohl die Foundation das ganze Thema angekündigt hat, ist pulseaudio bisher nicht auf meinem System angekommen...

    Du kannst nichts dafür, allerdings zur Info: Leichtgewichtig sieht das System dann nicht mehr aus am Ende:

    Stichwort headless / server; mesa-Treiber, fonts, gdk, nouveau, radeon, ...

    kle, für das Paketieren und erstellen der Pakete bist Du nicht veranwortlich! Alle Konfigurationen in der Datei /etc/asound.conf werden noch beachtet / ausgeführt.


    Mein System ist auf dem aktuellen Stand:


    Eine reduzierte Installation hab ich leider nicht gefunden. Bin aber auf eine debian-Spezifische reduktion gespannt.


    Wünsche euch viel Erfolg, Spaß und Hörgenuss für die kommende Zeit.

    monateng

  • hab gerade geschaut und musste feststellen obwohl die Foundation das ganze Thema angekündigt hat, ist pulseaudio bisher nicht auf meinem System angekommen...

    im Raspi OS Lite ist pulseaudio nicht enthalten (genauso wenig, wie vorher bluealsa in Raspbian Lite / Raspi OS Lite enthalten war).

    Deshalb die Installation der Pakete für pulseaudio in der Anleitung. Du hast die Installation mit "n" abgebrochen. Außerdem war das nur ein Paket von dreien.

  • Hallo Rene,

    nur damit das klar ist, dieses "Thema" heißt: "mpd mit pulseaudio und bluetooth (Raspi OS Lite)".

    Hier wird pulseaudio mit Audio-Ausgabegerät Bluetooth-Lautsprecher/-Headset im Raspi OS ohne grafische Oberfläche eingerichtet.

    Laut https://wiki.ubuntuusers.de/PulseAudio/ soll sich pulseaudio automatisch als Dienst installieren. Passiert bei mir aber nicht.

    1.) Ubuntu hat afaik eine grafische Oberfläche.

    2.) Du könntest Dich präziser ausdrücken.
    2.1) Redest Du von Raspberry Pi OS with desktop?
    2.2) Was heißt "Passiert bei mir aber nicht"?

    3.) Forum-Regel: wenn man ein Problem hat, dann legt man ein eigenes Thema an. Wenn man zur Lösung eines Problems beitragen will, dann antwortet man in dem Thema.

    pulseaudio in Raspi OS with desktop

    Bei mir unter Raspberry Pi OS with desktop vom 11.01.2021 sehe ich im Terminal

    Code
    pi@raspberrypi:~ $ ps -ef|grep pulse|grep -v grep
    pi         808   694  0 11:28 ?        00:00:04 /usr/bin/pulseaudio --daemonize=no
    
    pi@raspberrypi:~ $ pactl list sinks short
    0    alsa_output.platform-bcm2835_audio.analog-stereo    module-alsa-card.c    s16le 2ch 44100Hz    SUSPENDED

    wenn Du pulseaudio in Raspberry Pi OS Lite verwendent willst, mußt Du es installieren (siehe Beitrag #1).

    Einmal editiert, zuletzt von kle (5. März 2021 um 12:17)

  • Moin kle

    2.) OK mehr Infos geben, ist angekommen.

    2.1) Nein PI OS Lite. (hab aber anscheinend ein veraltetes Lite gehabt. Jetzt ist er drinnen, aber halt als USER-Dienst. Nicht mehr als SYSTEM.

    2.2) Hat sich somit erledigt.

    3.) Also auch, wenn eine Anleitung bei einem nicht funktioniert, ein neues Thema?

  • 2.1) Nein PI OS Lite. (hab aber anscheinend ein veraltetes Lite gehabt. Jetzt ist er drinnen, aber halt als USER-Dienst. Nicht mehr als SYSTEM.

    Du hast pulseaudio in Raspberry Pi OS - Lite installiert.

    Pulseaudio läuft als User-Dienst (default).

    Das war unter Jessie (Debian_8) auch so.

    3.) Also auch, wenn eine Anleitung bei einem nicht funktioniert, ein neues Thema?

    Eigentlich schon, Du siehst wie unübersichtlich Themen wie "NewTron-Radio" werden.

    Die Idee vom "Thema" im Forum ist:

    Du hast ein Problem und erstellst ein Thema. Das wichtigste ist die Beschreibung Deines Problems im 1. Beitrag. Alle Antworten in dem neuen Thema sind Beiträge zur Lösung. Du kannst Du das Thema als "erledigt" markieren, wenn Dein Anliegen geklärt ist.

    Ausnahme: Du hast wirklich eine Fehler gefunden. Das heißt, Du hast Die Anleitung Schritt für Schritt nachvollzogen und bei Schritt xyz tritt reproduzierbar ein Fehler auf.

    Schönen Gruß, kle

    2 Mal editiert, zuletzt von kle (10. März 2021 um 16:28)

  • Moin moin, wofür benötige ich MPD?

    Ich habe bis zu "trust" die Anleitung befolgt. Das Script zum connecten habe ich nicht erstellt, da bin ich gescheitert. Kenn mich in der Shell nicht so aus, und bekomme es nicht hin in die Datei zu schreiben.

    Das manuelle Verbinden war hingegen kein Problem. Auch das Test File bekomme ich abgespielt. Zwar sagt die Datei "Center" statt "Front Center" aber das liegt vermutlich an der Datei.

    Mein eigentliches Problem: Ich möchte Musik von Raspotify abspielen. Die wird aber nur über Klinke ausgegeben. Wie kann ich das denn umstellen? Oder ist das eher etwas was ich im KOntext Raspotify erfragen muss?

    Danke euch!

    Edit: Ich habe festgestellt, dass es an Raspotify liegt. Finde offensichtlich auch keine für mich funktionierende Lösung als "Spotify Connect Streamer und Bluetooth Speaker" gefunden. Scheint meine Abschreibfähigkeiten zu übersteigen :D

    Dennoch bleibt die Frage, wozu MPD dient :)

    Einmal editiert, zuletzt von N_O (28. August 2023 um 09:31)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!