MPC/MPD meldet: Device or resource busy

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Also ich habe jetzt alles mit und ohne Hardware hochlaufen lassen und die Logs verglichen.

    "/var/log/mpd/mpd.log" und "systemctl status mpd.service"

    Da war alles mehr oder weniger identisch.


    ohne Hardware:

    Code
    ~ $systemctl status |grep alsa
    
    
    │   │ └─970 grep --color=auto alsa
    ├─alsa-state.service
    │ └─243 /usr/sbin/alsactl -E HOME=/run/alsa -s -n 19 -c rdaemon
    ├─bluealsa.service
    │ └─453 /usr/bin/bluealsa

    das sieht doch normal aus, oder?

    Hat sicher nicht mit meinem Problem zu tun, aber ich wundere mich nur, warum der Service bluealsa läuft

    obwohl ich kein Bluetooth an Bord habe.

  • ich habe nochmal gelesen, dass mpd nicht als root läuft sondern mit dem user entspr. mpd.conf, also mpd.

    Das Verhalten sah nur so wie sudo aplay ... aus.


    Aber ich habe auf einem ähnlichen System mal "sudo fuser -fv /dev/snd/*" laufen lassen und bekam die Ausgabe:

    Code
                         BEN.        PID ZUGR.  BEFEHL
    /dev/snd/controlC0:  mpd         485 F.... mpd


    bei dem Problem-System sah es so aus:

    Code
                         USER      PID ACCESS COMMAND
    /dev/snd/controlC0:  root      f.... alsactl
                         pi        F.... pulseaudio
    /dev/snd/pcmC0D0c:   pi        F...m pulseaudio
    /dev/snd/pcmC0D0p:   pi        F...m pulseaudio

    Wie kann man für mpc auch den Zugriff auf controlC0 einrichten?

  • /dev/snd/controlC0: root f.... alsactl

    kein Fehler,

    kommt auch mit NewTron Radio => mpd => alsa

    oder mit Peppy Player => vlc => alsa

    bei funktionierendem Sound.

    zeig mal die Ausgabe von

    • ps -ef|egrep "mpd|pulse|blue|python"|grep -v grep
    • cat /etc/os*
    • head -1 /etc/rpi*
    • sudo lsof | egrep -n "mpd|pulse"

    aber das ist stochern im dunkeln...

    Edited once, last by kle ().

  • 1. ps -ef|egrep "mpd|pulse|blue|python"|grep -v grep

    Code
    root       286     1  0 11:24 ?        00:00:01 /usr/bin/python3 /opt/aiy/io-mcu-firmware/aiy_io_permission_service.py
    root       397     1  0 11:24 ?        00:00:00 /usr/lib/bluetooth/bluetoothd -C -E
    mpd        412     1  1 11:24 ?        00:00:05 /usr/bin/mpd --no-daemon
    pi         431     1  0 11:24 ?        00:00:04 python3 /opt/aiy/cwc-server/server.py --host 192.168.11.2 --mdns_name Board-7145
    root       435     1  0 11:24 ?        00:00:00 /usr/bin/bluealsa
    pi         746   580  0 11:25 ?        00:00:01 /usr/bin/pulseaudio --daemonize=no

    2. cat /etc/os*

    Code
    PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
    NAME="Raspbian GNU/Linux"
    VERSION_ID="10"
    VERSION="10 (buster)"
    VERSION_CODENAME=buster
    ID=raspbian
    ID_LIKE=debian
    HOME_URL="http://www.raspbian.org/"
    SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
    BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

    3. head -1 /etc/rpi*

    Code
    Raspberry Pi reference 2019-09-26

    und 4. sudo lsof | egrep -n "mpd|pulse" habe ich wegen der Größe als Datei angehangen.

    es trat auch eine Meldung auf:

    Code
    lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
    Output information may be incomplete.

    sudo_lsof.txt


    Danke!

  • lt. mpd user manual habe ich mal versucht mpd von der Kommandozeile aufzurufen, dabei kam folgende Meldung:


    Code
    ~ $ mpd --stdout --no-daemon --verbose
    config_file: loading file /etc/mpd.conf
    exception: Failed to set group 29: Operation not permitted

    Dabei ist Gruppe 29 = audio

    Da das fehl schlägt, startet mpd als root und warum wird das nicht erlaubt?

  • Hast Du mpd und mpc nachträglich installiert, oder war das im Image schon enthalten?


    zeige die Ausgaben von

    • id
    • pactl list cards short
    • pactl list sinks short
    • paplay /usr/share/sounds/alsa/Front_Center.wav hörst Du "front center"?
    • sudo service bluetooth status
    • sudo service mpd status
  • Hast Du mpd und mpc nachträglich installiert, oder war das im Image schon enthalten?

    Das war im Image nicht enthalten und die Installation musste ich mehrfach wiederholen, damit der Service fehlerfrei gestartet wurde.

  • Code
    ~ $ id
    uid=1000(pi) gid=1000(pi) groups=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),105(input),109(netdev),997(gpio),998(i2c),999(spi)
    Code
    ~ $ pactl list cards short
    0	alsa_card.platform-soc_sound	module-alsa-card.c
    Code
    ~ $ pactl list sinks short
    0	alsa_output.platform-soc_sound.stereo-fallback	module-alsa-card.c	s32le 2ch 48000Hz	IDLE

    paplay /usr/share/sounds/alsa/Front_Center.wav hörst Du "front center"?

    ja!

  • Das war im Image nicht enthalten und die Installation musste ich mehrfach wiederholen, damit der Service fehlerfrei gestartet wurde.

    Im Image war pulseaudio als Soundserver installiert.

    Das ist eine Änderung gegenüber dem Standard im Raspbian-Buster.


    früher(c) in Raspbian-Jessie war pulseaudio der Soundserver


    Grundsätzlich läuft

    • pulseaudio als Session-Dämon z.B. mit owner pi und
    • mpd als System-Dämon mit owner mpd

    kanne was genau hast Du getan? was waren die Fehlermeldungen?

    Edited 2 times, last by kle ().

  • Im Image war pulseaudio als Soundserver installiert.

    Das ist eine Änderung gegenüber dem Standard im Raspbian-Buster.

    Ich hatte schon mal versucht den Ausgang von mpd auf pulsaudio zu legen aber irgendwie hat das nicht funktioniert.

    Wäre das ein möglicher Weg oder funktioniert mpd prinzipiell nicht mit pulsaudio?

  • was genau hast Du getan? was waren die Fehlermeldungen?

    Eintrag in mpd.conf:

    Code
    audio_output {
    type            "pulse"
    name            "pulse audio"
    }

    Fehlermeldungen gab es keine, es hat nur nicht funktioniert.

  • oder funktioniert mpd prinzipiell nicht mit pulsaudio?

    mpd kann mit pulseaudio funktionieren.


    es gibt einen Beitrag vom Juli 2019 wo beschrieben steht, wie man 2 Bluetooth-Lautsprecher zur Stereo-Ausgabe mit pulseaudio und mpd konfiguriert.


    relevant für Dich sind 2 Punkte:

    (1) Datei /etc/pulse/default.pa mit sudo nano bearbeiten,

    Zeile einfügen:

    load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1

    hinter Zeile:

    #load-module module-native-protocol-tcp


    (2) in Datei /etc/mpd.conf

    Code
    audio_output {
        type        "pulse"
        name        "My Pulse Output" # kannst Du ändern
        server      "127.0.0.1"
    }

    danach rebooten.

    Edited once, last by kle ().

  • mpd kann mit pulseaudio funktionieren.

    Ich habe die Änderungen eingefügt aber es hat sich nichts hörbares verändert.

    In dem Beitrag ist noch ein Hinweis auf /etc/bluetooth/main.conf:

    Code
    [General]
    Enable=Source,Sink,Media,Socket

    Bei mir steht am Ende AutoEnable=true, das sollte doch dem entsprechen, oder?

  • was sagt

    • mpc outputs und
    • sudo cat /var/lib/mpd/state und
    • mpc status

    Edit:


    Logfiles:

    • mpd: tail -50 /var/log/mpd/mpd.log zeigt die letzten 50 Zeilen
    • pulsaudio: tail -200 /var/log/syslog zeigt die letzten 200 Zeilen

    Logging intensivierten

    mpd: z.B. log_level    "verbose" in /etc/mpd.conf

    pulseaudio: in /etc/pulse/client.conf z.B.

    Code
    sudo nano /etc/pulse/client.conf
    -   -   -   -   -   -   -   -   -
    change:
    ; extra-arguments = --log-target=syslog
    to:
    extra-arguments = --log-target=syslog -vvvv

    Achtung:

    damit wird das pulseaudio-Logfile sehr schnell sehr groß.

    unbedingt schnell rückgängig machen.

    Edited 2 times, last by kle ().

  • Code
    ~ $ mpc outputs
    
    Output 1 (Pulse Audio) is enabled
    Code
    ~ $ mpc status
    
    volume: n/a   repeat: off   random: off   single: off   consume: off
  • du hast eine leere Playlist im State-File und die Wiedergabe ist gestoppt.

    In Beitrag #15 steht, wie man was abspielt.

    als Beispiel dlf.m3u

    Code: /var/lib/mpd/playlists/dlf.m3u
    #EXTM3U
    #EXTINF:-1,Deutschlandfunk
    http://st01.dlf.de/dlf/01/128/mp3/stream.mp3

    Achtung: mpd-Playlist-Dateien sind Textdateien.

    Sie müssen bei Raspbian/Linux/Unix Unix-Zeilenende (LF = 0x0A) nicht Windows-Zeilenende (CRLF = 0x0D0A) enthalten.,

    mit Kommando file /var/lib/mpd/playlists/dlf.m3u sieht du, ob Windows-Zeilenenden enthalten sind oder nicht


    ich habe Beitrag #38 um Logfiles erweitert.