[gelöst] Kein Ton mit vdr-sxfe, aber aplay liefert sound über ALSA

  • Hi,
    vielleicht kann mir jemand in diesem Forum helfen. Da yavdr05 zu meinem Bedauern keine 32bit mehr unterstützt, ich aber einen sonst noch brauchbaren 32bit Rechner habe, der in einem yavdr Orchester mitspielen soll, habe ich nach Beschreibung im Thread eine 32bit Version von yavdr0.5 hergestellt. Mit vdr-sxfe gibt es ein passables Bild von den Aufnahmen anderer vdr. ABER: den Sound bekomme ich partout unter vdr nicht zum Laufen.


    Wenn ich im yavdr Webfrontend die Einstellung "Analog" nutze, wird eine leere /etc/asound.conf erzeugt und als user vdr (unter dem der vdr-sxfe läuft) bringen sowohl

    Code
    aplay /usr/share/sounds/alsa/Front_Center.wav

    als auch

    Code
    aplay -D default /usr/share/sounds/alsa/Front_Center.wav

    den gewünschten Sound hervor auf der Köphhörer / Lautsprecher hervor. Ich habe auch mit alsamixer sichergestellt, daß auch sonst alles "un-muted" ist .


    aplay -l liefert

    Code
    **** Liste der Hardware-Geräte (PLAYBACK) ****
    Karte 0: Intel [HDA Intel], Gerät 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
      Sub-Geräte: 1/1
      Sub-Gerät #0: subdevice #0
    Karte 0: Intel [HDA Intel], Gerät 1: ALC662 rev1 Digital [ALC662 rev1 Digital]
      Sub-Geräte: 1/1
      Sub-Gerät #0: subdevice #0


    Also scheint soundmäßig eigentlich alles ok zu sein. Auch die Kommandozeile von vdr-sxfe zeigt mit

    Code
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    vdr       3194  1.8  5.4 148344 54972 ?        S<sl 13:42   0:13 /usr/bin/vdr-sxfe --post tvtime:method=use_vo_driver --reconnect --audio=alsa --syslog --silent --tcp --config /etc/vdr-sxfe/config_xineliboutput xvdr://127.0.0.1:37890


    alles so an, wie ich es in meinem jugendlichen Leichtsinn erwartet hätte (--audio=alsa sollte ja auch das default device nehmen, oder?). Ton in vdr ist aufgedreht (255), aber trotzdem gibt es kein Ton von den mit den anderen VDR gemachten Aufnahmen. Der vdr user ist in der Gruppe audio.


    Was kann da noch schief stehen? Wo könnte man nach Fehlermeldungen schauen?


    Gruss aus Kölle vom Nordlicht


    VDR Zooverwalter


    • 1x Ubuntu 12.10 MCP78S [Geforce 8200] Vdr 1.7.22 / 2x Hauppauge WINTV NOVA-T 500 TV Karte PCI intern (=4 DVB-T)

    • 1x Ubuntu 13.04 1xVDR 1.7.28 mit vnsi / DVB-S2 Hauppauge Nova /L4M Twin S2 V 6.2, Unicable

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2, USB TechnoTrend S2-3650 mit CI, HDMI an Philips LCD 47PFL8404 Full HD

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2,Streamdev-client HDMI an Samsung LED 5700-46"

    • 1x yaVDR0.5 testing Asus Eeepc Notebook DVB-S USB TechnoTrend S-2400 HDMI an Samsung LED 5700-40"

    • 1x yavdr05-clone (32bit) Asus Novalite, nur StreamdevClient an No-name TV mit DVI/HDMI

    • [1x yaVDR0.4 MSI MS-7508 K9N2GM, AMD Athlon Dual Core 4850e, Terratec Synergy S2 PCI HD, ALBA TV mit HDMI als Monitor
      sowie weitere Clients

    • XBMC 12.2 via VNSI

    • BoxeeBox

    • AppleTV 2nd (2.2.1 mit Jailbreak und XBMC)

    • miniMac 10.6.6 mit XBMC


    Einmal editiert, zuletzt von einnordlicht () aus folgendem Grund: Änderung des Titels

  • vdr-sxfe Anleitung lesen sollte helfen.
    vdr-sxfe --help sollte helfen.
    Was in ~/.xine/config_xineliboutput steht ist intressant.


    Den Rest solltest nun alleine lösen können,
    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Tja, das hatte ich leider schon. Inzwischen bin schon etwas weiter, aber so ganz verstehe ich es noch nicht.


    yavdr started die vdr frontend Programme via upstart und damit via

    Code
    start/stop vdr-frontend


    Als Folge wird dadurch als user vdr das Programm vdr-sxfe gestartet mit folgender (mir nach Studium der info / man pages richtig erscheinender) Kommandozeile

    Code
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    vdr       3200 21.5  5.4 148320 54908 ?        S<sl 08:51   0:03 /usr/bin/vdr-sxfe --post tvtime:method=use_vo_driver --reconnect --audio=alsa:default --syslog --silent --tcp --config /etc/vdr-sxfe/config_xineliboutput xvdr://127.0.0.1:37890


    Wenn ich das vdr-frontend stoppe und als derselbe User vdr manuell die Kommandozeile eingebe, ist der Ton da!

    Code
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    vdr       3357  0.0  0.1   5548  1412 pts/9    S+   08:52   0:00 su - vdr -c DISPLAY=:1  /usr/bin/vdr-sxfe --post tvtime:method=use_vo_driver --reconnect --audio=alsa:default --syslog --silent --tcp --config /etc/vdr-sxfe/config_xineliboutput xvdr://127.0.0.1:37890
    vdr       3365 33.1  6.1 180304 62924 pts/9    SLl+ 08:52   0:02 /usr/bin/vdr-sxfe --post tvtime:method=use_vo_driver --reconnect --audio=alsa:default --syslog --silent --tcp --config /etc/vdr-sxfe/config_xineliboutput xvdr://127.0.0.1:37890


    Ein Rechte-Problem kann es nicht sein, beidesmal wird derselbe User vdr verwendet und der ist in der audio Gruppe. An der Kommandozeile sehe ich nicht, warum ein upstart Programm nicht so funktioniert wie ein manuell gestartetes. Der einzige Unterschied ist eigentlich nur, daß stdin/stdout/stderr ja umgelenk / geschlossen werden...
    Hat das einen Einfluss auf die "alsa"-fähigkeit?


    Detlef


    VDR Zooverwalter


    • 1x Ubuntu 12.10 MCP78S [Geforce 8200] Vdr 1.7.22 / 2x Hauppauge WINTV NOVA-T 500 TV Karte PCI intern (=4 DVB-T)

    • 1x Ubuntu 13.04 1xVDR 1.7.28 mit vnsi / DVB-S2 Hauppauge Nova /L4M Twin S2 V 6.2, Unicable

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2, USB TechnoTrend S2-3650 mit CI, HDMI an Philips LCD 47PFL8404 Full HD

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2,Streamdev-client HDMI an Samsung LED 5700-46"

    • 1x yaVDR0.5 testing Asus Eeepc Notebook DVB-S USB TechnoTrend S-2400 HDMI an Samsung LED 5700-40"

    • 1x yavdr05-clone (32bit) Asus Novalite, nur StreamdevClient an No-name TV mit DVI/HDMI

    • [1x yaVDR0.4 MSI MS-7508 K9N2GM, AMD Athlon Dual Core 4850e, Terratec Synergy S2 PCI HD, ALBA TV mit HDMI als Monitor
      sowie weitere Clients

    • XBMC 12.2 via VNSI

    • BoxeeBox

    • AppleTV 2nd (2.2.1 mit Jailbreak und XBMC)

    • miniMac 10.6.6 mit XBMC


  • Nach ein Nachtrag: Ich habe gesehen, daß yavdr die per upstart gestarteten Skripte in /var/log/upstart protokollieren läßt.
    Die entsprechende /var/lib/upstart/vdr-frontend.log startet mit

    (Zeile 10 sieht verdächtig aus), während von der Komandozeile gestartet auf stdout nur folgendes steht (keine solche Zeile 10):


    Die Meldungen wegen fehlender nvdia und vdpau gehen in Ordnung, da ja yavdr normalerweise für diese Umgebung optimiert ist und der verwendete Rechner eben keine NVIDIA Karte mit vdpau-Unterstützung hat. Aber der Ton geht ja in diesem Fall über das Analog (Köpfhörer) Device. Und in beiden Fällen wird aber doch dieselbe Datei /etc/vdr-sxfe/config_xineliboutput verwendet (eine User-spezifische Version unter ~/.xine gibt es nicht).


    Der Audiopart (bereinigt von Kommentaren) lautet


    Kommentiere ich die Zeile aus

    Code
    audio.synchronization.av_sync_method:resample


    so daß der default Wert 0 genommen wird, ergibt sich kein solcher Hinweis im log file - aber leider auch kein Ton. Jetzt bin ich wirklich mit meinem Latein am Ende.


    Any ideas?


    VDR Zooverwalter


    • 1x Ubuntu 12.10 MCP78S [Geforce 8200] Vdr 1.7.22 / 2x Hauppauge WINTV NOVA-T 500 TV Karte PCI intern (=4 DVB-T)

    • 1x Ubuntu 13.04 1xVDR 1.7.28 mit vnsi / DVB-S2 Hauppauge Nova /L4M Twin S2 V 6.2, Unicable

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2, USB TechnoTrend S2-3650 mit CI, HDMI an Philips LCD 47PFL8404 Full HD

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2,Streamdev-client HDMI an Samsung LED 5700-46"

    • 1x yaVDR0.5 testing Asus Eeepc Notebook DVB-S USB TechnoTrend S-2400 HDMI an Samsung LED 5700-40"

    • 1x yavdr05-clone (32bit) Asus Novalite, nur StreamdevClient an No-name TV mit DVI/HDMI

    • [1x yaVDR0.4 MSI MS-7508 K9N2GM, AMD Athlon Dual Core 4850e, Terratec Synergy S2 PCI HD, ALBA TV mit HDMI als Monitor
      sowie weitere Clients

    • XBMC 12.2 via VNSI

    • BoxeeBox

    • AppleTV 2nd (2.2.1 mit Jailbreak und XBMC)

    • miniMac 10.6.6 mit XBMC


  • Du kannst noch mit -v versuchen mehr Information ins log zubekommen.
    Audio Fehler scheint keiner im Log zustehen.


    Du kannst mal versuchen wärend vdr-sxfe mit speakert-test zu arbeiten.
    Normal sollte da ein Fehler kommen, da ja vdr-sxfe das Audio Device belegt.
    Mal mit alsamixer prüfen ob Lautstärke stimmt.
    Permissions von /etc/asound.conf passen?
    Hat user VDR ein eigenes asound.conf?
    Kannst ja mal versuchen anstatt default "hw:xx,xx" zuverwenden, damit
    wären die vorhergehenden Ursachen ausgeschlossen.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Danke für die Hinweise.


    /etc/asound.cfg hat permissions 644, ist also für alle lesbar.
    User-eigene Setups gibt es nicht (es laufen beide Verianten sowieso unter vdr user)


    Habe gerade eben noch einmal einen neuen Test mit --verbose gemacht.


    Wenn vdr-sxfe durch ein Upstart Script gestartet wird, steht dann im log an entscheidender Stelle

    Code
    video_out_xv: max XvImage size 2048 x 2048
    video_out: can't raise nice priority by 2: Operation not permitted
    snd_pcm_open() failed:-2:No such file or directory
    >>> Check if another program already uses PCM <<<
    load_plugins: failed to load audio output plugin <alsa>
    Available video drivers: vdpau dxr3 aadxr3 xv opengl opengl2 raw xshm caca aa none xxmc sdl vidix vidixfb fb xvmc
    Available audio drivers: pulseaudio alsa oss jack none file


    während beim über Kommandozeile gestartet vdr-sxfe

    Code
    video_out_xv: max XvImage size 2048 x 2048
    video_out: can't raise nice priority by 2: Operation not permitted
    audio_alsa_out : supported modes are 8bit 16bit 24bit 32bit mono stereo (4-channel not enabled in xine config) (4.1-channel not enabled in xine config) (5-channel not enabled in xine config) (5.1-channel not enabled in xine config) (a/52 and DTS pass-through not enabled in xine config)
    video_decoder: can't raise nice priority by 1: Operation not permitted
    Available video drivers: vdpau dxr3 aadxr3 xv opengl opengl2 raw xshm caca aa none xxmc sdl vidix vidixfb fb xvmc
    Available audio drivers: pulseaudio alsa oss jack none file


    Wenn ich vdr-sxfe von Komandozeile starte, und dann speaker-test ohne Argument in einem anderen Fenster (unter screen) starte, mischt sich das Rosa Rauschen mit dem TV Ton.
    Hmm, dann mußte also die Kommandozeile an alsa vorbeischummeln?!?



    Sieht wohl so aus, daß ich mal ein strace mitlaufen lassen muß, welches device für das upstart script nicht erreichbar ist.


    VDR Zooverwalter


    • 1x Ubuntu 12.10 MCP78S [Geforce 8200] Vdr 1.7.22 / 2x Hauppauge WINTV NOVA-T 500 TV Karte PCI intern (=4 DVB-T)

    • 1x Ubuntu 13.04 1xVDR 1.7.28 mit vnsi / DVB-S2 Hauppauge Nova /L4M Twin S2 V 6.2, Unicable

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2, USB TechnoTrend S2-3650 mit CI, HDMI an Philips LCD 47PFL8404 Full HD

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2,Streamdev-client HDMI an Samsung LED 5700-46"

    • 1x yaVDR0.5 testing Asus Eeepc Notebook DVB-S USB TechnoTrend S-2400 HDMI an Samsung LED 5700-40"

    • 1x yavdr05-clone (32bit) Asus Novalite, nur StreamdevClient an No-name TV mit DVI/HDMI

    • [1x yaVDR0.4 MSI MS-7508 K9N2GM, AMD Athlon Dual Core 4850e, Terratec Synergy S2 PCI HD, ALBA TV mit HDMI als Monitor
      sowie weitere Clients

    • XBMC 12.2 via VNSI

    • BoxeeBox

    • AppleTV 2nd (2.2.1 mit Jailbreak und XBMC)

    • miniMac 10.6.6 mit XBMC


  • Wenn ich statt default hw:0,0 nehme, ändert sich nichts (Kommandozeile hui, upstart pfui)
    (updated version)
    Vergleicht man die Unterschiede der open Statements von beiden Versionen ergibt sich für die update

    Code
    open("/etc/asound.conf", O_RDONLY)      = 7
    open("/dev/snd/controlC0", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied) 
    open("/dev/aloadC0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)


    während bei der Kommandozeilenversion

    Code
    open("/etc/asound.conf", O_RDONLY)      = 7
    open("/dev/snd/controlC0", O_RDONLY|O_CLOEXEC) = 7
    open("/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 7
    open("/dev/snd/pcmC0D0p", O_RDWR|O_NONBLOCK|O_CLOEXEC) = 8


    steht.


    Allerdings hat die Gruppe audio in das Device rw-Access

    Code
    ls -la /dev/snd/controlC0
    crw-rw---T 1 root audio 116, 7 Nov 15 20:27 /dev/snd/controlC0


    und der user vdr (wird in beiden Fällen genutzt) ist in der Gruppe

    Code
    id vdr
    uid=666(vdr) gid=666(vdr) Gruppen=666(vdr),24(cdrom),29(audio),44(video),46(plugdev)


    Sind denn von upstart gestartete Programme denn nicht gleichwertig?


    VDR Zooverwalter


    • 1x Ubuntu 12.10 MCP78S [Geforce 8200] Vdr 1.7.22 / 2x Hauppauge WINTV NOVA-T 500 TV Karte PCI intern (=4 DVB-T)

    • 1x Ubuntu 13.04 1xVDR 1.7.28 mit vnsi / DVB-S2 Hauppauge Nova /L4M Twin S2 V 6.2, Unicable

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2, USB TechnoTrend S2-3650 mit CI, HDMI an Philips LCD 47PFL8404 Full HD

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2,Streamdev-client HDMI an Samsung LED 5700-46"

    • 1x yaVDR0.5 testing Asus Eeepc Notebook DVB-S USB TechnoTrend S-2400 HDMI an Samsung LED 5700-40"

    • 1x yavdr05-clone (32bit) Asus Novalite, nur StreamdevClient an No-name TV mit DVI/HDMI

    • [1x yaVDR0.4 MSI MS-7508 K9N2GM, AMD Athlon Dual Core 4850e, Terratec Synergy S2 PCI HD, ALBA TV mit HDMI als Monitor
      sowie weitere Clients

    • XBMC 12.2 via VNSI

    • BoxeeBox

    • AppleTV 2nd (2.2.1 mit Jailbreak und XBMC)

    • miniMac 10.6.6 mit XBMC


    2 Mal editiert, zuletzt von einnordlicht ()

  • Scheint ein Permissions Problem zu sein.
    Kenn mich mit upstart nicht auch.
    Es kann auch sein das schon etwas Audio blockiert, sprich benutzt?
    Kannst ja über /proc/<pid> prüfen als welcher user das Frontend von upstart aus läuft.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Das mit .cfg/.conf war nur ein Schreibfehler von mir; danke für den Hinweis


    So, jetzt habe ich wohl. Im Upstart Script wird via setuid und setgid der User und seine Gruppe gesetzt für den Fall, daß - wie hier - der erzeugte Prozess unter einem bestimmten User gestartet wird. Der User vdr ist via /etc/group auch in der Gruppe audio, aber das scheint dabei ignoriert zu werden (supplemental groups). Als Folge kann nicht auf das /dev/controlC0 Device zugegriffen werden, denn das gehört root:audio.
    Durch setzen von setgid auf audio funktioniert es mit dem Sound. Das ganze wird wohl verursacht durch ein Bug in upstart (das keine supplemental gid nutzt und nur die Gruppe verwendet, die in setgid gesetzt wird, siehe
    https://bugs.launchpad.net/upstart/+bug/812870)


    Durch Anpassung des Skriptes /etc/init/vdr-frontend
    und Ändern von

    Code
    setgid vdr

    auf

    Code
    setgid audio

    geht alles!
    Danke für die Beiträge / Hinweise
    Gruß
    Detlef


    VDR Zooverwalter


    • 1x Ubuntu 12.10 MCP78S [Geforce 8200] Vdr 1.7.22 / 2x Hauppauge WINTV NOVA-T 500 TV Karte PCI intern (=4 DVB-T)

    • 1x Ubuntu 13.04 1xVDR 1.7.28 mit vnsi / DVB-S2 Hauppauge Nova /L4M Twin S2 V 6.2, Unicable

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2, USB TechnoTrend S2-3650 mit CI, HDMI an Philips LCD 47PFL8404 Full HD

    • 1x yaVDR0.5 testing Acer Revo 3610 DVB-S2,Streamdev-client HDMI an Samsung LED 5700-46"

    • 1x yaVDR0.5 testing Asus Eeepc Notebook DVB-S USB TechnoTrend S-2400 HDMI an Samsung LED 5700-40"

    • 1x yavdr05-clone (32bit) Asus Novalite, nur StreamdevClient an No-name TV mit DVI/HDMI

    • [1x yaVDR0.4 MSI MS-7508 K9N2GM, AMD Athlon Dual Core 4850e, Terratec Synergy S2 PCI HD, ALBA TV mit HDMI als Monitor
      sowie weitere Clients

    • XBMC 12.2 via VNSI

    • BoxeeBox

    • AppleTV 2nd (2.2.1 mit Jailbreak und XBMC)

    • miniMac 10.6.6 mit XBMC


    Einmal editiert, zuletzt von einnordlicht () aus folgendem Grund: Neue Erkenntnisse (bug in upstart, und mit default device geht alles wie gewünscht)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!