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).
Dann eine neue Datei anlegen und editieren (/etc/modprobe.d/sound.conf)
options snd-hda-intel enable_msi=0 probe_mask=0xfff2
alias snd-card-0 snd-hda-intel
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:
aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: NVidia [HDA NVidia], Gerät 3: NVIDIA HDMI [NVIDIA HDMI]
Sub-Geräte: 0/1
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
Zitatalsamixer
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
wird die Einstellung gespeichert.
Im yaVDR-Webfrontend unter System/Sound HDMI Stereo anklicken und "Setze Soundeinstellungen"
Damit wird die /etc/asound.conf gesetzt:
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:
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
Ich hoffe mal, alle wesentlichen Schritte beschreiben zu haben.
Hilfreich waren auch:
Ausgabe Testsignal (hier Karte 0, Gerät 3):