Aufnahmeverzeichnis nicht beschreibbar...Bug

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
popy
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Freitag 27. April 2007, 23:57

Aufnahmeverzeichnis nicht beschreibbar...Bug

Beitrag von popy »

Hallo.

Hatte bei meiner DBOX2 in den letzten Tagen ein sehr Merkwürdiges Problem (ein Entwickler würde auch Feature dazu sagen :D).

Ich wollte einfach per NFS auf meinen Rechner streamen, aber hab immer den "Aufnahmeverzeichniss nicht beschreibbar" Fehler bekommen.

Zu Beginn mal meine DBOX2 Daten:

1. NOKIA DBOX2 - AVIA500
2. Hallenberg HDD IF
3. Kabelbox
5. Anbieter: LIWEST (AT)


Da mein HDD IF das ich auf IRQ6 umgebaut habe noch immer manchmal mit "lost interrupt" kommt, habe ich mich entschlossen das IF auszubauen und per Netzwerk Streaming aufzunehmen, was den Vorteil hat, das auch die Aufnahmen gleich auf meinem Server liegen, und ich diese nicht per FTP oder anders von der BOX holen muss!

Ich habe alles lt. Nordis Streaming Anleitung (& auch anderen) auf der BOX & meinem Windows Server konfiguriert!

Leider kam immer der Fehler "Aufnahmeverzeichnis nicht beschreibbar"!

Keine Angst ich hab den Mount mit rw Option gemountet! Auch in den Direktaufnahmeeinstellungen hab ich 100% das Richtige Aufnahmeverzeichniss angegeben gehabt.

Genaues Fehlerbild:

1. Der Mount mittels GUI funktioniert ohne Fehler
2. Der Mount taucht in der "Unmount List" des GUIs auf
3. Wenn man per Telnet auf die Box schaut und den Befehl Mount eingibt scheint der korrekt Mount auf
4. Wenn man per Telnet in das gemountete Verzeichniss wechselt und 'ls -l' eingibt sieht man den Inhalt des am Server/PC liegenden Verzeichnisses
5. Man kann ohne Probleme in das gemountete Verzeichniss schreiben, z.B: mit 'touch test1.ts', auch das löschen von vorhandenen Daten funktioniert ('rm')
6. Die letzte Zeile des Aufnahme Logs (bevor er die Aufnahme abbricht) heisst: "[CFileDevice] stream2file error code: -2" (per Telnet mit dem Befehl 'setconsole')
7. Stellt man die Direkaufnahme Option "Bei Sofortaufn. Verzeichnisauswahl" ein und beginnt eine Aufnahme wird das gemountete Verzeichniss angezeigt und danben steht KORERKT der freie Speicherplatz!
8. Neu flashen vom Image hilft nichts (auch kein anderes Image)
9. Es ist egal ob per NFS, CIFS oder FTP (hab alle 3 Protokolle versucht) bei allen Protokollen ist das gleiche Fehlerbild



An Alle die auch die Meldung "Aufnahmeverzeichnis nicht beschreibbar" haben, sollten mal per Telnet prüfen ob Sie in das Verzeichnis per "touch test1.ts" schreiben können, wenn ja, dann habt ihr richtig gemountet, und Ihr müsst nicht eure Mount Optionen bzg. SFU Shares prüfen!!!!!
Das nurmal vorweg!

Die Lösung des Problems:
Nach einigen Schlaflosen Nächten und Prügel von der Freundin Augenzwinkern kam ich gestern Abend mal auf die Idee die Direktaufnahme Option "Lange Dateinamen (mit EPG-Daten)" auszuschalten!

! Und ja, das Aufnehmen funktioniert 100% immer !

Leider werden durch ausschalten der Option keine EPG Daten mehr für den Dateinamen verwendet, und so stellt sich das wiederfinden von AUfnahmen als Problematisch dar!

Also waren Hollo und ich schonmal soweit, das es irgend ein Problem bei de Dateinamenerzeugung ist!!

Nach einigen versuchen mit dem "Vorlage für Dateinamen" String hatten wir eine Erkenntnis was das Problem ist.

Der String sieht Standard so aus: %C_%T_%I_%d_%t

Bedeutungen der Vars lt. Wiki:

%C Kanal (EPG)
%T Titel der Sendung (EPG)
%I zusätzliche Informationen (EPG, Info1)
%d Datum
%t Uhrzeit

Wenn ich %C (=Kanalname) weglasse, die Aufnahme mit eingeschalteter Direktaufnahme Option "Lange Dateinamen (mit EPG-Daten)" testete funktionierte diese!!!!!!! Es fehlte halt logischerweise der Kanalname im Dateinamen!

Mein Problem musste also mit den Kanalnamen zusammenhängen!!
Ich Schaute meine Bouquets durch und mir viel nicht wirklich was ungewöhnliches auf!

Als meine Freundin sagte Auszeit jetzt will ich Fernsehen, musste ich gestern Abend schon fast WO geben. Sie schaltete dann auf Premiere (was in einem anderen Bouquet liegt), und genau da kam mir der Geistesblitz, bei allen Sendern ausser bei Premiere war ein führender "*" im Kanalnamen. Dieser Stern bei allen anderen Sendern außer bei Premiere fiel mir beim durchsehen der Bouquets zuerst nicht auf weil ich nur die ersten 3 Bouquets durchschaute und die hatten alle den "*", dadurch war ich der Annahme das Neutrino das so anzeigt!

Aber Denkste, durch meine Freundin kam ich drauf das dieser bei den Premiere Kanälen fehlte. Also schnell mit Ultraedit per Search&Replace alle Sterne rausgemacht. Liesten neu geladen.

...und Voala, nach einigen Tagen Schlaflosigkeit und Selbstzweifel die Erlösung!!!!!

Die Ursache:

Mein Kabelanbieter (LIWEST AT) hat bei sehr vielen Sendern einen führenden "*" im Namen. Dies führt dazu das der erzeugte Dateinamen aus den EPG Daten für Windows & Linux UNGÜLTIG ist. Darum die Meldung: "Aufnahmeverzeichnis nicht beschreibbar"

Mein Vorschlag:
Da das Dateinamen Problem bei Linux & Windows auftritt würde ich vorschlagen vor der Aufnahme bei der generierung des Dateinamens diesen auf Sonderzeichen wie den * zu prüfen bzw. korrigieren!

Als weitern Test einfach mit dem erzeugten Dateinamen einen 0 Byte Dummydatei in den beschreibbaren Bereich des Flashs schreiben, um so zu prüfen ob der Dateiname korrekt ist. Falls nicht ev. eine GUI Meldung "Erstellter Dateiname ungültig!" oder so ähnlich!

Es wäre toll wenn die genannten Features in den CVS einfließen würden!

Freue mich auf zahlreiche Antworten!

cu
pOpY
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Es wäre toll wenn die genannten Features in den CVS einfließen würden!
Warum sollte es? Du nutzt ja kein legales Image, also sags dem Image bauer selbst.

Gruß Gorcon
popy
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Freitag 27. April 2007, 23:57

Ins CVS einfließen lassen...

Beitrag von popy »

Hallo Gorcon.

Ich finde das echt toll! Da investiere ich & andere Stunden um Stunden ja sogar Tage bis wir den "FEHLER" "BUG" (wie du es auch nennen willst) gefunden haben und dann auch noch ca. 1 Stunde um den Beitrag zu verfassen und dann so etwas!!

Ja ich benutze "kein" legales Image, da ich sonst meine DBOX höchstens als Heizkörper :D verwenden kann! Mein Kabelanbieter hat Conax als Verschlüsselung und ja ich verwende ein Multicam, damit die Karte überhaupt läuft! Bist du jetzt zufrieden!

Dann lebt doch mit diesem "TOLLEN" Feature bis in alle Ewigkeit - Amen!

Wie es aussieht willst du nicht das Euer & natürlich andere Images Fehler Freier werden.

mfg
pOpY
satschuessel

Beitrag von satschuessel »

Gorcon hat geschrieben:Warum sollte es? Du nutzt ja kein legales Image, also sags dem Image bauer selbst.
tolle antwort, kompliment!
da zeigt ein user mal einen bug auf und wird abgewiesen. in einem "legalen" image ist der "bug" wohl nicht drin? *kopfschüttel*

und dann noch die aufforderung, der image-bauer soll selbst diesbezüglich einchecken. damit ihr wieder einen neuen nick auf eure schwarze liste kriegt? daß dieser hier vielleicht auch bei "nicht bösen" sachen mitarbeitet, das interessiert dich ja nicht die bohne!

deine doppelmoral - ich könnte kotzen!

bleibt nur zu hoffen, daß sich doch jemand findet, der das cvs verbessern will ohne drauf zu schauen, woher ein tip zur verbesserung kommt.
NASeweiss
Einsteiger
Einsteiger
Beiträge: 101
Registriert: Mittwoch 25. Oktober 2006, 14:36

Beitrag von NASeweiss »

Mal abgesehen davon, dass es gereicht hätte den Fehler zu beschreiben und den Roman drumherum wegzulassen:

1. Woraus hast Du geschlossen, dass es sich nicht um ein legales Image handelt?
2. kann man hier wirklich gar nix mehr posten ohne als erste Antwort "illegal - schau wie du zurecht kommst" zu bekommen?

Ok - er hats zugegeben; am beschriebenen Problem - ich habe noch nicht versucht nachzuvollziehen ob das reproduzierbar so ist - ändert das allerdings nichts.

NASeweiss
mash4077
Tuxboxer
Tuxboxer
Beiträge: 4654
Registriert: Samstag 27. April 2002, 13:19

Beitrag von mash4077 »

satschuessel hat geschrieben:ich könnte kotzen!
Tue das, aber bitte in einem anderen Forum!

Es ist erstaunlich, dass sich zum "Kotzen" immer extra hier angemeldet wird...

Gruß
mash
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

1. Woraus hast Du geschlossen, dass es sich nicht um ein legales Image handelt?
5. Anbieter: LIWEST (AT)
Es ist erstaunlich, dass sich zum "Kotzen" immer extra hier angemeldet wird...
*rofl*
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Beitrag von seife »

Unter Linux ist ein Dateiname mit "*" am Anfang übrigens durchaus gültig:

Code: Alles auswählen

/tmp/autofs/record # touch ./*foobar.ts
/tmp/autofs/record # ls -l ./*foobar.ts
-rw-r--r--    1 nobody   nogroup         0 Sep 28 21:56 ./*foobar.ts
/tmp/autofs/record #
:-)

Aber ja, den * in die Liste der auszutauschenden Zeichen aufzunehmen kann sicher nichts schaden.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

einfach in der vcrcontrol.cpp das

p_act += strcspn(p_act, "/ \"%&-\t`' e!,:;");

durch das

p_act += strcspn(p_act, "/ \"%&-\t`'~<>!,:;?^°$\\=*#@¤|");

ersetzen sollte reichen.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Danke pOpY für die Analyse :-)
Das kommt bestimmt bald ins CVS...
Aber ja, den * in die Liste der auszutauschenden Zeichen aufzunehmen kann sicher nichts schaden.
ack
p_act += strcspn(p_act, "/ \"%&-\t`'~<>!,:;?^°$\\=*#@¤|");
Danke mb405, dann braucht es ja nur noch eingecheckt zu werden
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Beitrag von seife »

Moment mal.
Wäre es nicht besser, anstelle des "blacklistens" von "bösen" Zeichen, einfach nur A-Z, a-z, 0-9, -_., zu akzeptieren und alles andere durch "_" zu ersetzen (oder durch was auch immer)? Das sollte auf allen Filesystemen unter allen Betriebssystemen funktionieren und halbwegs zuverlässig sein.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Beitrag von seife »

Oder, um es mal genau zu sagen (nur kompiliert, nicht wirklich getestet):

Code: Alles auswählen

RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/vcrcontrol.cpp,v
retrieving revision 1.108
diff -u -p -r1.108 vcrcontrol.cpp
--- a/apps/tuxbox/neutrino/src/driver/vcrcontrol.cpp    3 Jun 2007 14:36:13 -0000       1.108
+++ b/apps/tuxbox/neutrino/src/driver/vcrcontrol.cpp    29 Sep 2007 20:32:03 -0000
@@ -35,6 +35,9 @@

 #define MOVIEBROWSER

+/* list all allowed chars in filenames */
+#define FILENAME_ALLOWED_CHARS "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ."
+
 #include <driver/vcrcontrol.h>

 #ifdef MOVIEBROWSER
@@ -892,19 +895,11 @@ void CVCRControl::CFileDevice::appendEPG
                strcpy(buf, epgInfo.c_str());
                char * p_act = buf;
                do {
-                       p_act +=  strcspn(p_act, "/ \"%&-\t`'~<>!,:;?^$\\=*#@|");
+                       p_act +=  strspn(p_act, FILENAME_ALLOWED_CHARS);
                        if (*p_act) {
                                *p_act++ = '_';
                        }
                } while (*p_act);
-
-               p_act = buf;
-               do
-               {
-                       if ((unsigned char) (*p_act) >= 128) {
-                               *p_act = '_';
-                       }
-               } while (*p_act++);
        }
 }

@@ -930,19 +925,11 @@ void CVCRControl::CFileDevice::appendEPG
                strcpy(buf, epgTitle.c_str());
                char * p_act = buf;
                do {
-                       p_act +=  strcspn(p_act, "/ \"%&-\t`'~<>!,:;?^$\\=*#@|");
+                       p_act +=  strspn(p_act, FILENAME_ALLOWED_CHARS);
                        if (*p_act) {
                                *p_act++ = '_';
                        }
                } while (*p_act);
-
-               p_act = buf;
-               do
-               {
-                       if ((unsigned char) (*p_act) >= 128) {
-                               *p_act = '_';
-                       }
-               } while (*p_act++);
        }
 }

@@ -957,7 +944,7 @@ void CVCRControl::CFileDevice::appendCha

                char * p_act = buf;
                do {
-                       p_act += strcspn(p_act, "/ \"%&-\t`'!,:;");
+                       p_act +=  strspn(p_act, FILENAME_ALLOWED_CHARS);
                        if (*p_act)
                        {
                                *p_act++ = '_';
BTW: daß da zweimal praktisch die identische Funktion drin ist (CVCRControl::CFileDevice::appendEPGInfo und CVCRControl::CFileDevice::appendEPGTitle) gehört auch mal aufgeräumt :-)
popy
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Freitag 27. April 2007, 23:57

Danke!

Beitrag von popy »

Es freut mich heute zu lesen, das doch einige bereit sind (agbesehen von dem welches Image ich verwende und mit welche Leute ich verkehre) das Problem im cvs zu beheben.

Ich freue mich (hoffe) das das jemand ins cvs eincheckt und ich bald nicht mehr meine Senderlisten per Hand editieren muss!

cu
pOpY
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Re: Danke!

Beitrag von PauleFoul »

popy hat geschrieben:Es freut mich heute zu lesen, das doch einige bereit sind (agbesehen von dem welches Image ich verwende und mit welche Leute ich verkehre) das Problem im cvs zu beheben.

Ich freue mich (hoffe) das das jemand ins cvs eincheckt und ich bald nicht mehr meine Senderlisten per Hand editieren muss!

cu
pOpY
Bitte nicht mehr länger breittreten! :D

Danke das Du geholfen hast den Fehler zu finden...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Beitrag von seife »

Meine Version ist BTW. inzwischen auch getestet.
NASeweiss
Einsteiger
Einsteiger
Beiträge: 101
Registriert: Mittwoch 25. Oktober 2006, 14:36

Beitrag von NASeweiss »

@seife, mb405, houdini

...danke, dass ihr mir den Glauben an die Vernunft wiedergegeben habt.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

es geht fast perfekt.
hier mal 2 beispiele

RTL Television_Punkt 9_2007-10-01_092717.xml
MGM_Danielle Steel_ Nichts ist st_rker als die Liebe _Danielle Steel_s _No Greater Love___2007-10-01_093010.xml

also irgendwie macht der mir paar leerzeichen rein, die da nicht sein sollten ?
vielleicht wäre das besser ?

#define FILENAME_ALLOWED_CHARS "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789."

eine umbenennung von deutschen umlauten wäre das nonplusultra noch :)
ä -> ae
ü -> ue
und so weiter
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Beitrag von seife »

mb405 hat geschrieben:vielleicht wäre das besser ?

#define FILENAME_ALLOWED_CHARS "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789."
Ja, das war die Hausaufgabe für die Mitleser (ich habe das bei mir lokal schon so geändert, weils mich auch gestört hat, dafür habe ich das "-" noch erlaubt :-)
mb405 hat geschrieben:eine umbenennung von deutschen umlauten wäre das nonplusultra noch :)
ä -> ae
ü -> ue
und so weiter
Ja, das ist aber vermutlich etwas weniger trivial, da du da ja, je nach Encoding, die Länge des Strings veränderst (und du willst nicht, daß ich versuche, mit char*[] rumzumachen, glaube mir :-)
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

@ Houdini

Danke für es einchecken!!