yaVDR 0.3: Howto HDMI-Sound mit Asus NVIDIA EN210 (G210)

  • Hi,


    dank der Unterstützung von steffen_b und Frounts habe meine Asus NVIDIA EN210 (G210) dazu gebracht HDMI Sound am TV auszugeben.


    Voraussetzung:
    Die On-Board Soundkarte sollte im BIOS deaktiviert sein und keine zusätzliche Soundkarte eingebaut sein.
    (Ansonsten ist die Reihenfolge/Nummerierung der Karten im Alsa-System noch zu berücksichtigen.)
    Wichtig: Alle Eingaben werden als root ausgeführt! (Gefährlich aber bequem, einmal vorgweg sudo su oder sicherer vor jedem Befehl ein sudosetzten)


    yaVDR ist auf dem aktuellesten Stand. (apt-get update && apt-get upgrade && apt-get dist-upgrade)
    Aktueller Kernel ist derzeit: 2.6.32.-26. ( check mit: uname -a)


    Da die alsa-dkms nicht länger zur Verfügung stehen, muss man auf die linux-backports-alsa-lucid-generic zurückgreifen (Tipp kam von Knaxmann).

    Code
    1. apt-get remove alsa-dkms
    2. apt-get install linux-backports-modules-alsa-lucid-generic


    Dann eine neue Datei anlegen und editieren (/etc/modprobe.d/sound.conf)

    Code
    1. options snd-hda-intel enable_msi=0 probe_mask=0xfff2
    2. alias snd-card-0 snd-hda-intel
    3. alias sound-slot-0 snd-hda-intel


    Das System neu starten. (reboot)
    Der Zusatz probe_mask=0xfff2 sorgt dafür, dass nur ein Device verfügbar ist. Mit 4 Devices habe ich es unter yaVDR nicht ans laufen bekommen.
    Weitere Infos (z.B. wie man bei mehreren Soundkarten, die nVidia immer als erste einsortiert bekommt): s. xbmc-Wiki zu GeForce G210, GT220 or GT240]XMBC-Wiki


    Bei einem kleiner Test, sollte folgendes erscheinen:

    Code
    1. aplay -l
    2. **** Liste der Hardware-Geräte (PLAYBACK) ****
    3. Karte 0: NVidia [HDA NVidia], Gerät 3: NVIDIA HDMI [NVIDIA HDMI]
    4. Sub-Geräte: 0/1
    5. Sub-Gerät #0: subdevice #0


    Falls mehr als eine Karte gefunden wird, dann Soundkarte rausnehmen oder On-Board-Soundkarte deaktivieren.
    Falls hier mehr als 1 Gerät angezeigt wird, stimmt etwas mit der /etc/modprobe.d/sound.conf nicht oder es wurde noch nicht neu gestartet.


    Dann per

    Zitat

    alsamixer


    die Soundkarte "entmuten".
    Es sollte nur eine S/PDIF angezeigt werden, über der '00' steht.
    Falls da 'MM' steht, einmal die Taste 'M" drücken.
    das Programm mit 'Esc' beenden.


    Per

    Code
    1. alsactl store


    wird die Einstellung gespeichert.


    Im yaVDR-Webfrontend unter System/Sound HDMI Stereo anklicken und "Setze Soundeinstellungen"
    Damit wird die /etc/asound.conf gesetzt:

    Code
    1. cat /etc/asound.conf
    2. pcm.!default {
    3. type hw
    4. card 0
    5. device 3
    6. }


    reboot


    Die Einstellung ist soweit komplett. Der VDR startet jedoch derzeit so schnell, dass die Sound-Karte nicht initialisiert werden kann. (ca. 2 Sekunden nach dem das Bild kann man ein leises Knacken hören)
    Man kann dann entweder per "Esc"-Taste das VDR-Frontend neu starten oder per "stop vdr && start vdr" restarten. Dann sollte der Ton am TV zu hören sein.


    Besser ist die Lösung von Frounts / Soulfly2xs:
    In der /etc/init/vdr-frontend.conf eine Zeile (hier Zeile 3) eingefügt, damit der Start des vdr-frontends so lange verzögert wird, bis die NVIDIA-Karte sich meldet:

    Code
    1. pre-start script
    2. while ! DISPLAY=:1 xset -q; do sleep 0.1 ; done
    3. while ! [ $(cat /proc/asound/cards|grep -c "\- HDA NVidia") -gt 0 ] ; do sleep 1 ; done
    4. end script


    Ich hoffe mal, alle wesentlichen Schritte beschreiben zu haben.


    Hilfreich waren auch:


    Ausgabe Testsignal (hier Karte 0, Gerät 3):

    Code
    1. speaker-test -c2 -twav -Dplughw:0,3


    XBMC-Wiki:
    xbmc-Wiki zu GeForce G210, GT220 or GT240

    MfG
    Thomas


    yaVDR 0.5: MSI K9AG Neo2-Digital, Athlon X2 BE-2400, RAM: 4GB; HDMI: ZOTAC GT610; HDD: 3TB; DVB-S2: 2x TBS-6981 Doppel-Tuner; FB: Pollin X10
    Streaming-Clients: S100 mit 2,5"-HDD unter Zendeb 0.3 von Egalus

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von Thyor ()

  • Hi,


    der HDMI-Ton war zu meiner Überraschung nach dem Update auf 0.3 (noch) da.
    Auch nach dem Reboot. (Die /etc/modprobe.d/sound.conf wurde nicht verändert.)


    Nach dem Entfernen einiger jetzt als ungenutzt gemeldeter Pakete (u.a. alsa-dkms) war der Bildschirm wieder stumm.
    Auch wenn alsa-dkms beim Deinstallieren als "unused in this kernel" gekennzeichnet war, vermute ich hier die Ursache für die Stille.
    Jedenfalls war danach die Soundkarte nicht mehr per 'aplay -l' zu finden
    Ein erneutes Installieren via (apt-get install alsa-dkms) war nicht möglich, da es dieses Paket scheinbar nicht mehr gibt.

    Code
    1. apt-get --reinstall install alsa-dkms
    2. Paketlisten werden gelesen... Fertig
    3. Abhängigkeitsbaum wird aufgebaut
    4. Status-Informationen einlesen... Fertig
    5. E: Paket alsa-dkms konnte nicht gefunden werden


    Mangels anderer Alternativen habe ich die Lösung von knaxman probiert und die vorher verschmähten Backport-Treiber aufgespielt. Den alsa-dkms hatte ich ja schon vorher runtergeworfen.:

    Code
    1. sudo apt-get remove alsa-dkms
    2. sudo apt-get install linux-backports-modules-alsa-lucid-generic
    3. sudo alsamixer
    4. F6
    5. NVIDA
    6. ESC
    7. sudo alsactl store


    Die Karte war wieder da! Und der Ton kam auch nach der HDMI-Konfiguration via yaVDR-Web-Konfigurationsänderung. Leider gibt es immer noch das Timing-Problem beim Booten!
    Aber dafür gibt es ja die Lösung mit der /etc/init/vdr-frontend.conf (s.o.)


    Der HDMI-Ton läuft jetzt also wieder!
    Ich vermute aber, dass ich irgendwie die neue yaVDR-Automatik - bei der auf Sound und Sat-Karten gewartet werden sollte, irgendwie umgangen wird.


    Also wer eine bessere Lösung kennt: Bitte posten!

    MfG
    Thomas


    yaVDR 0.5: MSI K9AG Neo2-Digital, Athlon X2 BE-2400, RAM: 4GB; HDMI: ZOTAC GT610; HDD: 3TB; DVB-S2: 2x TBS-6981 Doppel-Tuner; FB: Pollin X10
    Streaming-Clients: S100 mit 2,5"-HDD unter Zendeb 0.3 von Egalus

  • Hi,


    habe mir heute mal die Zeit genommen, das leider immer noch notwendige Warten auf die Nvidia Karte in ein Templates zu gießen:


    Unter /usr/share/yavdr/templates/etc/init/vdr-frontend.conf eine neue Datei mit dem Namen 09waitforsound
    mit folgenden Inhalt anlegen:

    Zitat

    # Script wartet so lange bis Nvidia Karte oben ist!


    pre-start script
    while ! DISPLAY=:1 xset -q; do sleep 0.1 ; done
    while ! [ $(cat /proc/asound/cards|grep -c "\- HDA NVidia") -gt 0 ] ; do sleep 1 ; done
    end script


    Über das yaVDR-Konfigurations-Webfrontend unter Ihr VDR / VDR-Frontend wählen das bisherige Frontend einfach noch einmal aktivieren und das Template wird angewendet.


    Per

    Zitat

    cat /etc/init/vdr-frontend.conf


    kann noch mal überprüft werden, ob das Template angewendet wurde.

    MfG
    Thomas


    yaVDR 0.5: MSI K9AG Neo2-Digital, Athlon X2 BE-2400, RAM: 4GB; HDMI: ZOTAC GT610; HDD: 3TB; DVB-S2: 2x TBS-6981 Doppel-Tuner; FB: Pollin X10
    Streaming-Clients: S100 mit 2,5"-HDD unter Zendeb 0.3 von Egalus

  • In /etc/init/vdr-frontend.conf steht doch schon folgendes:

    Code
    1. start on ((started vdr and openbox-started and sound-card-added) or vdr-frontend-restart)


    siehe hier: vdr-frontend.conf


    Das event "sound-card-added" wird durch eine udev-Regel erzeugt. siehe hier: 40-sound-card-added.rules


    Sollte dadurch nicht schon auf die Karte gewartet werden?

    HW: Gigabyte EP41-UD3L | Core2Duo 7400 | 2GB Kingston | MSI N220GT-MD1GZ (passiv) | L4M-Twin S2 ver 6.5 mit Flex S2 | Silverstone LC16M mit iMON VFD | Samsung LE46B750
    SW: Xubuntu 14.04 3.13.0-24 | NVIDIA 304.117 | vdr 2.1.6 | softhddevice | inputlirc | lcdproc

  • Hi,


    Zitat

    goldbär schrieb:
    Sollte dadurch nicht schon auf die Karte gewartet werden?


    Vermutlich schon, nur ohne diese Änderung höre ich 2-3 Sekunden nach dem Start nur ein leises Knacken, bekomme aber kein TV-Ton via HDMI.


    Nachtrag:
    Auch wenn ich das mit den udev-Regeln noch nicht durchdrungen habe:
    Diese 40-sound-card-added.rule gibt es nur im Template-Bereich. Unter /etc/udev/rules.d gibt es diese Rule nicht. Kommt diese Rule so überhaupt zur Anwendung?

    MfG
    Thomas


    yaVDR 0.5: MSI K9AG Neo2-Digital, Athlon X2 BE-2400, RAM: 4GB; HDMI: ZOTAC GT610; HDD: 3TB; DVB-S2: 2x TBS-6981 Doppel-Tuner; FB: Pollin X10
    Streaming-Clients: S100 mit 2,5"-HDD unter Zendeb 0.3 von Egalus

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von Thyor ()

  • Zitat

    Original von Thyor
    Diese 40-sound-card-added.rule gibt es nur im Template-Bereich. Unter /etc/udev/rules.d gibt es diese Rule nicht. Kommt diese Rule so überhaupt zur Anwendung?


    Ich selbst nutze yaVDR (noch) nicht. Habe mir nur einiges abgeschaut.


    Wie wird denn dann das Event sound-card-added erzeugt?
    Ohne das Event würde das Frontend ja nur beim Event vdr-frontend-restart aufgerufen werden.

    HW: Gigabyte EP41-UD3L | Core2Duo 7400 | 2GB Kingston | MSI N220GT-MD1GZ (passiv) | L4M-Twin S2 ver 6.5 mit Flex S2 | Silverstone LC16M mit iMON VFD | Samsung LE46B750
    SW: Xubuntu 14.04 3.13.0-24 | NVIDIA 304.117 | vdr 2.1.6 | softhddevice | inputlirc | lcdproc

  • vdr-frontend-restart wird ja aus openbox-tools.conf geraised, wenn vdr.conf läuft.
    openbox-tools.conf wird von openbox.conf gestartet.
    Es funktioniert also immer auch ohne sound-card-added

    HW: Gigabyte EP41-UD3L | Core2Duo 7400 | 2GB Kingston | MSI N220GT-MD1GZ (passiv) | L4M-Twin S2 ver 6.5 mit Flex S2 | Silverstone LC16M mit iMON VFD | Samsung LE46B750
    SW: Xubuntu 14.04 3.13.0-24 | NVIDIA 304.117 | vdr 2.1.6 | softhddevice | inputlirc | lcdproc

  • Zitat

    Original von steffen_b
    Dann ist die sinnvolle Variante wohl die von Thyor :) ^^


    Ja, scheint so.


    Aber wozu gibt es dann (started vdr and openbox-started and sound-card-added) ?

    HW: Gigabyte EP41-UD3L | Core2Duo 7400 | 2GB Kingston | MSI N220GT-MD1GZ (passiv) | L4M-Twin S2 ver 6.5 mit Flex S2 | Silverstone LC16M mit iMON VFD | Samsung LE46B750
    SW: Xubuntu 14.04 3.13.0-24 | NVIDIA 304.117 | vdr 2.1.6 | softhddevice | inputlirc | lcdproc

  • bei meinen Club 3D GT 220 kommt auch keine sound über HDMI.


    habe von yavdr seite das ausgeführt


    sudo apt-get install linux-backports-modules-alsa-lucid-generic


    aber kommt kein sound über HDMI was kann ich oder soll ich machen ?

  • Hi,


    Zitat

    Sambo schrieb:
    sudo apt-get install linux-backports-modules-alsa-lucid-generic


    Wie schaut es mit den anderen Schritten (z.B. "ent-muten") aus? Was sagt sudo aplay -l ?
    Gehen Testsignale?


    Zurück zu den Rules:
    So weit ich das bisher nachvollziehen konnte, hat goldbär recht.
    /etc/init/frontend wird ausschliesslich über das Event vdr-frontend-restart gestartet.
    Der Event sound-card-added wird von keiner aktiven Rule gesetzt.
    Das warten auf die Soundkarte würde vermutlich auch durch das ver-oder-te Event vdr-frontend-restart unwirksam sein.

    MfG
    Thomas


    yaVDR 0.5: MSI K9AG Neo2-Digital, Athlon X2 BE-2400, RAM: 4GB; HDMI: ZOTAC GT610; HDD: 3TB; DVB-S2: 2x TBS-6981 Doppel-Tuner; FB: Pollin X10
    Streaming-Clients: S100 mit 2,5"-HDD unter Zendeb 0.3 von Egalus

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Thyor ()

  • bei aplay -l


    card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
    card 0: NVidia [HDA NVidia], device 7: NVIDIA HDMI [NVIDIA HDMI]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
    card 0: NVidia [HDA NVidia], device 8: NVIDIA HDMI [NVIDIA HDMI]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
    card 0: NVidia [HDA NVidia], device 9: NVIDIA HDMI [NVIDIA HDMI]
    Subdevices: 1/1
    Subdevice #0: subdevice #0


    card 0 wegen on board sound ausgeschaltet ist sonst wird als card 1 erkannt


    Testsignale kommen nur Rauschen bei alle kanäle

  • Hi,


    das sieht doch schon prima aus!


    Was heisst hier "Testsignale kommen nur Rauschen auf allen Kanälen"!
    Das muss heissen: "Es klappt, es kommt auf allen 4 Kanälen schon Rauschen an!"


    Ich würde jetzt mit der Anpassung der /etc/modprobe.d/sound.conf (s. erster Beitrag des HowTo) weitermachen.

    MfG
    Thomas


    yaVDR 0.5: MSI K9AG Neo2-Digital, Athlon X2 BE-2400, RAM: 4GB; HDMI: ZOTAC GT610; HDD: 3TB; DVB-S2: 2x TBS-6981 Doppel-Tuner; FB: Pollin X10
    Streaming-Clients: S100 mit 2,5"-HDD unter Zendeb 0.3 von Egalus

  • Hi,


    was hast du gemacht, was waren die Zwischenergebnisse?


    z.B. Konntest du die Zahl der Devices auf eins reduzieren?
    Was steht jetzt in der via /etc/modprobe/sound.conf und was sagt jetzt aplay -l?

    MfG
    Thomas


    yaVDR 0.5: MSI K9AG Neo2-Digital, Athlon X2 BE-2400, RAM: 4GB; HDMI: ZOTAC GT610; HDD: 3TB; DVB-S2: 2x TBS-6981 Doppel-Tuner; FB: Pollin X10
    Streaming-Clients: S100 mit 2,5"-HDD unter Zendeb 0.3 von Egalus

  • ja die Device zahl war noch 1 als ich das in die /etc/modprobe.d/sound.conf


    dies eintrag und neu gebootet habe


    Code
    1. options snd-hda-intel enable_msi=0 probe_mask=0xfff2
    2. alias snd-card-0 snd-hda-intel
    3. alias sound-slot-0 snd-hda-intel


    bei aplay -l bekomme dieser Ausgabe

    Code
    1. aplay -l
    2. **** Liste der Hardware-Geräte (PLAYBACK) ****
    3. Karte 0: NVidia [HDA NVidia], Gerät 3: NVIDIA HDMI [NVIDIA HDMI]
    4. Sub-Geräte: 1/1
    5. Sub-Gerät #0: subdevice #0

    das Rauschen ist auch nicht mehr vorhanden



    asound.conf den eintrag wie hier eingetragen


    Code
    1. pcm.!default {
    2. type hw
    3. card 0
    4. device 3
    5. }


    alsamixer habe ich auch gemountet trotzdem kommt kein sound raus
    unter Windows geht die sound über HDMI ich glaube meine wird noch nicht von linux unterstützt

  • Hi,


    so sieht das alles recht vertraut aus!


    Die Karte ist definitiv ent-mutet? (Da muss im Kästchen 00 stehen!)
    Die alsa-mixer-Einstellung ist gespeichert? Nach einem reboot sollte da wieder 00 stehen!


    Die letzte Hürde die evtl. noch zu nehmen ist, war das Problem, dass der yaVDR schneller oben ist, als die HDMI-Soundkarte. Bei mir höre ich da ein leises Knacken ca. 2-3 Sekunden nach dem ersten TV-Bild, aber kein TV-Ton.
    Durch das Ändern der Sound-Einstellung über das yaVDR-Webmenü (Wechsels zwischen HDMI-Stereo und HDMI-Passthrough) oder auch VDR-Restart kommt i.d.R. der Sound dann doch noch durch.


    Da das keine Dauerlösung ist, kann man wie oben beschrieben, in der /etc/init/vdr-frontend.conf eine Warteschleife einbauen, die auf die NVidia-Karte wartet. Wenn es funktioniert, dann sollte man die Änderung in den Templates hinterlegen, sonnst kann die Änderung bei einem Update verloren gehen.

    MfG
    Thomas


    yaVDR 0.5: MSI K9AG Neo2-Digital, Athlon X2 BE-2400, RAM: 4GB; HDMI: ZOTAC GT610; HDD: 3TB; DVB-S2: 2x TBS-6981 Doppel-Tuner; FB: Pollin X10
    Streaming-Clients: S100 mit 2,5"-HDD unter Zendeb 0.3 von Egalus

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von Thyor ()

  • Hi,


    Zitat

    hotzenplotz5 schrieb:
    alsamixer und dann mit F6 mal sehen ob du "richtig" bist


    Hmm der Tipp ist sicherlich nicht falsch, aber aplay hat doch in diesem Fall nur noch eine Karte angezeigt, warum sollte man dann im alsamixer mit F6 (Auswahl Soundkarte) noch neues auswählen können?

    MfG
    Thomas


    yaVDR 0.5: MSI K9AG Neo2-Digital, Athlon X2 BE-2400, RAM: 4GB; HDMI: ZOTAC GT610; HDD: 3TB; DVB-S2: 2x TBS-6981 Doppel-Tuner; FB: Pollin X10
    Streaming-Clients: S100 mit 2,5"-HDD unter Zendeb 0.3 von Egalus