Beiträge von Casandro

    Bei mir funktioniert es nicht. Was kan ich tun um heraus zu finden, woran es liegt?


    Mein Fernsehgerät bietet die Möglichkeit an, eine "FB-Durchleitung" zumachen, sowie auf dem Bus nach Geräten zu suchen. Da findet er aber nur meinen AV-Receiver. Bis auf ein Kabel habe ich auch alles zwischen der Karte und dem Fernsehgerät überprüft, bzw. ausgetauscht.

    Ach ja, man muss noch CEC im Menü einschalten. Ja, ich bin ein Depp!

    Ich probier mal aus, load_file zu serialisieren. Sprich am Anfang schau ich nach, ob eine globale Variable einen bestimmten Wert hat, wenn ja, so warte ich in einer While-Schleife. Das scheint aber zu einem Watchdog Timer Überlauf zu führen. Ich probier es mal aus in dem ich dann direkt raus springe.


    OK, ich war doof, wenn ich zuerst die Variable setze, und dann prüfe ob sie schon gesetzt ist.... Ja ich bin doof.


    Ich probier das aber jetzt so, dass dort einfach ein return ausgeführt wird.


    Also es scheint noch an anderen Stellen Fehler zu geben.

    Also ich hab jetzt ein wenig experimentiert und ein paar Debugausgaben gemacht


    Somit wird von einem Prozess folgendes augeführt:
    cFilterEEPG::Process
    cFilterEEPG::ProcessNextFormat
    (nimmt dann die Verzweigung mit Freeview
    cFilter EEPG::ReadFileDictionary
    load file
    (kehrt von hier _nicht_ zurück)
    Der zweite Prozess macht das selbe und VDR stürzt ab.


    Ich vermute, dass der Fehler in load file liegt. Und dann auftritt, wenn die Funktion 2 mal gleichzeitig ausgeführt wird.

    OK ich hab a) gemacht, mit einem "fix". Der "fix" besteht allerdings darin, einfach ein paar Codezeilen zu löschen.


    Mal vielleicht eine blöde Frage. Ich könnte einen Rechner mit DVB-S Karten für euch aufsetzen, falls ihr Sachen auf 28,2° Ost oder 9,0° Ost, würde euch das helfen? Ihr könntet da das root-Passwort dafür haben.

    Leider sind meine Kenntnisse von C und C++ sowie gdb sind jetzt ziemlich beschränkt.


    Hmm...
    Vor dem Absturz passiert immer folgendes:
    Thread A schreibt "Filter Pid:...."


    und sobald Thread B den selben String schreibt, stürzt VDR ab.


    Offensichtlich passiert das immer wenn beide Prozesse AddFilter (0x30,0xa0,0xfc); aufrufen. Das passiert in Zeile 3718 von eepg.c. Ich hab das mal, gemeinsam mit dem if-statement davor auskommentiert. Und werde das gleich neu übersetzen und ausprobieren.

    Nein, der ist, so weit wie ich das verstehe, von euch. Der Fehler tritt zur Zeit grob alle 15-30 Minuten auf, manchmal aber auch über ein paar Tage hinweg nicht.


    Es scheint im Moment so zu sein, dass der Fehler nur dann auftritt, wenn 2 eepg-Threads gleichzeitig laufen. Ich beschäftige im Moment 3 meiner 4 Karten. Ein eepg-Prozess arbeitet. Gegen 17:00 sollte ich sagen können, ob er dann nochmals abgestürzt ist.


    Also zwischen 16:36 und 17:00 stürzte der VDR nicht ab. Seit 17:02 lasse ich 2 EPG-Scan Prozesse auf Freesat-Transpondern laufen.


    Und *bamf* um 17:10 stürzte der VDR ab, nach dem 3 Karten frei waren. Ich denke da kann man schon von einer Korrelation sprechen.
    17:13 noch ein Absturz
    17:19 noch ein Absturz


    Das eepg-Plugin gibt ja von Zeit zu Zeit lange Listen aus. Wenn 2 Prozesse das gleichzeitig tun wollen, dann scheint ein Absturz zu passieren.

    Also ich muss dazu vielleicht anmerken, dass die Kiste mit einem Ubuntu 10.4 läuft. :( Kann im Moment leider nicht umstellen, da die Kiste auch noch andere Sachen macht. Ich glaube aber nicht, dass es daran liegt.


    eepg hat laut apt-cache show vdr-plugin-eepg
    Architecture: amd64
    Version: 0.0.3-18yavdr1


    Meine Positionen sind:
    13° Ost
    9° Ost
    19° Ost
    28° Ost


    VDR hat die Version 1.7.15


    Ich habe 3 DVB-S Karten und eine DVB-S2. Vielleicht liegt es ja daran, dass eepg auf mehren Threads gleichzeitig läuft. Ich werde mal probieren, 3 meiner 4 Karten beschäftigt zu halten um zu sehen ob das dann immer noch passiert.


    Der Fehler tritt schon längere Zeit auf. Mindestens seit Mai.

    eepg lässt den VDR ohne Fehlermeldung abstürzen.


    In /var/log/messages findet sich nur
    Sep 25 14:42:22 vdr kernel: [ 342.673552] section handler[2077]: segfault at 0 ip 00007f61ecd9c022 sp 00007f61de1f9358 error 4 in libc-2.11.1.so[7f61ecd19000+17a000]


    In der /var/log/messages findet sich dazu folgendes:
    Sep 25 14:42:13 vdr vdr: [2077] | 1666 | -2-2040-12035-0 | | NO | 135 |
    ...
    Sep 25 14:42:14 vdr vdr: [2080] | 6015 | -2-2036-12140-0 | | NO | 103 |
    Sep 25 14:42:15 vdr vdr: [2080] | 6020 | -2-2049-10020-0 | | NO | 103 |
    Sep 25 14:42:16 vdr vdr: [2077] Filter Pid:30,Tid:a0,Mask:fc added.
    ...
    Sep 25 14:42:17 vdr vdr: [2080] | 1309 | -2-2023-4914-0 | | NO | 401 |
    Sep 25 14:42:19 vdr vdr: [2080] Filter Pid:30,Tid:a0,Mask:fc added.
    Sep 25 14:42:22 vdr runvdr: restarting VDR


    Wenn ich das eepg-Plugin entferne so läuft der VDR problemlos.

    Ubuntu 10.04.1 mit dem yavdr Paketen


    Epgsearch macht bei mir keine Timer mehr. Wenn ich über das live-Plugin die Testen-Funktion verwende kommen aber Suchergebnisse. Bis letzte Woche ging noch alles. Dann habe ich ein Update eingespielt. Seit dem läuft xineliboutput deutlich stabiler.

    Immer nach dem Umschalten eines Videostreams hängt bei mir vdr-sxfe. Im user.log finden sich viele Einträge wie diese:

    Code
    Jun 27 16:43:54 vdr vdr: [4295] [xine..put] write_osd_command: poll failed, OSD send skipped 
    Jun 27 16:43:54 vdr vdr: [4295] [xine..put] OSD bandwidth: 518787 bytes/s (4053 kbit/s) 
    Jun 27 16:43:54 vdr vdr: [4121] [xine..put] cXinelibServer::Play Buffer overflow (TCP/PIPE) 
    Jun 27 16:43:54 vdr vdr: last message repeated 67 times


    Anscheinend läuft der VDR selbst weiter. Vor dem Update auf 10.4 ging das alles. :)


    vdr-sxfe hängt sich genau dann auf, wenn der Stream gewechselt wird, auch beispielsweise beim Abspielen von Aufzeichnungen.


    Ahh Lösung:
    apt-get install vdpauinfo
    apt-get install xineliboutput-sxfe


    Jetzt gehts. Im Moment zwar noch kein Ton, aber das ist ein kleineres Problem, vermutlich nur der Mixer.
    (Lösung apt-get remove pulseaudio)

    Zitat

    Originally posted by timscho
    ich bekomme nicht mal das erste ACK-bit nach der device-Adresse.


    Schon mal einfach alle Adressen durchprobiert? Vielleicht läuft Dein Tuner ja auf einer anderen Adresse?

    Es funktioniert jetzt mit einem sehr alten Umschalter. (so ungefähr Baujahr 2000)
    2 Andere hab ich probiert, die gingen nicht.
    Die Bits werden richtig ausgegeben, nur es scheint so, als ob gleichzeitig zum 22 kHz-Signal auch noch ein 26 kHz Signal ausgegeben wird.Das war wohl ein Messfehler!!! Auf einem anderen Reciever schaut das genau so aus. Wenn das kein Messfehler von mir ist (gut möglich), dann wäre das ein schweres Problem mit der Karte, evtl. ausgelöst durch einen kaputten Treiber. Ich forsch mal weiter. Eine richtige Lösung ist das jedenfalls nicht, da nicht jeder die DiSEqC-Umschalter wechseln kann, weil die beispielsweise im Multischalter drin sind.

    Zitat

    Originally posted by IG88
    hi,
    versuch doch einfach mal einen anderen diseqc switch, kostet nicht so viel, spart vieleicht zeit und ist billiger als die 1600er zu verkaufen
    letztlich soll es funktionieren, egal von welcher seite man das löst?


    Naja, die anderen 5 baugleichen Diseqc-Switche funktionieren, auch der an diesem Anschluss funktioniert mit den anderen Karten. Ein anderer Diseqc-Switch garantiert mir auch nicht, dass das Problem gelöst wird.
    Ich messe mal nach, was die Karte denn raus schickt.

    Zitat

    Originally posted by IG88
    nimm die sourcen von linuxtv.org, compilier und installier sie
    ich benutz hier auch nur 4 supper billige 4fach diseqc schalter und es funkioniert


    Schon mehrmals probiert mit unterschiedlichen Versionen.
    Ich hab da billige 2fach Diseqc Schalter.


    Ich kann ja irgendwann mal nochmal meinen eigenen Kernel bauen.

    Also ich hab jetzt mein Ubuntu neu aufgesetzt, und gleich die yavdr Pakete installiert, inklusive der s2-Treiber die da drin sind. Diseqc funktioniert immer noch nicht. Der Rest funktioniert, selbst DVB-S2. (Es gibt auf Astra 19,2° Ost, ein paar Test-Transponder)

    Zitat

    Originally posted by IG88
    und du hast auch genau diesen link verwendet?
    welche kernel version hat du?


    Ich probier jetzt das unter dem Link, und
    Linux vdr 2.6.31-21-generic #59-Ubuntu SMP Wed Mar 24 07:28:27 UTC 2010 x86_64 GNU/Linux

    Also der linuxtv.org-Treiber zickt bei mir beim Compilieren. Auch wenn ich den Treiber für die Firewire Karte deaktiviere stoppt er bei ir-raw-event.