Adrenalin Plugin for DreamOS

  • Deswegen wäre ich ja an einer Lösung interessiert, die mir anzeigt, welcher Prozess da die HDD aktiviert ;)


    Gäbe es da irgendwie eine Möglichkeit?

    Könnte das die Harddisk.py irgendwie liefern?

  • Mit lsof kommen ja jede Menge Infos.

    So richtig relevant filtern (mit w und u) konnte ich da auch noch nicht.

    Hab zumindest darüber keinen Treffer für diesen Waleup-Zugriff bekommen.

    Ist vielleicht auch ein Glücksspiel, ob man im richtigen Moment die Abfrage macht.


    Hab gelesen, dass es dafür unter linux das iotop gibt.

    Hab leider noch kein passendes Paket für DreamOS gefunden.


    Hast du eine Idee, wie man das auf die Dreambox bekommt?

  • in der Debian-Paketsuche hatte ich es schon geladen.

    Ließ sich aber nicht installieren.

    Depends pyrhon-armhf fehlt oder so.


    Für die 920 muss ich doch das armfh-paket laden, oder?


    Welchen Zweig muss man da nehmen?

    Jessie oder Strech?


    Hast du vielleicht einen passenden Link?

  • Verdammt, bis auf ein paar Telnet-Befehle für die Dream ist mir Unix eigentlich unbekannt ;)


    Hab jetzt mal die strech versucht, da sagt er, er braucht python3.

    Mit der jessi kommt folgendes, obwohl doch python2.7 installiert sein müsste:

    https://packages.debian.org/jessie/iotop

    beim Versuch iotop in Telnet aufzurufen, kommt das:

    Code
    1. root@dm920:/# iotop
    2. No module named iotop.ui
    3. To run an uninstalled copy of iotop,
    4. launch iotop.py in the top directory
  • Ich mag keine komischen pythn scripts, aber das wird das Problem sein:


    python data.py

    Could not run iotop as some of the requirements are not met:

    - Linux >= 2.6.20 with

    - I/O accounting support (CONFIG_TASKSTATS, CONFIG_TASK_DELAY_ACCT, CONFIG_TASK_IO_ACCOUNTING)

    - VM event counters (CONFIG_VM_EVENT_COUNTERS)


    Scheinbar fehlt Ihm da was das nicht in den Kernel gebaut ist ... Insofern bringt es dir nichts wenn ich dir das Paket umbauen.

  • weis nicht, du darfst nicht vergessen das die Tools ja auch auf dem device lesen müssen was das Ergebnis verfälscht.


    Ich würde einfach mal die Haryddisk read only mounten, dann siehst du evt. ob es fehler gibt und in /proc kannst du auch für das enigma2 wenn du seine pid weist rausuchen welche files es ofen hat.

  • das Problem ist, dass es ja alles mögliche sein kann.

    Zugriffe über /dev/.. könnten es auch sein.

    Zum Beispiel weckt das Auslesen der HDD-Temperatur ja auch die HDD auf ;)


    Mit reaonly mounten geht ja nicht, da es ja nur nach dem Cachen bei neuer Aufnahme auftritt.

    Also müsste ich ja erstmal was aufnehmen :)


    Das ist mir zu viel Stress.

    Dann muss ich eben damit leben, dass die HDD erst beim 2. Anlauf ausbleibt ;)

  • Na ja das Plugin ist sowieso nicht sehr berühmt, bzw. auch sicher nicht bei hunderten Leuten im Einsatz und solange es für mich tut was es soll (Zahnräder ersparen) sehe ich das ziemlich wertfrei

  • Danke.

    Anbei die Logdatei. Hoffe man erkennt was :)


    Gruß

    Auch mit der aktuellen Version funktioniert das Adrenalin bei mir nicht.

    Wenn ich helfen kann das Problem einzukreisen, z. B. mit einem erneuten Log bei der aktuellen Version, gern Bescheid geben.


    Gruß

  • Ich musste einen neuen USB-Stick verwenden, da der alte Stick offenbar ne Macke hatte.

    (den Stick nutze ich für PTS damit die Festplatte in den Standby gehen kann)


    Nun ist es so, dass Adrenalin jetzt beide Geräte - die HDD (sda) und den USB-Stick (sdb) - ständig "beobachtet".

    Mit dem alten Stick wurde immer nur die HDD geprüft.

    Jetzt scheint der Stick irgendwie als "Festplatte" vom System erkannt zu werden.

    Kann man hier das irgendwie beeinflussen, dass der neue Stick auch als Stick und nicht als Festplatte erkannt wird ?


    Wenn der USB-Stick geprüft wird, erscheint immer das hier im Log:

    Code
    1. SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    hier mal ein etwas längerer Absatz.

  • das Adrenalin holt sich das device aus dem config Parameter config.storage_options.default_device, schau mal in den settings was da steht.


    Aber ich wollte das Adrenalin sowieso in python neu schreiben, weil der Hybrid aus C Code und Python ist die root cause für die ganzen Synchronisationsprobleme die wir scheinbar nicht ganz weg kriegen.


    Hättest du Lust das zu Testen wenn ich es fertig habe ?

  • Default-Device ist die HDD (sda)

    In der Settings steht da die uuid der HDD.


    Hatte mir mal beim Start das self.default und uuid ausgeben lassen (die uuid entspricht der Festplatte, hab sie hier nur ge-x-t)

    [ADRENALIN] CHECK self.default_dev, uuid: /dev/sda /dev/disk/by-uuid/xxxxx-xxxxx-xxxxxx-xxxxxxxx


    Komisch ist ja nur, dass Adrenalin später dann trotzdem beide Geräte prüft.


    Hat der da noch irgendwo ein "for device in devices" drin?


  • Oder läuft das def Adrenalin__runIdle(self): für jedes Gerät, weil DreamOS beide Geräte als "Festplatte erkennt" und daher für beide das runIdle gestartet hat ?


    Kann man dann DreamOS irgendwie ausreden, dass es sich bei dem Stick um eine "Festplatte" handelt?

  • Wie gesagt ich mag da keine Zeit reinstecken wenn ich es eh total umschreiben muss --- bitte um Geduld, das kostet mich schon ein paar Stunden Arbeit ----


    Nur wird das erstmal ein ziemlicher Rüchschlag in der Funktionalität, ich muss jetzt mal die Basics reinmachen wie das explizite Harddisk in Standby setzen und aufwecken mit den vorhandenen python code statt meinem eigenen adrenalin.so

  • Ich denke, dass es gar kein Problem von Adrenalin ist.


    Das System hat jetzt nur 2 Festplatten erkannt (1 echte HDD und ein USB-Stick).

    Daher wird für jede "Festplatte" das runIdle vom DreamOS gestartet.

    Und Adrenalin verarbeitet es nur.


    Grundsätzlich funktioniert es ja, nur dass das inStandby-Setzen bei einem USB-Stick doch Blödsinn ist, oder ?

    Jetzt ist doch die Frage, warum DreamOS den USB-Stick als "Festplatte" erkennt und nicht mehr als "USB-Stick" ???


    Denn mit dem alten USB-Stick wurde das runIdle nur für die echte HDD gestartet.

    Der alte USB-Stick wurde diesbezüglich komplett ignoriert, was für mich auch richtig wäre.

  • Na ja schaden kann es nicht, weil es ja auch USB Harddisk gibt (z.B. bei der 52x) und ein Stick geht eh nicht in standby also tut Ihm der Befehl nicht weh, genauso wie eine SATA SSD.


    Aber ich nuckle jetzt die ganze Harddisk liste ab, kannst du mal das Adrenalin aus dem Anhang probieren, wobei ausser dem Standby der Harddisk und dem Filemonitor auf die default location wo du hin aufnimmst klappt da noch nichts, die eigentliche Adrenalin Funktion muss ich erst einbauen.


    Ausser der Play/Pause und der stop Taste und des Harddisk Standby auf Blau wird da also noch nichts funktionieren, aber das sollte jetzt sauber alle SATA und USB devices mitnehmen.


    LG

    gutemine


    EDIT: mit der 0.31 habe ich auch das Anzeigen der Harddisk Temperatur wieder reingemacht, allerdings ist dadurch jetzt das hddtemp binary als dependency beim Installieren richtig aufzulösen.

  • hab die 0.31 mal installiert.

    Ist ja wirklich noch sehr nackig ;)


    Die Temperatur wird zumindest schon mal angezeigt, was sonst bei mir ja immer ein Problem war :thumbup:

    Das mit dem Standby konnte ich noch nicht testen, da gerade Aufnahmen laufen :)


    Komisch ist nur die Grafik im Plugin.

    Ein rotes X und die Uhr.

    Das X heißt ja, dass Adrenalin nicht läuft, ok - das geht ja auch noch nicht in der 0.31, wenn ich das richtig verstanden habe.

    Aber wenn Aufnahmen laufen, dürfte doch das Uhrensymbol nicht zu sehen sein, oder ?

  • Da läuft auch noch GAR nichts, ich muss erstmal richtig die Files zum Cachen erkennen und auch die Status Erkennung der Harddisk muss erst wieder richtig funktionieren.


    In derr 0.32 funktioniert wenigstens das erkennen der zu cachenden Files, auch das start/stop geht von der Logik im Plugin hoffentlich wieder richtig. JETZT erst kann ich das Adrenalin Caching wieder einbauen und die Harddisk standby Erkennung.

  • Ja, bei der 0.32 tut sich schon etwas mehr ;)

    Standby und Wakeup geht im Plugin.

    Start von Adrenalin im Plugin geht auch.


    Vorher hatte ich bei MB-Size immer "00" stehen, wodurch ein Cache von ca. 15-17MB gebildet wurde.

    Da muss ich jetzt schon Stufe 3 nehmen, wo ich dann auf 23MB komme. (1 = 3MB, 2 = 11MB)


    Das eigentliche Caching funktioniert in der Version ja noch nicht, oder ?

    (weil beim Öffnen von EMC die Platte hochfährt)


    Und ne Kleinigkeit:

    Die Temperatur bzw. der Standby-Status refreshed sich nicht solange das Plugin geöffnet ist.

    Also wenn ich die HDD in den Standby schicke, dann steht das noch die Temp.

    Erst wenn ich das Plugin neu öffne, dann steht da "in Standby". Aktiviere ich die HDD dann wieder, kommt keine Temp.

    Erst wieder nach Plugin neu öffnen.

  • Ja im Moment lese ich die Harddisk Temperatur nur 1x beim Aufmachen des Plugins, so schnell kühlt die ja nicht aus. Aber in der 0.33 benutze ich wieder das hddparm statt dem hdtemp binary, weil ersteres is normal eh immer schon im Image und muss nicht nachinstalliert werden.


    Probiert mal die 0.33 da habe ich jetzt auch was wakeup auf der Play/Pause Taste wieder aufgedreht und es wird jetzt die setSleep Routine aus der Harddisk.py verwendet statt eine Kopie im Plugin zu haben.


    Erst wenn der Harddisk Status sauber erkannt wird und auch das play und stop wieder funktioniert, inklusive dem Standby auf Blau macht es sinn das caching wieder aufzuredehen. Und ich muss erst den File Monitor vom e2 ausgiebig testen, weil damit sollte wir in der Lage sein jedesmal wenn durch eine Aufnahme ein neues File entsteht das gleich zu chachen womit das ganze cachen on standby oder bei Timer Ende welches den Python Teil des Plugins nur unnötig kompliziert gemacht hat nicht mehr nötig sein sollte.


    Und das Stealt Wakeup wenn man die PVR Taste drückt muss ich auch noch wieder aufdrehen :P


    Mal sehen ob ich es hinbringen, aber heute nicht mehr ....

  • Ja aber es kahm manchmal mit dem standby vom enigma2 durcheinander, jetzt sollten die synchron bleiben weil die gleiche classe verwendet wird.


    Aber in der 0.34 ist jetzt auch das steath wakeup wieder drinnen. Kann man im Moment aber nur testen indem man die Harddisk im Plugin schlafen schickt und dann im Plugin drinnen wieder PVR drück t um zu sehen ob es nach der delay zeit wieder aufwacht.


    Wenn jetzt alles wieder so wie vorher geht sind wir jetzt wieder 'ready for caching' .... sozusagen :P


    Und zu deiner cache size Frage - in der 0.35 werden Unterdirectories wieder berücksichtigt, damit sollte die Cache Size ca. so wie früher sein.

  • Ok, bei Stufe "1" liege ich jetzt bei 21MB Cache (vorher bei "00" bei etwa 17MB)


    Das Wecken/Schlafen legen funktioniert im Plugin zuverlässigt inkl. der Anzeige.

    Auch bei PVR wird die HDD nach vorgegebener Zeit aufgeweckt ;)


    Nur wird in der 0.35 keine Temperatur mehr angezeigt.

    Die Zeile ist komplett leer (egal ob im Standby oder nicht, auch nach mehrmals Plugin neu öffnen nichts)


    Code
    1. root@dm920:/# hddtemp /dev/sda
    2. /dev/sda: ST1000LM048-xxxxxx: drive is sleeping
    3. root@dm920:/# hdparm -H /dev/sda
    4. /dev/sda:
    5. HDIO_DRIVE_CMD(hitachisensecondition) failed: Input/output error

    Gruß Dreamy (aka Sven H)

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von Dreamy ()

  • Bei mir gehts ... auch wenn die Harddisk im Standby ist:


    Code
    1. hdparm -H /dev/sdb/dev/sdb:
    2. drive temperature (celsius) is: 37
    3. drive temperature in range: yes


    Das hdtemp binary wird derzeit nicht mehr verwendet ;)