Beiträge von willi.neu9

    Hallo alpha,


    bin mal gespannt auf Deine Langzeiterfahrung mit deinem Patch.

    Schöner wäre natürlich ein offizieller Bugfix von DP.

    Nach der Meldung des Shutdown crashs an DP vor ca. einem 1/2 Jahre, habe ich nur die Rückmeldung

    erhalten, dass diese an die Entwickler weitergeleitet wurde. Passiert ist aber nichts. Der Bug ist auch

    noch in der neusten FW Version der ONE und TWO enthalten.


    Wenn Du willst, kannst Du Deinen Fix ja mal unter Realbedingungen weiter testen:


    Das anhängende Script: "timers.py" das man auf der ONE laufen lassen kann und das eine "etc/enigma2/timers.xml"

    erstellt, löst einen wiederkehren Programmwechsel und Neustart der Box per Timer aus.


    Diese timers.py muss man aber in Punkto "ServiceRef" evt. anpassen.


    timer.py erwartet, dass man in


    /usr/lib/enigma2/python/mytest.py


    die Timer Hochlaufzeit verkürzt.


    Wenn man dies nicht will kann man in timer.py das Delay2 auf 270 Sekunden vergrößern.

    Hat dann aber weniger Tests / Zeiteinheit.


    Bin mal gespannt auf die Ergebnisse. Vielleicht kann ich ja dann bereits wieder auf die Nanny verzichten!

    Wäre natürlich Schade um die viele Arbeit die ich mit Ihr hatte!


    /Willi/

    Die Dreambox ONE oder TWO bei nicht Gebrauch in den Standby Modus zu setzten bringt in Punkto Stromverbrauch fast nichts.

    Dieser verringert sich dabei lediglich um ca. 10% (gemessen direkt an der Box). Da ist der Deep Standby Modus bei dem der

    Hauptprozessor inklusive USB Peripehrie komplett abgeschaltet wird schon wesentlich effizienter. Hier beträgt die Strom-

    ersparnis schon mehr als 99%. Die Stromaufnahme sinkt von ca. 600 mA bei 12 Volt auf etwa 3 mA.


    Leider kann man sich nicht darauf verlassen, dass ein Deep Standby bei der ONE oder TWO immer funktioniert. Egal ob dieser per

    Fernbedienung oder per Timer ausgelöst wurde. Bei gefühlt jedem 50 Shutdown bleibt die Box bei runterfahren (wie auch DP bereits

    vor ca. einem halben Jahr mitgeteilt) hängen.


    Bug inzwischen durch DP gefixt? -> NO!! (Seufz)


    Ein LOG genommen vom USB-Service Ausgang der Box zeigt den Grund:


    [ 102.882849@2] fb: osd_shutdown

    [ 102.883215@2] amvdac_drv_shutdown: shutdown module, private_flag:0x0

    [ 102.883986@0] reboot: Power down

    [ 102.884280@0] fp_power_off

    [ 102.987219@0] fp_write_cmd(33) timeout...

    [ 102.987241@0] fp: com reset...

    [ 103.007767@0] fp: command retry

    [ 120.171199@0]

    [ 120.171199@0]

    [ 120.171199@0]

    [ 120.171199@0] HARDLOCKUP____ERR.CPU[1] <irqen:0 isren1>START

    [ 120.171780@0]

    [ 120.171780@0] dump_cpu[0] irq: 3 preempt:10001 swapper/0

    [ 120.172606@0] IRQ arch_timer_handler_phys, 10000

    [ 120.173129@0] Task dump for CPU 0:

    [ 120.173520@0] swapper/0 R running task 0 0 0 0x00000000

    [ 120.174349@0] Call trace:

    [ 120.174654@0] [ffffffc0746f1c40+ 112][<ffffff800908b688>] dump_backtrace+0x0/0x250

    [ 120.175521@0] [ffffffc0746f1cb0+ 32][<ffffff800908b95c>] show_stack+0x24/0x30

    [ 120.176352@0] [ffffffc0746f1cd0+ 32][<ffffff80090dce9c>] sched_show_task+0x134/0x180

    [ 120.177251@0] [ffffffc0746f1cf0+ 32][<ffffff80090dfc48>] dump_cpu_task+0x48/0x58

    [ 120.178113@0] [ffffffc0746f1d10+ 112][<ffffff8009b6c50c>] pr_lockup_info+0x174/0x220


    Um Die Box aus dem Crash Zustand zu befreien hilft nur noch: Strom abschalten, für ca. 3 Sekunden zu warten und danach die Box

    wieder einzuschalten.


    Da ich nicht davon ausgehe, dass dieser Fehler jemals gefixt wird, und ich auch nicht auf Dauer die Nanny für die Box sein möchte,

    habe ich der ONE eine Nanny gebaut, (wäre für die TWO übrigens auch nötig) die auf die Box aufpasst.


    Diese wird einfach zwischen Netzteil und Box gesteckt und unterbricht bei Bedarf die Stromzufuhr zur Box für ca. 3 Sekunden und

    startet damit die Box automatisch neu. Nach ca. 30 Sekunden schickt sie per IR das Abschaltkommando zur Box um diese wie ge-

    wünscht dann doch noch runterzufahren.


    Sie funktioniert dabei wie folgt:


    Beim Runterfahren blinkt die LED im Ein/Aus Taster der Box mit ca. 0,93 Hz so lange bis diese abgeschaltet ist. Bleibt der Abschalt-

    vorgang hängen blinkt die LED bis zur Stromtrennung kontinuierlich weiter.


    Dieses Blinken lässt auch die Stromaufnahme der Box zyklisch schwanken. Mit einem 0,93 Hz Filter in der Nanny wird die Strom-

    schwankung ausgefiltert und dem A/D Wandler eines Microcontrollers in der Nanny zugeführt. Dieser schaut sich das Blinken für ca.

    1 Minute lang an. Danach startet er den Zyklus:


    Stromzufuhr zur Box für 3 Sekunden trennen.

    IR Kommando: Runterfahren nach 30 Sekunden Wartezeit senden.


    Das ist schon sein ganzer Job.


    Wen die Nanny interessiert: Nähere Infos (Stromlauf / Firmware / Fotos) gibt es hier:


    nanny_1.00.zip


    Hier noch ein paar Bilder:


            


    /Willi/

    Hallo pclin,


    was wohl geht ist im Mountmanager im "Freigaben Editor" die Freigabeoptionen zu erweitern.

    Was funktioniert hat ist hier die cifs Version 3.0 mit aufzunehmen. Was auch ausgeführt wird.

    Wahrscheinlich kannst Du auch Deine anderen Mount Optionen mit hier eintragen und somit

    den "legalen" Mount Weg gehen (nicht am enigma vorbei).


    Damit Du nicht soviel Eingaben über die virtuelle Tastatur hast, kannst Du diese auch direkt

    in "/etc/enigma2/automounts.xml" eintragen. Nach der Änderungen von "automounts.xml"

    must Du Deine Freigaben aus: "/etc/fstab" löschen, bevor Du ein reboot durchführst.

    Die werden durch das Automount wieder eingetragen. Falls Du das nicht machst steht

    in "/etc/fstab" nach dem Reboot eine Mischung aus alten und neuen Einträgen.


    Automount ergänzt auch die Backup Verzeichnis Auswahl. Da findest Du dann auch alle Deine

    Mounts fürs Backup wieder.



    /Willi/

    Hallo pclin,


    Ich hab's mit der Dream OS "4.5.1r5-2021-03-20 (experimental)" ohne eine cifs1.0 Installation nicht zum laufen bekommen.

    Die neueren Versionen des Dream OS für die ONE benutze ich nicht, da die nicht mehr richtig laufen.

    (Selbst aufgenommene Filme lassen sich teilweise zwar noch laden, laufen aber nicht mehr los).


    Da warte ich noch auf fixes (falls es die mal geben sollte).


    Ich vermute des Weiteren, dass die alten OS Version für die älteren Boxen cifs 3.0 noch nicht unterstützen.


    /Willi/

    Hallo Tr8or,


    kommt immer drauf an. Ich habe auch für andere Zwecke immer einen Windows Server laufen.

    In dem Fall braucht es keine extra Festplatte mehr für Aufnahmen.

    Der nächste Vorteil ist, möchte man einen Film archivieren hat man Ihn bereits auf dem Server / Rechner

    und kann Ihn auch von dort aus direkt wieder abspielen. Hat man mehrere Boxen dann ist Film sharing

    überhaupt kein Problem. Des weiteren habe ich inzwischen mehrere Threads gelesen, dass es mit USB

    Festplatten direkt an der Box doch so einiges an Schwierigkeiten gibt.


    Die Netzwerklösung funktioniert wirklich erstaunlich gut.


    Ich mag darum diese Lösung sehr.


    Das es nicht für jeden was ist, ist mir schon klar.


    /Willi/

    Für die Newbies:


    Wer sich gerade eine neue Dreambox ONE oder TWO gekauft hat, und die ersten

    Schritte der Installation hinter sich hat:


    - Eine aktuellere (nicht die neuste) Firmware auf die Box aufgespielt hat

    - Die ersten Konfigurationen durchgeführt hat

    - Getestet hat, dass sich seine Box nach dem Warmwerden noch über die

    Fernbedienung problemlos aus dem Standby wieder einschalten lässt.

    - Und sich bereits damit abgefunden hat, dass die ONE oder TWO noch so

    einiges an Bug fixes und Weiterentwicklungen bedarf,


    und sich nun fragt: Auf welchem Medium speichere ich am Besten meine (Film)Aufnahmen?


    Dem empfehle ich, wenn er so wie ich aus der Windows Welt kommt, und einen

    Rechner hat der sowieso ständig läuft, statt einer eigenen Festplatte oder

    Stick an die Box anzuschließen, eine Windows Platte als Speichermedium zu nutzen.


    Denn das funktioniert wirklich gut!


    Weil die Einrichtung solch einer Verbindung doch so einiges an Tücken hat,

    hab ich mal eine Schritt für Schritt Anleitung geschrieben wie man dies zum

    laufen bekommt.


    Diese findet sich hier:


    https://drive.google.com/file/…DgDKu-d2/view?usp=sharing


    Ich hoffe sie hilft.


    /Willi/

    Sven,


    Sorry mein cut and paste Fehler:

    Code
    self.progress = self.session.instantiateDialog(Progress)
    # öffnet den Schirm.


    Aufgefufen wird das close in einer FB Callback Exit Routine.


    Code
    self.progress.close()
    self.close() # um alles zu beenden


    und dann ist das Programm zu Ende bis auf den Progress Bildschirm, der bleibt stehen.


    /Willi/

    Ein paar Fragen an die Screen Spezialisten:




    Dieser einfache Hello world Screen lässt sich mit:


    self.progress = self.session.instantiateDialog (Progress)


    Wie kann ich diesen Screen bei Programmende wieder schließen. Sonst bleibt er einfach stehen

    und führt zu einem Segmentation fault bei Neustart des Programms


    Mit self.progress.close()

    bleibt der Bildschirminhalt stehen. In den Screens Sources steht, das dieser mit:


    print("WARNING: NEVER call Screen.doClose directly!!! You have to use Session.deleteDialog(screen)


    Nur wie get das genau?


    /Willi/

    Ein paar Fragen an die Screen Spezialisten:


    Dieser einfache Hello world Screen lässt sich mit:


    self.progress = self.session.open (Progress)


    erzeugen und über "self.progress" kann man damit auch weiter kommunizieren (z.B.: kann mit: self.progress.showProgress() aufgerufen werden)


    Frage 1: kann ich verhindern, dass dieser neue Screen den FB Focus erhält?

    Frage 2: kann ich die Screen Header Zeile ("Progress") komplett loswerden?


    Gibt es da eine Lösung?


    /Willi/

    Hallo alpha,


    Hilf einem blutigen Python Anfänger doch mal auf die Sprünge:

    Wie würde man den einfachen folgenden Code zum laufen bringen (getestet mit Python 2.7)


    Da fehlt mir eindeutig know how!


    /Willi/

    Hallo alpha,


    "doSeekRelative" direkt aufzurufen geht natürlich. Wenn Du mal in meine 2. Antwort (von oben die dritte)

    schaust ist das auch mein Workaround.


    Ich dachte es gibt eine elegante Methode stattdessen direkt die fertige "action" Funktion aus "infoBarActionMap"

    aufzurufen. Da könnte ich auch noch in Punkto Python Programmierung was lernen.

    Aber wenn das nicht geht, dann nehme ich mir die 3 vor mir benötigten Programmzeilen aus "infoBarActionMap"

    und kopier die bei mir rein.


    /Willi/