EPG Speicherverzeichnis

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
west
Interessierter
Interessierter
Beiträge: 42
Registriert: Montag 13. November 2006, 08:48

EPG Speicherverzeichnis

Beitrag von west »

Hi,

Ich bräuchte mal Eure Hilfe.

Ich möchte die EPG Daten auf CF-Card welche am ide-Inteface hängt speichern. Das geht auch soweit. Nur geht die Box dann nicht mehr oder nur nach Ewigkeiten aus. Das ist wohl so weil die EPG-Daten erst geschrieben werden.

Nur was mich wundert: Wenn ich den sectionsd vorher kille (killall sectionsd und mit ps kontrolliert - weg)
dauert es auch solange! Was verstehe ich denn hier nicht.

gruss w.
dlubacz
Neugieriger
Neugieriger
Beiträge: 16
Registriert: Donnerstag 5. Mai 2005, 00:21

Beitrag von dlubacz »

Hallo,
hast Du auch nach einer Weile nachgesehen:
bei mir nach "killall sectionsd" kam der Sphinx von alleine wieder ;-)
Es koennte auch ein Fehler in meinen Image sein (CVS 02.03.2007)
Gruss
dlubacz
Alway a beginer..
west
Interessierter
Interessierter
Beiträge: 42
Registriert: Montag 13. November 2006, 08:48

Beitrag von west »

Hi,

ja habe immer wieder mit ps geguckt.

Das ist bei anderen Images genau so.
Komisch oder?

Gruss w.
dlubacz
Neugieriger
Neugieriger
Beiträge: 16
Registriert: Donnerstag 5. Mai 2005, 00:21

Beitrag von dlubacz »

Hallo,
es kann natuerlich an unterschiedlichen /etc/init.d-Dateien liegen :wink:
Ich baue mir (immer noch) jffs2-only Image und muss
ich die (neue) CVS-Vorgegebene init.d-Dateien anpassen :gruebel:
Mit originalen CVS und ergaenzten neutrino.conf hatte ich mal
epg-Dateien in flash-root :o - seitdem habe ich die Prueffung in
neutrino verschaerft auf mind. drei Zeichen (im Orginal steht
Path ungleich Null - damit ist auch "/" zulaessig).
Gruesse
dlubacz
west
Interessierter
Interessierter
Beiträge: 42
Registriert: Montag 13. November 2006, 08:48

Beitrag von west »

Hi,

ja mit der Prüfung, dass ist sicher sehr sinnvoll, hat aber wohl nichts mit dem Hänger zu tun.
Die start_neutrino erschließt sich mir nur zum Teil, ich weis da immer nicht was beim starten und was beim stoppen ausgeführt wir. Werde aber heute mal alle Einträge die was mit sectionsd zu tun haben auskommentieren.
Mal sehen was dabei passiert.

Ich habe mal im log geguckt, das steht dann folgendes:

[basicsocket] receive timed out.
[CBasicClient] receive failed: /tmp/sectionsd.sock
[neutrino] initialized everything
[basicsocket] receive timed out.
[CBasicClient] receive failed: /tmp/sectionsd.sock
[basicsocket] receive timed out.
[CBasicClient] receive failed: /tmp/sectionsd.sock
[basicsocket] receive timed out.
[CBasicClient] receive failed: /tmp/sectionsd.sock
[basicsocket] receive timed out.
[CBasicClient] receive failed: /tmp/sectionsd.sock

Was will mir das sagen?

Gruss w.
west
Interessierter
Interessierter
Beiträge: 42
Registriert: Montag 13. November 2006, 08:48

Beitrag von west »

So hier das Ergebnis nachdem ich alle sectionsd - Einträge in der start_neutrino raus hatte:

[CBasicClient] connect failed.

/tmp/sectionsd.sock: No such file or directory

[CBasicClient] connect failed.

/tmp/sectionsd.sock: No such file or directory

.... usw .....

Box hängt.

Gruss w.
usul1
Erleuchteter
Erleuchteter
Beiträge: 760
Registriert: Freitag 14. Januar 2005, 12:42

Beitrag von usul1 »

Ist mir auch schon aufgefallen.
Ich kille den sectionsd für die Aufnahme. Wenn er dann nach der Aufnahme nicht mehr gestartet werden kann hängt die Box beim runterfahren.

Ich denke mal Neutrino will der Sectionsd beim beenden noch was sagen. Der Sectionsd antwortet nicht und so wartet Neutrino ewig.

cu
usul
dlubacz
Neugieriger
Neugieriger
Beiträge: 16
Registriert: Donnerstag 5. Mai 2005, 00:21

Beitrag von dlubacz »

Hallo,
@usul1: ueberpruefe, ob Dein EPG-Verzeichnis gesetzt ist
(Bem.: bei auch "/" ist es schon gesetzt :wink: ). In neutrino.cpp
steht: wenn EPG-Verzeichnis gesetzt, dann sichere EPG-Daten von
sectionsd...
Gruss
dlubacz
usul1
Erleuchteter
Erleuchteter
Beiträge: 760
Registriert: Freitag 14. Januar 2005, 12:42

Beitrag von usul1 »

dlubacz hat geschrieben:@usul1: ueberpruefe, ob Dein EPG-Verzeichnis gesetzt ist
(Bem.: bei auch "/" ist es schon gesetzt :wink: ). In neutrino.cpp
steht: wenn EPG-Verzeichnis gesetzt, dann sichere EPG-Daten von
sectionsd...
Das Problem ist, wenn die Sectionsd nicht rennt, dann wartet Neutrino sich tot.
Läuft der Sectionsd dann fährt die Box ja sauber runter.

Und des EPG Speicherverzeichnis ist ja gesetzt. Denn es geht mir ja auch gerade um diese Funktion.
Wobei ich auf das speichern eh verzichten könnte, mir gehts nur ums lesen der EPG Daten.

cu
usul
dlubacz
Neugieriger
Neugieriger
Beiträge: 16
Registriert: Donnerstag 5. Mai 2005, 00:21

Beitrag von dlubacz »

Hallo,
@usul1: beides mit bisherigen CVS wirst Du leider nicht haben :wink:
entweder zusammen neutrino mit sectionsd und EPG-Verzeichnis
oder
muss man auf etwas verzichten/aendern (sectionsd vor dem neutrino-
Stopp noch neustarten oder kleine Modifikation in neutrino.cpp: kein
sectionsd Prozess vorhanden - fuehre die if-Sicherungsbed. nicht aus).
Gruss
dlubacz
Alway a beginer..
usul1
Erleuchteter
Erleuchteter
Beiträge: 760
Registriert: Freitag 14. Januar 2005, 12:42

Beitrag von usul1 »

dlubacz hat geschrieben: @usul1: beides mit bisherigen CVS wirst Du leider nicht haben :wink:
Jup, ist mir schon klar...
dlubacz hat geschrieben:oder kleine Modifikation in neutrino.cpp: kein
sectionsd Prozess vorhanden - fuehre die if-Sicherungsbed. nicht aus).
...trotzdem kann man den Bug hier mal erwähnen (bestätigen). :-)

Und ich denke mal "sich totzuwarten" wenn der Sectionsd nicht reagiert ist ein Bug.
Die Box sollte runterfahren, auch wenn ein Programm abgestürzt ist. Denn sind wir mal ehrlich, abstürzende Programme sind auf der Box der Normalfall ;-)

cu
usul
west
Interessierter
Interessierter
Beiträge: 42
Registriert: Montag 13. November 2006, 08:48

Beitrag von west »

Hi,

ja das sehe ich auch so : BUG

Ist aber wohl in allen mir bekannten Images so.

Was dann aber noch unklar ist: Wenn der sectionsd seine Daten schreibt und das geht nicht schnell genug, fährt Neutrino auch nicht mehr runter sondern versucht neu zu starten.
Wenn man einmal an der Stelle was ändert, könnte man dann nicht die Daten vom sectionsd ganz anders behandeln?
Dh. immer mal schreiben und beim Runterfahren nur noch aktualisieren?
Oder beim herunterfahren garnicht mehr schreiben (abschaltbar)?

Gruss w.
usul1
Erleuchteter
Erleuchteter
Beiträge: 760
Registriert: Freitag 14. Januar 2005, 12:42

Beitrag von usul1 »

west hat geschrieben:Was dann aber noch unklar ist: Wenn der sectionsd seine Daten schreibt und das geht nicht schnell genug, fährt Neutrino auch nicht mehr runter sondern versucht neu zu starten.
Diese ganze "runterfahkonzept" von Neutrino scheint auch insgesamt sehr merkwürdig zu sein.

Der Normalfall wäre doch: Irgendein Programm schchickt an den Kernel das "fahre runter" Signal.
Der Kernel schickt allen Programmen das "beende dich" Signal.
Und wenn alle Programme sich dann beendet haben (oder nach xx Minuten nicht reagiert haben) dann fährt der Kernel das System runter.

So geht jedenfalls unter Windows. Und das funktioniert klasse.
Und ich verstehe überhaupt nicht warum das runterfahren des Linux auf der Box immer solche Probleme bereitet (Mein Linux auf dem PC fährt auch ohne solche Probleme runter).
west hat geschrieben:Oder beim herunterfahren garnicht mehr schreiben (abschaltbar)?
Man kann das speichern der EPG Daten im Sectionsd generell deaktivieren indem man das Binary Patcht (Wenn man, so wie ich, selber nicht kompelieren kann).
http://forum.tuxbox-cvs.sourceforge.net ... &start=180
Das bringt aber nur was wenn du durch die "EPG Laden" Funktion das EPG durch eigene Daten erweitern willst.

cu
usul
dlubacz
Neugieriger
Neugieriger
Beiträge: 16
Registriert: Donnerstag 5. Mai 2005, 00:21

Beitrag von dlubacz »

.. oder fuer die, die selbst kompilieren:
neutrino.cpp (Zeile 5048):

Code: Alles auswählen

if (g_settings.epg_dir.length() != 0) {
	waitforshutdown = true;
	AudioMute(true);
	g_Sectionsd->writeSI2XML(g_settings.epg_dir.c_str());
}
einfach die if-Bed. als false niemals zu ausfuehren ;-)
.. oder loeschen und nur else-Teil lassen ...
Gruss
dlubacz
Alway a beginer..
west
Interessierter
Interessierter
Beiträge: 42
Registriert: Montag 13. November 2006, 08:48

Beitrag von west »

Hi,

so die Lösung ist das alles noch nicht oder?

Kann man im laufenden Betrieb den sectionsd dazu veranlassen seine Daten zu schreiben, in das angegebene Verzeichnis? Oder macht der das ohnehin in gewissen Abständen?

Ich habe folgenden Gedanken:
Wärend Neutrino startet schreibt man per Script das Speicherverzeichnis in die neutrino.conf. Vor dem beenden von Neutrino wird per Script der Eintrag wieder auf "" gesetzt. Dann geht das runterfahren wieder schnell und die Daten sind trotz dem noch da.
Geht das ?

Wegen des dauernden schreibens in den Flash könnte man die neutrino.conf ja mit ins gemountete share schieben und dann verlinken (bei mir eben CF-Card)

Grübel - Gruss w.
usul1
Erleuchteter
Erleuchteter
Beiträge: 760
Registriert: Freitag 14. Januar 2005, 12:42

Beitrag von usul1 »

west hat geschrieben:Kann man im laufenden Betrieb den sectionsd dazu veranlassen seine Daten zu schreiben, in das angegebene Verzeichnis?
Ja, allerdings brauchts dazu ein kleines Programm was die Funktion "Schreibe EPG Daten" des sectiosd aufruft.
Und das gibts AFAIK leider nicht.
west hat geschrieben:Oder macht der das ohnehin in gewissen Abständen?
Der sectionsd macht da garnichts.
Neutrino ruft beim Start die Funktion "Lade EPG Daten" des sectionsd auf.
Und beim beenden ruft Neutrino die Funktion "Speichere EPG Daten" des sectiosd auf.

Der sectiosd speicherd oder läd da von alleine nichts. Er bietet nur Funktionen dafür an die von anden Programmen genutzt werden können um den sectiosd dazu zu veranlassen das zu tun.
west hat geschrieben:Ich habe folgenden Gedanken:
Wärend Neutrino startet schreibt man per Script das Speicherverzeichnis in die neutrino.conf. Vor dem beenden von Neutrino wird per Script der Eintrag wieder auf "" gesetzt. Dann geht das runterfahren wieder schnell und die Daten sind trotz dem noch da.
Geht das ?
Nein (Neutrino bekommt die Änderungen in der Config nicht mit), aber wenn du das willst (nur laden und nicht speichern), dann patche den sectiosd wie von mir vorgeschlagen.
Das geht einfach und funktioniert.

cu
usul
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Ja, allerdings brauchts dazu ein kleines Programm was die Funktion "Schreibe EPG Daten" des sectiosd aufruft.
Und das gibts AFAIK leider nicht.
Sollte mit ein paar zusätzlichen Zeilen im sectionsdcontrol.cpp getan sein...
west
Interessierter
Interessierter
Beiträge: 42
Registriert: Montag 13. November 2006, 08:48

Beitrag von west »

Hi,
Der sectiosd speicherd oder läd da von alleine nichts.
Geht das evtl. als Parameter?

Nur lesen nützt mir auch nicht, außer dem habe ich das nicht richtig geschnallt mit dem patch.

Gruss w.
usul1
Erleuchteter
Erleuchteter
Beiträge: 760
Registriert: Freitag 14. Januar 2005, 12:42

Beitrag von usul1 »

west hat geschrieben:Geht das evtl. als Parameter?
Nein, du must dem sectiosd das über ein Socked (?) mitteilen.
Und dazu brauchst du ein Programm das das tut.
west hat geschrieben:Nur lesen nützt mir auch nicht,
Nun, du fragtest wie man das speichern abschalten kann. Dann bleibt nur lesen über ;-)

Wenn du aber auch speichern willst dann ist der Patch nix für dich.
Dann sehe ich auch keine Möglichkeit wie du das tun könntest ohne mit dem Programmieren anzufangen.

cu
usul
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Houdini hat geschrieben:
Ja, allerdings brauchts dazu ein kleines Programm was die Funktion "Schreibe EPG Daten" des sectiosd aufruft.
Und das gibts AFAIK leider nicht.
Sollte mit ein paar zusätzlichen Zeilen im sectionsdcontrol.cpp getan sein...
ist jetzt im sectionsdcontrol verfügbar
usul1
Erleuchteter
Erleuchteter
Beiträge: 760
Registriert: Freitag 14. Januar 2005, 12:42

Beitrag von usul1 »

Houdini hat geschrieben:ist jetzt im sectionsdcontrol verfügbar
Was bedeutet das denn (So für mich als Anwender)?

Ich dachte spontan (als du es erwähnt hast) das sectionsdcontrol ein Teil von Neutrino ist (wo die sectionsd Komunikation gekapselt ist).
Oder ist es ein eigenständiges Programm was es bloß nie in die Images geschaft hat?

Edit: OK, gefunden. http://cvs.tuxbox-cvs.sourceforge.net/c ... iew=markup

Könntest du mal bitte das kompelierte irgendwo hochladen?

Und wäre es möglich sowas noch einzubauen?

Code: Alles auswählen

printf("        sectionsdcontrol --freemem   free Memory\n");

Code: Alles auswählen

else if (!strcmp(argv[i], "--freemem"))
{
printf("freeMemory\n");
client.freeMemory();
}

Das wäre toll. Dann bräuchte man den sectionsd nicht mehr für die Aufnahmem zu killen (Aufnahmen mit aktiven sectionsd laufen bei mir nicht wegen "speicher zu voll").

cu
usul
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

freemem ist aber fast das selbe wie wenn du den killst. bei mir ist danach fast aller epg weg.
dlubacz
Neugieriger
Neugieriger
Beiträge: 16
Registriert: Donnerstag 5. Mai 2005, 00:21

Beitrag von dlubacz »

Hallo,
ich versuche die vorherige Idee/Vorschlag zu umranden:
- in neutrino.cpp die Zeile

Code: Alles auswählen

 if (g_settings.epg_dir.length() != 0) {
um Daemontest zu erweitern (sectiond manuell "gekillt" => Neutrino bei heruterfahren haengt).

Eine neue Frage: koennte das Schreiben von EPG nicht bescheunigt
werden? Es dauert z.Z. eine Weile .. :wink:

Gruss
dlubacz
Alway a beginer..
usul1
Erleuchteter
Erleuchteter
Beiträge: 760
Registriert: Freitag 14. Januar 2005, 12:42

Beitrag von usul1 »

mb405 hat geschrieben:freemem ist aber fast das selbe wie wenn du den killst.
Stimmt natürlich. Aber wenn dann evtl. mal irgendjemand irgendwann das freemen so erweitert das now&next drinbleibt (Das war hier ja auchschonmal im Gespräch) hätte man dann sogar wieder den Filmtitel im Dateinamen :-)
mb405 hat geschrieben:bei mir ist danach fast aller epg weg.
Fast? eigentlich sollte es dann doch komplett weg sein.
dlubacz hat geschrieben:Eine neue Frage: koennte das Schreiben von EPG nicht bescheunigt
werden? Es dauert z.Z. eine Weile .. :wink:
Man müsste dazu erstmal rausfinden WAS da solange dauert.
Die Idee, auf das XML Format beim speichern zu verzichten, wurde hier schonmal diskutiert.
Allerding ist noch nicht klar ob das "ins XML Format konvertieren" für die Geschwindigkeit verantwortlich ist.

cu
usul
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »