yaVDR startet nicht richtig, Sound Problem

  • Jop sicherlich auch eine Variante,


    aber nun nächstes Problem


    Code
    tv@vdr:~$ cat /proc/asound/cards
     0 [CX8811_1   	]: CX88x - Conexant CX8811
                      	Conexant CX8811 at 0xdf000000
     1 [CX8811     	]: CX88x - Conexant CX8811
                      	Conexant CX8811 at 0xdb000000
    tv@vdr:~$


    Warum ist die HDMI Karte auf einmal weg? syslog.txt


    Nach einem Neustart kommt die auch nicht wieder.


    05:00.1 Audio device: NVIDIA Corporation GF108 High Definition Audio Controller (rev a1)


    Die Karte ist aber da.

    yaVDR 0.50a Xine, Asus P5LD2-SE, Core2Duo E6400, 3GByte RAM, Asus GT430 Silent, 2x Nova HD2, OS auf SD to SATA mit 16GByte SD Karte, Filme auf 1TB HDD

  • Code
    Dec 27 10:56:21 vdr kernel: [   18.510960] hda-intel: Error creating card!
    Dec 27 10:56:21 vdr kernel: [   18.510992] snd_hda_intel: probe of 0000:05:00.1 failed with error -16


    Früher im syslog sieht man auch, dass vesafb geladen wird. Ich hab da nun nicht so viel Ahnung von den Grafiktreibern, aber beißen die sich vielleicht?


    Das mit "index=1,2" ist keine Variante, sondern ein Muss... :) Man kann nicht für einen Treiber verschiedene options-Zeilen haben. Da greift nur eine von.
    Mittlerweile hab ich aber schon ein wenig mehr gelesen. "index" geht zwar noch, ist aber die alte Methode, um eine Reihenfolge von Karten zu bestimmen. Besser ist wohl die "slots"-Methode, siehe http://alsa.opensrc.org/MultipleCards, Abschnitt 5.2.
    Versuche doch mal sowas:

    Code
    options snd slots=snd_hda_intel,cx88_alsa


    Und die anderen Zeilen mit "index" entfernst du wieder.


    Lars.

  • Was hast du denn jetzt genau an Moduloptionen gesetzt? Nicht dass da ein essentielles Modul geblacklistet wurde oder aufgrund falscher Optionen nicht geladen werden kann...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Es ist auch schon erstaunlich, was in der default-Installtion so alles nötig ist, damit alsa-Treiber "richtig" laden.
    Mach mal

    Code
    grep snd /etc/modprobe.d/*


    Lars.

  • Hallo, am Ende nutze ich nur


    /etc/modprobe.de/sound.cards-order mit dem Inhalt


    Code
    options snd slots=snd_hda_intel,cx88_alsa


    damit die Soundkarten richtig sortiert werden. Hab das Ding jetzt 30 mal neu gestartet, kam immer wieder hoch.


    grep snd /etc/modprobe.d/* brachte


    grep_modprobe.txt


    Interessant finde ich die alsa-base.conf.

    yaVDR 0.50a Xine, Asus P5LD2-SE, Core2Duo E6400, 3GByte RAM, Asus GT430 Silent, 2x Nova HD2, OS auf SD to SATA mit 16GByte SD Karte, Filme auf 1TB HDD

  • Ich denke, dann ist für dich das Problem gelöst.
    Meine onboard und die nvidia werden beide von snd_hda_intel betrieben, deshalb scheint es da auch eine stabile Reihenfolge zu geben.


    Momentan setze ich mich ein wenig mit der Alsa-API auseinander... Hab zwar schon schlimmeres gesehen, aber auch viel besseres...


    Lars.

  • hocker
    Da du zwei Soundkarten des gleichen Typs hast, magst du mir mal ein paar Ausgaben schicken?

    Code
    for d in /dev/snd/pcmC*p; do udevadm info --query=all --name=$d --attribute-walk; done


    Vielleicht finden wir eine einfache Möglichkeit, eine Soundkarte über den Namen anzusprechen statt über die Nummer. Dann wäre die Reihenfolge nicht mehr so wichtig.


    Lars.

  • Klar, solange es ein Testsystem ist.... können wir probieren. Hab auch keinen festen Zeitplan wann das Ding in Betrieb gehen soll.


    Das Problem ist ja, das der Treibername der selbe ist. Aber ich finde es wirklich komische das dieses Problem nicht viele haben. Eigentlich müsste das jeder haben. Edit: selbst wenn ich die sound-card-order außer kraft setze, alle Karten anschalte und auf Ausgabe auf alle Karten stelle gehts nicht, schon komisch.


    So wie ich das interpretiere hat man nur über eindeutige Adressen einen Chance,


    Code
    ATTRS{vendor}=="0x8086"
    	ATTRS{device}=="0x27d8"
    	ATTRS{subsystem_vendor}=="0x1043"
    	ATTRS{subsystem_device}=="0x817f"


    Alles andere wird ja vom Kernel vergeben, oder sehe ich das falsch, aber was macht man, wenn man 2 identische Karten drin hat? Dann dürfte dieser abschnitt ja auch gleich sein

  • Moin!


    Keine Sorge, ich werde dich nichts machen lassen, was dein System durcheinanderbringt - zumindest nicht irreversibel... :)
    Das mit den Soundproblemen kam immer mal wieder, wenn es vielleicht auch nicht viele Threads gibt, weiß man nie, wie viele dieses Problem hatten, es aber aufgrund der Informationen selbst lösen konnten.


    "Ausgabe auf allen Geräten": keine Ahnung, ob das jemals vernünftig funktioniert hat...


    Wir haben den Fehler gemacht und benutzen die Karten- und Gerätenummer, um softhddevice (oder xine/liboutput) das Audiogerät mitzuteilen. Mittlerweile bin ich aber mal dazugekommen, die ALSA-Api ein wenig quer zu lesen und habe herausgefunden, dass man auch gewisse Namen einsetzen kann. "default" entspricht z.B. "hw:0,0" (wenn nicht anders über die asound.conf eingestellt). In meinem Testsystem habe ich eine onboard-Karte und die NVidia-Grafikkarte.


    Da ich nur einen Monitor per VGA angeschlossen habe (am analogen Eingang kann der 50Hz), hab ich noch ein Klinkenkabel in den Monitor von der onboard-Karte. Dazu muss ich normalerweise "hw:0,0" addressieren, hab jetzt aber gelernt, dass ich z.B. auch "hw:CARD=Intel,DEV=0" angeben kann. Wenn man also immer die NVidia-Karte ansprechen will, sollte sowas immer gehen: "hw:CARD=NVidia,DEV=3" (DEV muss ggf. angepasst werden).
    Testen kann man das mit

    Code
    export ALSA_DRIVER="hw:CARD=NVidia,DEV=3"


    in /etc/default/vdr (ggf. per Template, wenn man das behalten will).
    Der Name hinter CARD entspricht dem, was in der aplay-Ausgabe direkt hinter "card x:" steht.
    Wenn du Lust hast, dann teste das mal mit ALSA_DRIVER und ändere die Reihenfolge der Soundkarten mal. Wenn ich Recht habe, dann sollte die jetzt egal sein.
    Wobei ich jetzt nicht weiß, ob xine das auswertet oder nicht, ich teste nur mit softhddevice.


    Das einzige, was wir dann noch lösen müssen, ist, den Start von vdr-frontend so lange zu verzögern, bis die Soundkarte bereit ist. Im unstable-Branch nutzen wir dafür ein kleines Script, was per udev die initialisierten Karten abfragt und sich beendet, sobald es die gewünschte findet. Das arbeitet aber noch mit der card-Nummer, das müssen wir erst noch ändern. Und es ist eben noch im unstable-Bereich, der ist nichts für dich... :)
    Ach ja, und eine vernünftige Auswahl im WFE muss auch noch eingebaut werden. Sind noch ein paar Puzzleteile, aber solche Ausgaben wie von dir helfen dabei.


    Der cx88_alsa-Treiber scheint nur Capture-Devices zu erstellen, sonst wäre er in der obigen Ausgabe mit dabei.
    Zeig mal bitte "ll /dev/snd", dann müsste man die sehen als "pcm*c".


    Lars.

  • bSorry das ich mich so lange nicht gemeldet hab, war immer kurz angebunden und hatte nicht viel Zeit für lange Bastelarbeiten.


    Also ich hab die reinfolge geändert:


    /etc/modprobe.d/sound-cards-order

    Code
    #options snd slots=snd_hda_intel,cx88_alsa
    options snd slots=cx88_alsa,snd_hda_intel


    /etc/asound.conf

    Code
    # pcm.!default {
    #   	type hw
    #   	card 0
    #   	device 9
    #}
    #pcm.!hw:CARD=NVidia,DEV=9
    export ALSA_DRIVER="hw:CARD=NVidia,DEV=9"


    gehen beide Varianten nicht. Oder die falsche Datei?

    yaVDR 0.50a Xine, Asus P5LD2-SE, Core2Duo E6400, 3GByte RAM, Asus GT430 Silent, 2x Nova HD2, OS auf SD to SATA mit 16GByte SD Karte, Filme auf 1TB HDD

Jetzt mitmachen!

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