Seite 1 von 1

FreeNFS für Windows XP (Vista, 7) funktioniert nicht

Verfasst: Mittwoch 30. Dezember 2009, 22:14
von mrvica
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

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
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:

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;
	}
mit dem Attribut 664 klappts dann, bitte record.cpp entsprechend ändern, die Aufnahmen brechen nicht mehr ab

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
konnte bis jetzt keine Nachteile feststellen, es geht ja nur darum mit welchen Rechten die .ts Datei beim Aufnehmen angelegt wird

mrvica

Re: FreeNFS für Windows XP (Vista, 7) funktioniert nicht

Verfasst: Montag 4. Januar 2010, 21:25
von rhabarber1848