Linux-Soundausgabe ... brauche Diagnose

Antworten
MPB
Aktiver Hörer
Beiträge: 38
Registriert: 25.02.2015, 10:49
Wohnort: Siegburg

Linux-Soundausgabe ... brauche Diagnose

Beitrag von MPB »

Hallo Aktivisten,

irgendwie stehe ich gerade auf dem Schlauch, vielleicht kann mir jemand einen Hinweis geben:

Schalte eben meinen Linux-Server ein und möchte Musik hören, kein Laut dringt aus den Lautsprechern.

Setup: Linux-Server ----[USB]---> Gustard U10 ---> [SPDIF] --> Abacus Preamp14 Convolver ---[XLR]-->Aktiv-LS

Habe den Gustard dann an meinem Win7-PC angeschlossen und die Ausgabe via SP/DIF funktioniert.

Es liegt also am Server, aha.

In media res:

Code: Alles auswählen

#cat /proc/asound/cards
 0 [X20            ]: USB-Audio - XMOS USB Audio 2.0
                      XMOS XMOS USB Audio 2.0 at usb-0000:00:12.2-3, high speed
Wird also erkannt. Vielleicht der Logitech-Squeezelite-Player? Den Logitech-Server gestoppt und mir den Stream angeschaut:

Code: Alles auswählen

#watch cat /proc/asound/card0/stream0

Alle 2,0s: cat /proc/asound/card0/stream0                               Sun Mar 29 19:05:52 2015

XMOS XMOS USB Audio 2.0 at usb-0000:00:12.2-3, high speed : USB Audio

Playback:
  Status: Stop
  Interface 1
    Altset 1
    Format: S32_LE
    Channels: 2
    Endpoint: 1 OUT (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
    Data packet interval: 125 us
Stop stimmt, wird gerade nichts abgespielt, also testen mit:

Code: Alles auswählen

#play 06.You_aint_the_first.flac:

 File Size: 16.1M     Bit Rate: 825k
  Encoding: FLAC
  Channels: 2 @ 16-bit   Track: 06
Samplerate: 44100Hz      Album: Use your illusion I
Replaygain: off         Artist: Guns N' Roses
  Duration: 00:02:36.16  Title: You ain't the first

In:1.78% 00:00:02.79 [00:02:33.37] Out:133k  [   ===|===-  ]        Clip:0
Schaut doch gut aus, wie sieht der Stream jetzt aus?

Code: Alles auswählen

XMOS XMOS USB Audio 2.0 at usb-0000:00:12.2-3, high speed : USB Audio

Playback:
  Status: Running
    Interface = 1
    Altset = 1
    URBs = 8 [ 8 8 8 8 8 8 8 8 ]
    Packet Size = 1024
    Momentary freq = 47992 Hz (0x5.ffc0)
    Feedback Format = 16.16
  Interface 1
    Altset 1
    Format: S32_LE
    Channels: 2
    Endpoint: 1 OUT (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
    Data packet interval: 125 us
Sieht doch ganz okay aus.
Nur warum habe ich keinen Ton? :(
Auch wenn ich am Mixer nicht herumgespielt habe, was gibt der aus?

Code: Alles auswählen

# amixer
Simple mixer control 'XMOS Clock Selector',0
  Capabilities: pvolume cvolume pswitch cswitch penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: Playback 0 - 127 Capture 0 - 127
  Front Left: Playback 127 [100%] [0.00dB] [on] Capture 127 [100%] [0.00dB] [on]
  Front Right: Playback 127 [100%] [0.00dB] [on] Capture 127 [100%] [0.00dB] [on]
Simple mixer control 'XMOS Clock Selector',1
  Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: Playback 0 - 127 Capture 0 - 127
  Mono: Playback 127 [100%] [0.00dB] [off] Capture 127 [100%] [0.00dB] [on]
Hm hm sehr seltsam, oder? Was habe ich übersehen? Falls es hilft, es ist ein headless-Server mit Ubuntu 14.04.2 LTS .

Danke & Grüße

Marcus
Bild
Melomane
Aktiver Hörer
Beiträge: 3114
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Marcus,

dann überprüfe zunächst, ob der Squeezelite das richtige Ausgabedevice nutzt.

Da findest du die Startparameter:
https://code.google.com/p/squeezelite/

Gruß

Jochen
Bild
frankl
Aktiver Hörer
Beiträge: 486
Registriert: 20.01.2013, 01:43
Wohnort: Aachen

Beitrag von frankl »

Hallo Marcus,

die Zeile

Code: Alles auswählen

    Momentary freq = 47992 Hz (0x5.ffc0)
sieht seltsam aus, da sollte doch 44100 stehen, oder? Die Ausgabe muss auch ins S32_LE Format verwandelt werden. Ob 'play' (also 'sox') das automatisch richtig macht?

Versuch doch mal explizit alles zu setzen (wie auf [url=http://frank_l.bitbucket.org/stereoutils/player.html#warmup]meiner Webseite[/url]:

Code: Alles auswählen

 sox 06.You_aint_the_first.flac -t raw  -r 44100 -c 2 -e signed -b 32 - | aplay -t raw -f S32_LE -c 2 -r 44100 -D hw:0,0

Viele Grüße,
Frank
Bild
MPB
Aktiver Hörer
Beiträge: 38
Registriert: 25.02.2015, 10:49
Wohnort: Siegburg

Beitrag von MPB »

Hallo Frank,
solche schrägen Bitraten hatte ich auch schon, als es noch funktionierte.
Habe Deinen Vorschlag ausprobiert, leider auch keine Ausgabe.

Vielen Dank für Deinen Vorschlag!

Grüße

Marcus
frankl hat geschrieben: die Zeile

Code: Alles auswählen

    Momentary freq = 47992 Hz (0x5.ffc0)
sieht seltsam aus, da sollte doch 44100 stehen, oder? Die Ausgabe muss auch ins S32_LE Format verwandelt werden. Ob 'play' (also 'sox') das automatisch richtig macht?

Versuch doch mal explizit alles zu setzen (wie auf [url=http://frank_l.bitbucket.org/stereoutils/player.html#warmup]meiner Webseite[/url]:

Code: Alles auswählen

 sox 06.You_aint_the_first.flac -t raw  -r 44100 -c 2 -e signed -b 32 - | aplay -t raw -f S32_LE -c 2 -r 44100 -D hw:0,0
Bild
MPB
Aktiver Hörer
Beiträge: 38
Registriert: 25.02.2015, 10:49
Wohnort: Siegburg

Beitrag von MPB »

Hallo Jochen,

den Squeezelite habe ich ja durch das eigene Play-Kommando als Grund ausgeschlossen. Die Parameter habe ich aber auch überprüft, mir die Log-Datei angeschaut und neu gestartet. Sah alles okay aus.

Danke für Deinen Vorschlag :)

Grüße

Marcus
Melomane hat geschrieben:Marcus,

dann überprüfe zunächst, ob der Squeezelite das richtige Ausgabedevice nutzt.

Da findest du die Startparameter:
https://code.google.com/p/squeezelite/

Gruß

Jochen
Bild
MPB
Aktiver Hörer
Beiträge: 38
Registriert: 25.02.2015, 10:49
Wohnort: Siegburg

Beitrag von MPB »

Heute weitere Tests:

Habe jetzt noch einmal mit einem USB-DAC am Server versucht. Mit dem habe ich wieder Sound.

Nur mit dem DDC mag er nicht mehr erfolgreich zusammen arbeiten.

ALSA habe ich zwischendurch neu installiert - das hatte keinen positiven Effekt.

Weitere Ideen?

Danke & Grüße

Marcus
Bild
MPB
Aktiver Hörer
Beiträge: 38
Registriert: 25.02.2015, 10:49
Wohnort: Siegburg

Beitrag von MPB »

Gefunden!

In Volumio (abgeleitet von Raspbian) gibt es ein Script, um das (mit XMOS) bekannte Mute-Problem zu fixen:

Code: Alles auswählen

amixer scontrols | sed -e 's/^Simple mixer control//' | while read line; do
amixer sset "$line" unmute;
done
Hat bei mir auch geholfen :-)

Vielleicht hilft es ja dem einen oder anderen in der Zukunft...mich hat das wirklich Nerven gekostet.

Grüße

Marcus
Bild
MPB
Aktiver Hörer
Beiträge: 38
Registriert: 25.02.2015, 10:49
Wohnort: Siegburg

Beitrag von MPB »

Aktuell tausche ich meinen betagten Linux-Server gegen ein "neues" Modell aus (HP Proliant Microserver Gen8).
Dank Xeon-CPU und 16GB RAM versuche ich mich jetzt auch an Virtualisierung und setze VMWare ESXI 5.5 ein.

Gestartet bin ich mit 2 virtuellen Maschinen, eine Ubuntu 14.04 LTS-VM und eine FreeNAS-VM.
Im Ubuntu-Server laufen der Logitech Media Server und der Squeezeliste-Player. Die Musikdaten liegen auf dem FreeNAS.

Leicht Bedenken hatte ich wegen des Durchreichens des USB-Ports, das hat aber exemplarisch mit USB-Festplatte und einem Asus USB-DAC problemlos funktioniert.

Nun dachte ich: Auf meiner anderen 14.04er Installation (alter Server) läuft der USB-DDC ja mittlerweile, wird ja dann hier kein Problem sein.

Aber:

Ich bekomme den DDC wieder nicht zum Laufen. Das Mute-Problem ist es nicht, er läuft, das Signal ist aber völlig verzerrt (wie falsch konvertiert).

Werde später ein paar diagnostische Ausgaben anfügen, vielleicht finden wir den Fehler gemeinsam.

Danke & Grüße

Marcus
Bild
Melomane
Aktiver Hörer
Beiträge: 3114
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Hallo Marcus,

in der Tat wären logs nicht schlecht. Im übrigen ist zu bedenken, dass die virtuelle Umgebung dem Player eine andere Soundkarte als die reale vorspiegelt. Möglicherweise handhabt das auch VMWare noch wieder anders als z.B. VirtualBox. Bei Virtualbox geht der Musikstrom (bei mir) an pulseaudio, womit dann der real existierende Soundchip beglückt wird. Was pulseaudio seinerseits damit anstellt, weiß ich nicht. Ist mir aber auch egal, weil ich mit dem Laptop keine audiophilen Höchstleistungen erzielen möchte.

Was ich sagen möchte: Da sind genügend schwarze Löcher, die Unfug treiben können.

Meine Empfehlung also: Erst einmal die eigentliche Linuxinstallation einwandfrei ans Laufen bekommen, dann erst die virtuellen Rechner.

Oder geht es schon um diese eigentliche Linuxinstallation? Dann habe ich mal wieder alles missverstanden und bin still. Zumal für dieses Szenario die logs wirklich auskunftsfreudig sein sollten.

Gruß

Jochen
Bild
MPB
Aktiver Hörer
Beiträge: 38
Registriert: 25.02.2015, 10:49
Wohnort: Siegburg

Beitrag von MPB »

Melomane hat geschrieben:in der Tat wären logs nicht schlecht. Im übrigen ist zu bedenken, dass die virtuelle Umgebung dem Player eine andere Soundkarte als die reale vorspiegelt. Möglicherweise handhabt das auch VMWare noch wieder anders als z.B. VirtualBox. Bei Virtualbox geht der Musikstrom (bei mir) an pulseaudio, womit dann der real existierende Soundchip beglückt wird. Was pulseaudio seinerseits damit anstellt, weiß ich nicht. Ist mir aber auch egal, weil ich mit dem Laptop keine audiophilen Höchstleistungen erzielen möchte.
Hallo Jochen,

in VMWare kann man in den Einstellungen der VM explizit USB-Geräte (welche am Host hängen) der VM zuweisen. Ob sich da zwischen einer VM und einer Installation "auf dem Blech" noch Unterschiede ergeben, kann ich nicht sagen.

VIelleicht war meine Darstellung zu verkürzt, hier noch einmal die Fakten;:

Auf dem alten Server läuft der DDC (mittlerweile), dort rennt die gleiche Linux-Distribution & Version direkt auf dem Rechner.

Auf dem neuen Server läuft das Linux in einer VM, das USB-Gerät reiche ich durch.

Pulseaudio wurde von mir in beiden Installation entfernt.

Heute Abend mehr :-)

Grüße

Marcus
Bild
Melomane
Aktiver Hörer
Beiträge: 3114
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Hallo Marcus,

ich habe offenbar zu schnell gelesen und das schwarze Loch war mein Gehirn. ;) Du gibst ja offenbar den Sound via USB auf den DAC. Prüfe doch mal, ob die VMware-Installation USB 2.0 kann und nutzt. Eventuell braucht der "Problem-DAC" das, um störungsfrei laufen zu können, wohingegen der Asus-DAC mit USB 1.0 zufrieden ist?

Gruß

Jochen
Bild
MPB
Aktiver Hörer
Beiträge: 38
Registriert: 25.02.2015, 10:49
Wohnort: Siegburg

Beitrag von MPB »

Melomane hat geschrieben:braucht der "Problem-DAC" das, um störungsfrei laufen zu können, wohingegen der Asus-DAC mit USB 1.0 zufrieden ist?
Hallo Jochen,
in der VM kann ich entweder einen USB 1.0/2.0 oder einen USB 3.0 Controller zuweisen.

Aktuell laufen bei mir (wegen des Fehlers) die Server im Master-Slave-Betrieb: Der neue Server mit dem Logitech Media Server steuert das Squeezelite auf dem alten Server an.

Diese Trennnung finde ich gar nicht schlecht. Den alten Server werde ich im nächsten Schritt durch einen Raspberry Pi 2 mit einem HifiBerry SP/DIF-Ausgang ersetzen. So ist die eigentliche Soundausgabe unabhängig von Lasten auf dem virtuellen Host (zumindest ist es nicht mehr so ganz zeitkritisch(.

Danke & Grüße

Marcus
Bild
Antworten