Panic Button über USB-Stick ...

    • Panic Button über USB-Stick ...

      Wer kennt das nicht: man startet ein Plugin oder öffnet einen Netzwerk mount - nichts geht mehr und Dauerspinner ohne Ende. Ein PC ist gerade nicht gestartet um Enigma2 oder die Box neu zu starten. Also was tun? Stecker ziehen oder den Ein/Ausschalter betätigen. Ist eine Möglichkeit - aber nicht gerade gut für das Filesystem der Harddisk oder des USB-Sticks - wenn man Pech hat, startet die Box danach nicht mehr. Meist reicht es auch einfach Enigma2 neu zu starten.

      Hier eine Möglichkeit, Enigma2 oder die Box neu zu starten - ohne laufenden PC:

      Entweder man benutzt dafür den Stick für picons etc - oder einen defekten oder alten Stick mit wenig Speicher, denn man für sonst nichts mehr gebrauchen kann oder ein alten WLAN Stick, USB-Platte usw.

      Als erstes steckt man das gewünschte USB-Device an die Box und liest die SerialNumber aus:

      Source Code

      1. root@dm800seGZ:~# cat /proc/bus/usb/devices
      2. .
      3. .
      4. .
      5. T: Bus=01 Lev=02 Prnt=03 Port=03 Cnt=02 Dev#= 15 Spd=480 MxCh= 0
      6. D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
      7. P: Vendor=0718 ProdID=0533 Rev= 1.10
      8. S: Manufacturer=Imation
      9. S: Product=Atom
      10. S: SerialNumber=078B0C2F0031
      11. C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
      12. I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
      13. E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      14. E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      Display All


      mit der SerialNumber können wir udev dazu bewegen, dass eine bestimmte Aktion beim Anstecken des Devices ausgführt wird

      zuerst erstellen wir ein script in /usr/script oder /media/hdd
      /media/hdd/panicbutton.sh

      Shell-Script

      1. #!/bin/sh
      2. # restart enigma2
      3. if $(wget -q -O - http://127.0.0.1 > /dev/null); then
      4. echo "restart enigma2" > /tmp/panicbutton.log
      5. $(wget -q -O - http://127.0.0.1/web/powerstate?newstate=3 >/dev/null)
      6. else
      7. echo "kill enigma2 and restart" > /tmp/panicbutton.log
      8. init 4
      9. sleep 5
      10. init 3
      11. fi
      12. exit 0
      Display All


      dann machen wir es ausführbar

      Source Code

      1. chmod 755 /media/hdd/panicbutton.sh


      das script versucht bei erreichbaren Web-IF der Box einen sauberen Enigma2 Neustart (EPG und geänderte Enigma2 Einstellungen werden gespeichert). Ist das Web-IF nicht erreichbar, wird enigma2 gekillt und neu gestartet (kein epg und setting save)


      jetzt erstellen wir uns eine neue udev-rule mit Dateirechten 644
      /etc/udev/rules.d/70-usb-storage-panicbutton.rules

      Source Code

      1. SUBSYSTEMS=="usb", KERNEL=="sd?",ATTRS{serial}=="078B0C2F0031", RUN+="/media/hdd/panicbutton.sh"


      einfach in ATTRS{serial}=="xx" die SerialNumber des USB-Devices eintragen,


      jezt noch udev neu einlesen, damit die neue rule wirksam wird:
      Befehl korrigiert

      Source Code

      1. udevadm control --reload-rules

      und/oder

      Source Code

      1. /etc/init.d/udev restart

      oder die Box rebooten


      Steckt man jetzt das USB-Device (neu) an, wird Enigma 2 neu gestartet. Sollte das nicht fruchten, kann man noch immer den Stecker ziehen.

      man kann auch gleich einen reboot machen ohne script
      /etc/udev/rules.d/70-usb-storage-panicbutton.rules

      Source Code

      1. SUBSYSTEMS=="usb", KERNEL=="sd?",ATTRS{serial}=="078B0C2F0031", RUN+="/sbin/shutdown -r now"


      wichtig ist nur, dass in den udev-rules die absoluten Pfade angegeben werden. So kann per udev-rules jedes x-beliebige script oder Action ausgeführt werden.

      mit KERNEL=="sd?" werden nur Massenspeicher erkannnt, WLAN-Stick etc. können über andere Parameter erkannt werden, mehr darüber z.B. hier: ubuntu - udev-rules

      so kann man nun alles mögliche starten bzw. ausführen, wenn ein USB-Device angesteckt wird ...

      Have Fun
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      The post was edited 12 times, last by Fred Bogus Trumper ().

    • RE: Panic Button über USB-Stick ...

      @Fred Bogus Trumper

      Das ist doch mal eine gut durchdachte Sache.
      Ich danke dir für die super idee.


      Gruß
      TopZZ
      Gruß TopZZ

      DM 7080sss mit NN2 DM 8000sss mit NN2
    • Hallo,
      finde ich super!
      Habe nur ein Verständnisproblem! Geht das auch mit dem Stick der eh schon in der Box steckt wo jetzt die Picons, Swap und EPG save drauf liegen?
      Wenn die Box dann hängt, den vorhandenen Stick rausziehen und wieder einstecken und die Box startet im Idealfall neu?
      Oder muss das ein Extra Stick sein?
      Ich war schon immer schizophren doch jetzt sind wir zu dritt!
    • Super idee. Hab schon gebastelt und den beiliegenden Stick der 8k verwendet.
      Ein Hinweis waere noch zum udev restart. Der richtige Befehl ware /etc/init.d/udev reload

      @casimir
      es ist fast so wie bei windows mit autostart. Wenn der stick mit der hinterlegten seriennummer an die box angesteckt wird fuehrt die box das script zum softrestart aus.

      Also funtioniert das leider nicht mit dem stick fuer die picons.
    • :tongue: - au backe .... =)

      Hatte das auch mit einem anderen Image auf der 2. Box getestet - was so natürlich nicht ging ...
      und prompt vergessen, dass ich auf der falschen Box war

      shame on me! :aufgeben:

      ich habe es im 1. post ausgebessert

      Original von Casimir01
      Hallo,
      finde ich super!
      Habe nur ein Verständnisproblem! Geht das auch mit dem Stick der eh schon in der Box steckt wo jetzt die Picons, Swap und EPG save drauf liegen?
      Wenn die Box dann hängt, den vorhandenen Stick rausziehen und wieder einstecken und die Box startet im Idealfall neu?
      Oder muss das ein Extra Stick sein?


      sollte beides gehen, zumindest startet die Box normal, wenn der "Panic Button Stick" bereits angestöpselt ist. unplug/plug sollte die Box neu starten - auf jeden Fall ein paar Sekunden warten, bevor man den Stick neu ansteckt
      ob der swap wieder korrekt eingerichtet wird, habe ich noch nicht getestet, glaube aber nicht, dass das funktioniert, epg-save sollte funktionieren, wenn /autofs/uuid als speicherort gewählt wurde

      Ich verwende dafür einen defekten Stick, der immer neben der Box liegt. Bin eigentlich auf die Idee gestoßen, weil ich mir überlegte, wofür man so eine USB-Leiche noch verwenden kann
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      The post was edited 2 times, last by Fred Bogus Trumper ().