Crash beim Schalten auf Programm "TCM"

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Crash beim Schalten auf Programm "TCM"

Beitrag von Massa »

Edit: : Habe mal alles etwas zusammengefasst und akutelle Erkenntnisse mit eingebaut

Hi,
nachdem meine Frau es schon mehrmals geschafft hat, einfach durch schnelles Hochschalten der Kanäle, die box komplett aufzuhängen
(ist bei mir bis dato noch nie passiert) - habe ich mal mit angehängtem PC und Logausgabe gebootet und versucht das nachzuvollziehen.

Geht tatsächlich, und zwar immer beim gleichen (freien) Programm "TCM",
muesste eigentlich der folgende aus services.xml sein :

Code: Alles auswählen

<transponder id="0440" onid="0001" frequency="12168000" symbol_rate="27500000" fec_inner="3" polarization="1">
 <channel service_id="6f63" name="TCM" service_type="0001" channel_nr="0"/>
Das ganze passiert immer, wenn ich auf diesen Kanal schalte.

Hier ist das Log zu der Zeit:

Code: Alles auswählen

[CFrontend::getEvent] FE_COMPLETION_EV
[pmt.cpp] 0xC2 dump:
PILOTE1
PILOTE2
SES_CSAT
EPG
CHAINE
SERVICE1
SERVICE2
[pmt.cpp] 0xC2 dump:
COMMUN80
[pmt.cpp] 0xC2 dump:
PILOTE
[pmt.cpp] 0xC2 dump:
SES_CSAT
[pmt.cpp] 0xC2 dump:
CGV_SES
[pmt.cpp] 0xC2 dump:
GUIDESRV
Manchmal, aber nicht immer, kommen auch noch folgende Zeilen:

Code: Alles auswählen

[getMsgAbsoluteTimeout]: EVT_TIMESET - recalculate timeout
3a7b88eba1d48/fffffffffffb6c41 - 3a7b88f1113ed/3a7b88f15a7ac
dmxdev: buffer overflow free: 64 len: 504
Es kann auch sein, dass diese letzten Zeilen erst mit einiger Verzögerung, d.h. nach einigen Sekunden bis zu mehreren Minuten kommen.

Wenn ich auf diesen Kanal geschaltet habe, kann ich (scheinbar) noch auf andere Kanäle schalten, aber eben nur scheinbar.
Es werden im OSD zwar das gewechselte Programm angezeigt, das Bild bleibt aber schwarz und im LCD steht immer noch das letzte Programm, das ich vor TCM angewählt hatte.
Das kann ich ein paar mal machen, bevor ich neutrino auf keinen meiner Tastendrücke mehr reagiert.
Auf die box komme ich zu dem Zeitpunkt aber immer noch per telnet und kann die box dann per "/sbin/halt" runterreissen :-?

Achja, wenn ich das ganze unter enigma mache, kommt einfach "dieses Programm kann nicht entschlüsselt werden" (oder so ähnlich) :-)
- Könnte es sein, dass das ganze ein Problem von nicht entschlüsselbaren Programmen ist?

Hoffentlich kann damit jemand der Devs was anfangen...
(ich werde jetzt auf jeden Fall mal TCM rausnehmen, weiss sowieso nicht was das für ein Programm ist :) )

Da ich das ganze jederzeit nachvollziehen kann, bin ich auch jederzeit bereit, bei einer Fehlersuche behilflich zu sein.
Zuletzt geändert von Massa am Samstag 10. August 2002, 23:47, insgesamt 1-mal geändert.
SAT-Box; Phillips 2xI; AVIA600L; ENX
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

Edit: Geloescht, da keine neuen Infos mehr enthalten waren
Zuletzt geändert von Massa am Samstag 10. August 2002, 23:48, insgesamt 1-mal geändert.
SAT-Box; Phillips 2xI; AVIA600L; ENX
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

Edit: Habe das Log rausgenommen, brachte nichts neues :-)

Und noch 'ne Egänzung :)

Habe es gerade mit dem aktuellen yadd (08.08.2002 21:24) von Homar probiert;
(@Homar: Klasse, Dein yadd bootet ja wieder, hast es also geschafft :wink:)

Achja, die Konsole auf der seriellen Schnittstelle geht noch, ist auch nichts auffaelliges zu sehen, alle Prozesse sind noch da (soweit ich das beurteilen kann) und "/sbin/halt" geht auch noch :)


Wenn ich irgendwie bei der Eingrenzung des Fehlers behilflich sein kann, bitte melden!
SAT-Box; Phillips 2xI; AVIA600L; ENX
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

Nach oben schubs :-)

Update: Beim yadd vom 10.08.2002 15:39 passiert es ebenfalls noch.
SAT-Box; Phillips 2xI; AVIA600L; ENX
CarTrinoZap
Einsteiger
Einsteiger
Beiträge: 273
Registriert: Mittwoch 29. Mai 2002, 01:37

Beitrag von CarTrinoZap »

Ja, kenn ich auch... Issn Bug - hat offensichtlich keiner Bock zu beheben...
Naja, einfach diesen unsinnigen TCM-Kanal löschen: Hilft 100% :wink:

Besser noch: Das ganze "TBS"-Bouquet löschen
Nokia(SAT), 2xIntel, Avia 500, GTX, BM1.0
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

Na wenn "TCM" das einzige betroffene Programm ist...

Habe aber ein abgeschwächtes ähnlichs Phänomen mit anderen "nicht entschlüsselbaren" Kanälen.
Da bleibt im LC-Display ebenfalls das alte "entschlüsselbare" Programm stehen und im OSD erscheint scheinbar das neue, bleibt aber natürlich schwarz.

Sonst kann ich aber immerhin erfolgreich wieder zurück auf ein entschlüsselbares Programm schalten, was bei TCM eben nicht geht.

Ich denke, wenn es noch andere ähnlich reagierende Programme gibt, sollte man dem nachgehen, oder?
SAT-Box; Phillips 2xI; AVIA600L; ENX
CarTrinoZap
Einsteiger
Einsteiger
Beiträge: 273
Registriert: Mittwoch 29. Mai 2002, 01:37

Beitrag von CarTrinoZap »

ja, mag sein...

Mich nervt es, daß zig "Euronews" gefunden werden... Euronews ist ja FreeTV; dennoch haben einige Pay-TV-Anbieter (die man gar nicht entschlüsseln kann, weil man kein Abo hat) im Rahmen ihrer verschlüsselten Bouquets auch Euronews drin; einige von den gefundenen Euronews fucken bei mir ab, owohl ich sie GAR NICHT SEHEN WILL !!! Und das auch NUR, weil man beim schnellen rumzappen versehentlich mal draufklickt... Ein deutschsprachiges Euronews (ZDF-Bouquet) reicht allemal...

Da hilft nur radikal LÖSCHEN !!! Man kann auch ein Tool nehmen.

Der Grund für die Misere sind garantiert irgendwelche PIDs mit Besonderheiten, welche nicht als solche abgearbeitet werden ! Würde mich nichtmal wundern, wenn ALLE Euronews free sind, aber dennoch abkacken... WEG mit dem Schrott, den keiner braucht ! (sorry)
Nokia(SAT), 2xIntel, Avia 500, GTX, BM1.0
Testbild
Interessierter
Interessierter
Beiträge: 56
Registriert: Mittwoch 28. November 2001, 00:00

Beitrag von Testbild »

@massa
Meine Tests mit Nokia (Avia500) und Philips, beides Sat/AlexW1.6/Cramfs vom 01.08., brachten beide Receiver zum Quasi-Absturz, wenn ich im Bouquet 'Andere' im dreistelligen Bereich schnell herumgezappt hatte. Danach wurde nur noch der OSD-Sendername angezeigt, im LCD blieb der letzte stehen. Auch alle freien Programme gingen dann nicht mehr. Auch nicht mehr nach dem aus- und wiedereinschalten!

Das Problem lag darin, dass der im LCD 'festgefressene' Sender im zapit.conf eingetragen wird. Damit startet Neutrino immer wieder auf dem Sender, der den Absturz verursacht hat. Im Forum stand, dass man zapit.conf löschen soll. Das klappt übrigens nur, wenn man nach dem Löschen einen Reset macht. Schaltet man die Box aus, wird zapit.conf wieder neu geschrieben, und zwar mit dem zuletzt eingestellten Programm, welches auf dem LCD erscheint.

Ich habe mir damit beholfen, dass ich 'start_neutrino' modifiziert habe. In der ersten Zeile wird zapit.conf gelöscht. Dann merkt sich Neutrino zwar nicht mehr den zuletzt eingestellten Sender bzw. TV/Radio-Modus, aber damit kann ich leben.
Zuletzt geändert von Testbild am Montag 12. August 2002, 17:14, insgesamt 1-mal geändert.
masterpete
Neugieriger
Neugieriger
Beiträge: 10
Registriert: Dienstag 4. Juni 2002, 18:03

Beitrag von masterpete »

@ testbild bitte poste mal deine komplette startdatei wegen des löschen der zapit.conf
nokia box gtx
Testbild
Interessierter
Interessierter
Beiträge: 56
Registriert: Mittwoch 28. November 2001, 00:00

Beitrag von Testbild »

Hallo,

ich hab das File gerade nicht hier, aber die Änderung ist nicht so schwer.
Folgende Zeile gleich am Anfang von start_neutrino (1. Zeile) hinzufügen:
rm /var/tuxbox/config/zapit/zapit.conf

Wichtig: Unix-kompatiblen Editor verwenden!

Gruß
CarTrinoZap
Einsteiger
Einsteiger
Beiträge: 273
Registriert: Mittwoch 29. Mai 2002, 01:37

Beitrag von CarTrinoZap »

Hehehe,

hast Du evtl. von mir ?

http://tuxbox.berlios.de/forum/viewtopi ... 0fbec3c340
und
http://tuxbox.berlios.de/forum/viewtopi ... 0fbec3c340

Aber nochwas zum Neustart der Box... die Datei wird IMMER neu geschrieben, wenn sie gelöscht wurde ! Bei mir half meist auch ein runter/hoch-fahren der Box... WENN sie erfolgreich gelöscht wurde, startet die Box auf Programmplatz "001"... (genau DA sollte man nicht "TCM" haben; harharhar)
Aber "relativ neu" war für mich der Tipp, von den drei Tasten an der Dbox, die beiden Äußeren für 2 Sekunden gedrückt zu halten !!!! Das löst einen Deep-Reset aus und schont das Netzteil vorm ständigen Netzstecker ziehen.... :wink:
Nokia(SAT), 2xIntel, Avia 500, GTX, BM1.0
Homar
Senior Member
Beiträge: 1278
Registriert: Mittwoch 5. September 2001, 00:00

Beitrag von Homar »

Hi Folks,

@Massa: sage mal, haste ne dbox1 zuhause ??
Testbild
Interessierter
Interessierter
Beiträge: 56
Registriert: Mittwoch 28. November 2001, 00:00

Beitrag von Testbild »

CarTrinoZap hat geschrieben:Hehehe,

hast Du evtl. von mir ?
...
die Datei wird IMMER neu geschrieben, wenn sie gelöscht wurde!
...
Aber "relativ neu" war für mich der Tipp, von den drei Tasten an der Dbox, die beiden Äußeren für 2 Sekunden gedrückt zu halten !!!!
Nö, habe ich nicht von dir, das lag wohl an der Überschrift, dass ich das Topic nicht gelesen habe :D . Außerdem lösche ich das File beim Hoch- und nicht beim Herunterfahren, das ist m.E. sinnvoller.

Reset: RTFM (auch wenn das bei diesem Gerät besonders schwer fällt :wink: )!
Philips reagiert sofort, bei Nokia und Sagem muss man mind. 3s die Knöpfe gedrückt halten. Zapit.conf wird wohl nur beim Herunterfahren neu geschrieben.

Gruß
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

@Homar: Nö, wieso?
Läuft neutrino seit neuestem auch auf dbox1 :-) ?
SAT-Box; Phillips 2xI; AVIA600L; ENX
Homar
Senior Member
Beiträge: 1278
Registriert: Mittwoch 5. September 2001, 00:00

Beitrag von Homar »

Hi Massa,

Wenn ich einen scan dieser Sender bekommen könnte, dann wäre eine Lösung einfacher.

was mann bräuchte:

PAT / PMT / SDT

... von den besagten Sendern, plus von dem zuvor geguckten Sender.
CarTrinoZap
Einsteiger
Einsteiger
Beiträge: 273
Registriert: Mittwoch 29. Mai 2002, 01:37

Beitrag von CarTrinoZap »

Aha,

scheint wohl doch jemand Interesse zu finden, dies zu fixen *freu* - Noch
dazu jemand, der das wahrscheinlich auch hinbekommt :wink:

Homar, aus Deiner Frage zum Scan muss man entweder daraus schließen,
daß bei Dir dieses Problem NICHT auftritt ! Oder Du hast kein Astra...

PS: Was ist mit Scan gemeint ? In der Bouq.+Service.xml sind jeweils nur service-ID es zu sehen; unter blaue Taste "Stream-Information" sieht man nix, weil ja genau DAS das Problem ist (welches dann auch zum Absturz führt)... und ein Stück Grabben meintest Du mit Scan auch nicht, weil
man ja nicht Grabben kann, wo nix kommt

Bei mir isses so, wenn ich von "TCM." auf "Cartoon Network 1" (beides in der Reihenfolge unterm Bouq. TBS so gefunden worden) schalte, bleibt
auf immer und eewig Cartoon-Network im Display stehen... Beide Sender
gehen nicht auf; sind wohl verschlüsselt
Nokia(SAT), 2xIntel, Avia 500, GTX, BM1.0
Homar
Senior Member
Beiträge: 1278
Registriert: Mittwoch 5. September 2001, 00:00

Beitrag von Homar »

Hi Folks,

das geht auf einer DB2 auch, nur weiss ich nicht genau wie mann mit dvbsnoop umzugehen hat.

Idealerweise kommt hier ein Dbox1 zum einsatz, dem mann die Infos über SCSI abzapft.

Da ich kein Sat-Anschluss habe müsste das jemand anderes tuen und mir die sache auf meine HP uploaden.

Ab November (in meiner neuen Wohnung) wird es sat-empfang geben. Wenn bis dahin nichts bei rauskommt, werde ich es sowieso angehen.
happydude
Einsteiger
Einsteiger
Beiträge: 262
Registriert: Samstag 1. Dezember 2001, 00:00

Beitrag von happydude »

Hi Leute,

der Fehler steckt im Zapit. Der gerät bei manchen Sendern aufgrund etwas länglicherer PMTs in eine Endlosschleife.

In zwar in apps/zapit/zapsi/pmt.cpp in Funktion parse_pmt, Zeile 362:

Code: Alles auswählen

unsigned int mask = 0xFF;
unsigned char length_field_size = 1;

while ((ca_pmt_length & mask) != ca_pmt_length)
{
            length_field_size++;
            mask = (mask << 8) & 0xFF;
}
Ich habe mich noch nicht ausreichend genug mit dem neuen CI Code in zapit/camd befasst, um es cdk-gerecht zu fixen. Vielleicht reicht's schon, wenn man aus length_field_size ein unsigned short macht.
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

@happydude: wäre echt cool, wenn Du den Fehler gefunden hättest 8)
Ich werde mir heute abend mal ein yadd zusammenbruzeln und einen Fix einbauen und testen :D
Zum fix selber: zusaetzlich muesste es doch eine zusätzliche Abbruchbedingung geben, z.B. wenn mask wieder 0xFF ist. Hmm, muss mal schauen, was das fuer Auswirkungen hat wenn length_field_size vergrößert wird.
Oder hast Du inzwischen schon einen Fix erstellt :oops: (vorsichtig anfrag...)

@Homar: ist dvbsnoop im CDK-CVS enthalten?
SAT-Box; Phillips 2xI; AVIA600L; ENX
happydude
Einsteiger
Einsteiger
Beiträge: 262
Registriert: Samstag 1. Dezember 2001, 00:00

Beitrag von happydude »

Wie gesagt, ich habe mir den Code noch nicht genau genug angeschaut, als das ich verstehen würde, wozu diese Schleife überhaupt gut ist. Das mit der 8bit->16bit Variable ist jetzt nur eine Vermutung. Ich habe es auf die Schnelle so workarounded, daß ich nur caids 0x17.. in die ci-Struktur schreiben lasse (weiter oben im Code).
thegoodguy
Erleuchteter
Erleuchteter
Beiträge: 465
Registriert: Mittwoch 14. August 2002, 20:45

Beitrag von thegoodguy »

Hi Leute,

ich versteh' davon zwar nicht viel, aber habe mir kurz den Quellcode angeguckt.
Ich tippe, dass

Code: Alles auswählen

            mask = (mask << 8) & 0xFF;
ersetzt werden muss durch

Code: Alles auswählen

            mask = (mask << 8) | 0xFF;
Dann macht die Schleife naemlich Sinn.

0xFF, 0xFFFF, 0xFFFFFF, 0xFFFFFFFF

Viele Gruesse![/code]
obi
Senior Member
Beiträge: 1282
Registriert: Montag 12. November 2001, 00:00

Beitrag von obi »

hoppla, stimmt auffallend :-)
is nu gefixt im cvs
Homar
Senior Member
Beiträge: 1278
Registriert: Mittwoch 5. September 2001, 00:00

Beitrag von Homar »

Da traut man sich nicht zuzugeben, das man es nicht verstanden hat, lehnt sich zurück und denkt...

... was hatte Obi mit diesem code-streifen vor.

Bis jemand kommt und sagt: "heeee da ist ja was falsch "

:P :P :P


P.S.: und ich dachte, ich müsse noch viiiiiiiel lernen um sowas zu verstehen :-)
CarTrinoZap
Einsteiger
Einsteiger
Beiträge: 273
Registriert: Mittwoch 29. Mai 2002, 01:37

Beitrag von CarTrinoZap »

Meensch, Massa...

Dieser Topic fing erst sooo schleppend an !
Und nun isses sogar behoben

KLASSE !!!
Nun dürften ja die Anderen "schwierigen" Programme auch nicht mehr
so störrisch sein... Ein Hoch auf "thegoodguy"; gutes Puzzlematch !

@Homar,

wenn mal wieder sowas sein sollte-> ich habe SAT und noch ne DBox1;
ich könnte dann mal was loggen/scannen... für PID, PAT und wiese alle
heißen... Mach ich aber jetzt nicht mehr, klar !
Nokia(SAT), 2xIntel, Avia 500, GTX, BM1.0
Massa
Einsteiger
Einsteiger
Beiträge: 359
Registriert: Donnerstag 18. Juli 2002, 17:40

Beitrag von Massa »

Tja, und ich verstehe die Codestelle immer noch nicht.
Für mich sah die ursprüngliche Version (mit &) genauso sinnvoll aus (mask wird dann 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000) :-?

Naja, wie dem auch sei. Kann es jetzt nicht trotzdem sein, dass eine Endlosschleife entsteht?
Sollte man da nicht etrotzdem eine zusätzliche Abbruchbedingung einbauen ?
Sowas wie

Code: Alles auswählen

while ((ca_pmt_length & mask) != ca_pmt_length && length_field_size < 5)
Oder habe ich da einen Denkfehler?

Und jetzt noch eine (vielleicht) ganz blöde Frage: was ist eigentlich "ca pmt" :oops: ?

@CarTrinoZap: wenn doch nur alle Topics so ein Ergebnis hätten :)
SAT-Box; Phillips 2xI; AVIA600L; ENX