FreeNFS für Windows XP (Vista, 7) funktioniert nicht
Verfasst: Mittwoch 30. Dezember 2009, 22:14
http://freenfs.sourceforge.net/
Aufnahmen mit FreeNFS funktionieren unter Enigma nicht, mit AllegroNFS und anderen keine Probleme, bin der Sache etwas näher gekommen, beim Recorden werden .eit und .ts Datei angelegt, die .eit Datei bekommt den a (archiv Attribut), ist OK so, die .ts datei ra (read only, archiv), wieso auch immer, weil sie read only ist, kann man sie dann nicht überschreiben, updaten, die Aufnahme bricht immer mit der Meldung "Record failed due to an write error during recording. Check for filesystem corruption." ab. Nach einem Tipp von rhabarber1848 konnte ich den Fehler finden, in ../lib/dvb/record.cpp steht folgendes, die .ts Datei bekommt das Attribut 555, die .eit Datei in enigma_main.cpp dagegen 777
habe den Code geändert, habe mit Attribut 777 versucht, derselbe Fehler, den entscheidenden Tipp habe ich aus tuxbox Sourcen bekommen .../dvb_test/test_dvr.c , da steht folgendes:
mit dem Attribut 664 klappts dann, bitte record.cpp entsprechend ändern, die Aufnahmen brechen nicht mehr ab
konnte bis jetzt keine Nachteile feststellen, es geht ja nur darum mit welchen Rechten die .ts Datei beim Aufnehmen angelegt wird
mrvica
Aufnahmen mit FreeNFS funktionieren unter Enigma nicht, mit AllegroNFS und anderen keine Probleme, bin der Sache etwas näher gekommen, beim Recorden werden .eit und .ts Datei angelegt, die .eit Datei bekommt den a (archiv Attribut), ist OK so, die .ts datei ra (read only, archiv), wieso auch immer, weil sie read only ist, kann man sie dann nicht überschreiben, updaten, die Aufnahme bricht immer mit der Meldung "Record failed due to an write error during recording. Check for filesystem corruption." ab. Nach einem Tipp von rhabarber1848 konnte ich den Fehler finden, in ../lib/dvb/record.cpp steht folgendes, die .ts Datei bekommt das Attribut 555, die .eit Datei in enigma_main.cpp dagegen 777
Code: Alles auswählen
#ifdef HAVE_DREAMBOX_HARDWARE
outfd=::open(tfilename.c_str(), O_CREAT|O_WRONLY|O_TRUNC|O_LARGEFILE, 0555);
#else
if (access("/var/etc/.no_o_sync", R_OK) == 0)
outfd=::open(tfilename.c_str(),O_CREAT|O_WRONLY|O_TRUNC|O_LARGEFILE, 0555);
else
outfd=::open(tfilename.c_str(),O_SYNC|O_CREAT|O_WRONLY|O_TRUNC|O_LARGEFILE, 0555);
#endif
Code: Alles auswählen
fprintf(stderr, "using '%s' and '%s'\n"
"writing to '%s'\n", dmxdev, dvrdev, argv[1]);
tsfd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC | O_LARGEFILE, 0664);
if (tsfd == -1) {
perror("cannot write output file");
return 1;
}
Code: Alles auswählen
#ifdef HAVE_DREAMBOX_HARDWARE
outfd=::open(tfilename.c_str(), O_CREAT|O_WRONLY|O_TRUNC|O_LARGEFILE, 0664);
#else
if (access("/var/etc/.no_o_sync", R_OK) == 0)
outfd=::open(tfilename.c_str(),O_CREAT|O_WRONLY|O_TRUNC|O_LARGEFILE, 0664);
else
outfd=::open(tfilename.c_str(),O_SYNC|O_CREAT|O_WRONLY|O_TRUNC|O_LARGEFILE, 0664);
#endif
mrvica