Hallo
Ich hab mich jetzt auch mal darüber gemacht ein den VDR (1.26) zu installieren auf Debian Sarge mit Kernel (2.4.27-ctvdr-1) und den em8300 (0.14) Treibern, und ich muß sagen ich bin erschüttert.
Also wenn mein VDR 2min am Leben bleibt ohne das das OSD ihn vorher killt kann ich schon zufrieden sein, und das kanns doch beim besten Willen nicht sein.
das verdient ja noch nicht mal den namen "unstabil" das is ja schon geradezu "miserabel".
Aber gut meckern kann jeder, ich hab versucht des Ding stabiler zu bekommen (bis jetzt ohne Erfolg). Ich hab die Sufu gequält, VDR-Wiki, und divers. andere Websites bemüht, leider ohne wirklich Abhilfe zu finden.
Da ich auch ein paar Kenntnisse in c/c++ habe, entschloss ich mich herauszufinden woher die Fehlermeldung "fifo full, trying stop ...", die ja wohl offenbar mit den Abstürzen zusammenhängt, eigentlich kommt. Dazu hab ich mich in die Quellen des em8300-Treibers hineingewühlt und bin zu dem Schluß gekommen das (wenn ich das richtig verstehe) der treiber fifo's benutzt um die Daten an die devices zu schicken (/dev/em8300_ma, /dev/em8300_mv). Diese sind in der Struktur "struct em8300_s" definiert und heißen "mvfifo" (Video) und "mafifo" (Audio).
kleiner Auszug:
struct em8300_s
{
...
/* Fifos */
struct fifo_s *mvfifo;
struct fifo_s *mafifo;
struct fifo_s *spfifo;
int mtrr_reg;
...
}
zu finden in em8300-xxx/include/linux/em8300.h
Ich denke die mvfifo läuft über --> Frage: Warum?
Dazu hab ich mal nach der Fkt. gesucht die für diese Fehlermeldung zuständig ist.
Sie heist "em8300_fifo_freeslots" ist zu finden in em8300-xxx/modules/em8300_fifo.c und wird von der Fkt. "em8300_fifo_writeblocking_nolock" aufgerufen.
kleiner Auszug:
if (running)
{
interruptible_sleep_on_timeout(&fifo->wait, HZ);
if (!em8300_fifo_freeslots(fifo))
{
printk("Fifo still full, trying stop %p\n", fifo);
em8300_video_setplaymode(em, EM8300_PLAYMODE_STOPPED);
em8300_video_setplaymode(em, EM8300_PLAYMODE_PLAY);
...
}
Da leider die Quellcode-Dokumentation sehr spärlich, um nicht zu sagen kaum vorhanden ist. Ist es zumindest für mich recht schwer nachzuvollziehen was hier eigentlich geschieht.
Google war da leider auch keine große Hilfe.
Meine Frage:
Hat sich schon mal jemand die Mühe gemacht, und sich durch den Kram gearbeitet, oder weiß zumindest wo es eine Dokumentation zu den Quelltexten gibt. ich kämpf mich da auch gerne weiter durch aber ohne Doku ist das schlecht.
Ansonsten, danke, Leute! Über probleme sprechen soll ja auch schon helfen
ein paar Daten:
Karte: Hollywood+ (adv1770)
OS: Debian Sarge
VDR: 1.26
Treiber: em8300 (0.14.0)
dxr3-Plugin: 0.2.1