Moin,
ich hatte mich ein Wenig zu früh gefreut. Beim Test hat's zwar geklappt, aber Timeraufnahmen funktionieren trotzdem nicht.
Das Problem war, das mein Programm nicht wartet, ob /sys/class/ddbridge/ddbridge0/redirect existiert, sodass die Umleitung nicht wirklich eingerichtet werden kann. Ich habe den Code wie folgt erweitert:
#include<stdio.h>
#include<unistd.h>
main()
{
FILE * pFile;
int i=0;
while (!(pFile = fopen("/sys/class/ddbridge/ddbridge0/redirect","w")) && i<10)
{
sleep(1);
i++;
}
if (pFile != NULL)
{
fputs ("00 02", pFile);
fclose (pFile);
}
}
Display More
Damit wird zunächst getestet, ob /sys/class/ddbridge/ddbridge0/redirect existiert. Falls nicht, wird 1s gewartet und ein neuer Versuch gestartet, max. werden 10 Versuche gemacht. Bei Erfolg wird die Redirection aktiviert.
Damit funktioniert es auch nach einem Suspend/resume, zumindest beim Testen. Bin mal gespannt, ob damit Timeraufnahmen funktionieren.
Übrigens habe ich herausgefunden, dass Redirection auch eingeschaltet werden kann, wenn auf die Karte zugegriffen wird. Ich habe die Änderungen oben bei laufendem vdr durchgeführt, vdr brachte "Kanal nicht verfügbar". Sobald ich fertig war und mein Programm testweise gestartet habe, wurde der Kanal sofort hell.
Sebi