You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

  • "Toxic-Tonic" started this thread

Posts: 3,646

Location: Mülheim / Ruhr

Occupation: Admin

  • Send private message

1

Wednesday, September 13th 2006, 12:49pm

[Gelöst] S100-Powerbutten aus Shell-Script auslösen

Moin!

Habe da mal wieder eine Kopfnuß:

Ich muß einen Rechner über ein Shellscript runterfahren! Soweit, so einfach! Aus einen bestimten Grund will ich aber dem System vorgaukeln, der Powerbutton wäre gedrückt worden!

Hintergrund: Das ganze läuft auf einer T-Online S100 ab und da "merkt" sich das System (oder besser Gehäuse), ob es an oder aus ist! Wenn ich das System über poweroff runterfahre, merkt das Gehäuse nix davon, wenn ich den Knopf drücke, schon und Linux fährt über das ACPI-Event ja trotzdem runter!

Also ich hoffe es gibt sowas wie "echo "powerbutton">/dev/atx" um es aus dem Script heraus das zu initieren!

Jemand einen Vorschlag?

Danke und Gruß

Toxic
Registrierter VDR-User #1275

HW: ASUS M4N78 Pro - Athlon II x2 235e - 3x TT S2-1600 - Superflower SF101BK
HW2: Asrock ION 330HT - Devel-System
SW: selfmade HD-VDR - Debian Squeeze amd64 - Kernel 3.0.4 - VDR 1.7.31 - MLD-ExtP - Xineliboutput / Xine - XBMC + VNSI/XVDR
---------------------------------------------------
Sonstiges: RaspberryPi mit Raspbmc (will mal VOMP testen)

This post has been edited 3 times, last edit by "Toxic-Tonic" (Dec 18th 2006, 1:23pm)


2

Wednesday, September 13th 2006, 12:55pm

RE: ATX-Powerbutten aus Shell-Script auslösen

Probier mal den gewünschten S-State auf /proc/acpi/sleep zu schreiben

arghgra
Sanyo 51cm CRT, Sony SLV Stereo-VHS

  • "Toxic-Tonic" started this thread

Posts: 3,646

Location: Mülheim / Ruhr

Occupation: Admin

  • Send private message

3

Wednesday, September 13th 2006, 1:01pm

RE: ATX-Powerbutten aus Shell-Script auslösen

Leider kein /prox/acpi/sleep!

Zur Auswahl:

Source code

1
2
3
4
5
6
7
8
9
10
/button
/embedded_controller
/power_resource
/video
alarm
dsdt
event
fadt
info
wakeup


wenn ich versuche was in event zu schreiben, sagt er" Recource busy"!

Gruß

Toxic
Registrierter VDR-User #1275

HW: ASUS M4N78 Pro - Athlon II x2 235e - 3x TT S2-1600 - Superflower SF101BK
HW2: Asrock ION 330HT - Devel-System
SW: selfmade HD-VDR - Debian Squeeze amd64 - Kernel 3.0.4 - VDR 1.7.31 - MLD-ExtP - Xineliboutput / Xine - XBMC + VNSI/XVDR
---------------------------------------------------
Sonstiges: RaspberryPi mit Raspbmc (will mal VOMP testen)

Sledge Hammer

Professional

Posts: 1,017

Location: Duingen

Occupation: Erbsenzähler

  • Send private message

4

Wednesday, September 13th 2006, 1:03pm

RE: ATX-Powerbutten aus Shell-Script auslösen

Probier mal etwas in Richtung echo "button power.*" > /proc/acpi/event oder echo "button/power.*" > /proc/acpi/event
VDR-User #992
Hardware: Antec Fusion, A64 X2 3800+, M2NPV-VM, TT S2-6400, Nvidia GT430, OCZ Vertex 30 GB SSD, 1x WD WD20EZRX 2000 GB, 1x WD30EZRX 3000 GB
System: Ubuntu 12.04, DVB-Treiber mediabuild vom 18.04.2014
VDR: VDR 2.0.6 mit softhddevice, epgsearch, lcdproc, live, noepg, skinNopacity, xmltv2vdr, fritzbox

  • "Toxic-Tonic" started this thread

Posts: 3,646

Location: Mülheim / Ruhr

Occupation: Admin

  • Send private message

5

Wednesday, September 13th 2006, 1:05pm

RE: ATX-Powerbutten aus Shell-Script auslösen

Wie gesagt, wenn ich in /proc/acpi/event schreiben will kommt "Device or resource busy"

Toxic
Registrierter VDR-User #1275

HW: ASUS M4N78 Pro - Athlon II x2 235e - 3x TT S2-1600 - Superflower SF101BK
HW2: Asrock ION 330HT - Devel-System
SW: selfmade HD-VDR - Debian Squeeze amd64 - Kernel 3.0.4 - VDR 1.7.31 - MLD-ExtP - Xineliboutput / Xine - XBMC + VNSI/XVDR
---------------------------------------------------
Sonstiges: RaspberryPi mit Raspbmc (will mal VOMP testen)

6

Wednesday, September 13th 2006, 1:14pm

Hi,
der Powerbutton löst doch auch nur ein Skript aus.
Bei Kanotix zB sieht dieses Skript so aus:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/sh
# /etc/acpi/powerbtn.sh
# Initiates a shutdown when the power putton has been
# pressed.

# If powersaved is running, let it process the acpi event
if pidof powersaved; then
    exit 0
fi

if ps -Af | grep -q '[k]desktop' && test -f /usr/bin/dcop
then
    dcop --all-sessions --all-users ksmserver ksmserver logout 0 2 0 && exit 0
else
    /sbin/shutdown -h now "Power button pressed"
fi



Gruss
Marc
>>>> x-vdr <<<< Installations-Skript für einen VDR mit Debian als Basis

  • "Toxic-Tonic" started this thread

Posts: 3,646

Location: Mülheim / Ruhr

Occupation: Admin

  • Send private message

7

Wednesday, September 13th 2006, 1:19pm

Ja, das script direkt aufrufen geht auch, aber dann "merkt" das das Gehäuse halt nichts! Ich hoffe, das es über das direkte "virtuelle" drücken des Powerbuttons hinbekomme!

Gruß

Toxic
Registrierter VDR-User #1275

HW: ASUS M4N78 Pro - Athlon II x2 235e - 3x TT S2-1600 - Superflower SF101BK
HW2: Asrock ION 330HT - Devel-System
SW: selfmade HD-VDR - Debian Squeeze amd64 - Kernel 3.0.4 - VDR 1.7.31 - MLD-ExtP - Xineliboutput / Xine - XBMC + VNSI/XVDR
---------------------------------------------------
Sonstiges: RaspberryPi mit Raspbmc (will mal VOMP testen)

8

Wednesday, September 13th 2006, 1:46pm

Wenn man den acpid killt, kann man sich die ausgelösten Events mittels cat /proc/acpi/event anzeigen lassen. Allerdings läuft dann ja kein Daemon, der sie verarbeitet.
Ich vermute mal stark, dass /proc/acpi/event nicht schreibbar ist bzw. das ein schreiben darauf keine Hardware-Reaktion hervorruft.

Ich denke, du müsstest entweder irgendwie rausfinden, wie genau das Gehäuse seinen Zustand feststellt, oder eben den Powerbutton tatsächlich drücken/überbrücken, z.B. mit einem Relais, das du über die serielle oder parallele Schnittstelle ansteuerst.

  • "Toxic-Tonic" started this thread

Posts: 3,646

Location: Mülheim / Ruhr

Occupation: Admin

  • Send private message

9

Wednesday, September 13th 2006, 2:20pm

Der Ansatz ist gut, aber die Datei (events) zeigt er trotzdem nicht an! Habe das Gefühl wenn der Daemon weg ist, dann ist die Datei zwar frei, kann aber nicht gelesen werden!

Bisher haben alle Vorschläge mit dem ACPI zu tun, ich weiß aber, das die IR-Lösung bei der S100 am PS2-Port hängt! Ergo, es müßte doch eine Möglichkeit geben über den Tastatur-Puffer (z.B.) den Befehl zu übergeben! Wie kann ich denn den Tastatur-Puffer mitschneiden und/oder direkt beschreiben?

Danke und Gruß

Toxic
Registrierter VDR-User #1275

HW: ASUS M4N78 Pro - Athlon II x2 235e - 3x TT S2-1600 - Superflower SF101BK
HW2: Asrock ION 330HT - Devel-System
SW: selfmade HD-VDR - Debian Squeeze amd64 - Kernel 3.0.4 - VDR 1.7.31 - MLD-ExtP - Xineliboutput / Xine - XBMC + VNSI/XVDR
---------------------------------------------------
Sonstiges: RaspberryPi mit Raspbmc (will mal VOMP testen)

TKONeo

Intermediate

Posts: 248

Location: Nürnberg

Occupation: Student

  • Send private message

10

Wednesday, September 13th 2006, 2:28pm

Sorry kann noch nichts konstruktives beitragen, bin aber selber gerade am Testen. Scheint so als wären wir zwei beide mit die einzigen S100 Besitzer hier im Board. Obwohl diese Kiste einfach nur genial ist.

Bau doch einfach die SMD's aus, dann geht dir das Geblinke vom Display nicht mehr auf die Nerven, ergo wäre es auch egal ob die Über SW oder HW das System runterfährst, da es keine veränderung mehr am gehäuse gibt.

Hast du eigentlich den Kondensator-Mod bei dir eingebaut? Für's langsame runterfahren? Steht irgendwo im zenega-board/wiki.
Ich schalte momentan einfach über Powerbutton auf der FB aus, aber da schaltet sich natürlich das system ab, bevor es heruntergefahren wurde.

Wenn du eine Lösung mit dem ATX-Powerbutton aus dem Shell-Skript raus hast, dann müssen wir noch rausfinden wie wir das Abschalten des Systems durch den Powerbutton auf der FB unterbinden, denn dann können wir ja unser Shell-Skript aufrufen, das Sys orderntlich runterfahren und anschließend den "Powerbutton" betätigen.
VDR #1:
SW: LINVDR 0.7 (2.6.20.1 @Dr. Seltsam) VDR 1.4.5-2-extp22 + Mahlzeit-ISO 3.2
HW: Asus Pundit-R - Pentium III 2GHz - 7'' TFT für GraphTFT - Nexus-S Rev. 2.3
VDR #2 (Client):
SW: LinVDR 0.7 (2.6.17.3 @Dr. Seltsam) VDR 1.4.0-1 + DXR3 @Dr. Seltsam
HW: T-Online Streaming Box S-100 - Pentium M 788MHz - DXR3 Karte - 1GB CF
Registered User: #1096

  • "Toxic-Tonic" started this thread

Posts: 3,646

Location: Mülheim / Ruhr

Occupation: Admin

  • Send private message

11

Wednesday, September 13th 2006, 2:36pm

Fürchte, ganz so einfach ist das nicht!

Also das Kondensator-Mod habe ich drin! Ist so simpel, solltest du auch machen!

Das problem ist nur, wenn ich über poweroff das System runterfahre, startet das nächste mal das mms nicht mehr richtig! Da muß also die Elektronik noch etwas mehr machen, als nur blinken!!

Btw. gibt es einige hier im Board die auch mit den S100/Zenega rumspielen, aber die VDR-Integration wurde bisher etwas Stiefmütterlich behandelt!

Naja, vielleicht schaue ich mir die Patine nochmal an, das mit dem Blinken geht mir nämlich auch auf den Sack!

Gruß

Toxic
Registrierter VDR-User #1275

HW: ASUS M4N78 Pro - Athlon II x2 235e - 3x TT S2-1600 - Superflower SF101BK
HW2: Asrock ION 330HT - Devel-System
SW: selfmade HD-VDR - Debian Squeeze amd64 - Kernel 3.0.4 - VDR 1.7.31 - MLD-ExtP - Xineliboutput / Xine - XBMC + VNSI/XVDR
---------------------------------------------------
Sonstiges: RaspberryPi mit Raspbmc (will mal VOMP testen)

  • "Toxic-Tonic" started this thread

Posts: 3,646

Location: Mülheim / Ruhr

Occupation: Admin

  • Send private message

12

Monday, December 18th 2006, 1:16pm

Falls nochmal jemand über das Problem stolpert, hier habe ich ein Script gefunden, das das Problem löst: vdr2zenega

Gruß

Toxic
Registrierter VDR-User #1275

HW: ASUS M4N78 Pro - Athlon II x2 235e - 3x TT S2-1600 - Superflower SF101BK
HW2: Asrock ION 330HT - Devel-System
SW: selfmade HD-VDR - Debian Squeeze amd64 - Kernel 3.0.4 - VDR 1.7.31 - MLD-ExtP - Xineliboutput / Xine - XBMC + VNSI/XVDR
---------------------------------------------------
Sonstiges: RaspberryPi mit Raspbmc (will mal VOMP testen)

This post has been edited 1 times, last edit by "Toxic-Tonic" (Dec 18th 2006, 1:22pm)


Urig

Professional

Posts: 1,222

Location: Kassel

  • Send private message

13

Monday, December 18th 2006, 6:02pm

Danke für den Hinweis, das das Schalten auch anders herum funktioniert, hatte ich noch gar nicht mitgekriegt.

Ich hänge leider noch an einem ganz anderen Problem. Ich hab bei meiner s100 die PS/2-Ports umschaltbar 'freigelegt' und darüber auch einen klassischen Powerbutton vorgesehen. Starte ich nun ohne den Powerbutton der Frontplatine, bleibt die Anzeige auf konstant rot, und die Fernbedienung funktioniert nicht. Auch die Bytefolge um das Blinken abzuschalten, ändert daran nichts.

Noch lästiger: Starte ich per Frontbutton und ohne Tastatur+Mausverbindung, erkennt die Frontplatine das als Fehler und startet immer wieder neu. Vermutlich erwartet die Frontplatine innerhalb der ersten Sekunden die Aktivierung beider PS/2-Ports, und startet andernfalls neu.

(Um das für alle nochmal klar zu machen: Die Frontplatine ist mit den PS/2 Tastatur- und Mausport verbunden, mit COM2, und mit dem ATX-Powerbutton. Die Fernbedienung steuert den ATX-Powerbutton und die Tastatur, die Mausanbindung scheint keine Funktion zu haben - darf aber auch nicht getrennt sein.)

Gruß,

Udo

OlaLu

Beginner

Posts: 12

Location: LSA

  • Send private message

14

Monday, January 8th 2007, 8:26am

PowerBtn und Fernbedienung

Jetzt ist es mir endlich gelungen, den LinVDR auf der S100 zu Laufen zu bringen. Ärgernis war auch bei mir der Powerbutton. Das Geblinke habe ich beim Rauf- (/etc/init.d/rcStart) und Runterfahren (/etc/init.d/rcShutdown) ab- bzw. angestellt.
Besonders hat mich nun noch gestört, dass trotz Kondensator-Mod die Kiste nach PowerBtn-Betätigung auf der Fernbedienung gnadenlos runterfuhr und es vom VDR aus keine Möglichkeit gab, dies abzubrechen. Falls gerade eine Aufnahme lief, war das besonders unangenehm.
Also habe ich die Routine, die der PowerBtn auslöste, auf ein eigenes Script geleitet.
Meine /etc/acpi/powerbtn sieht so aus:

Source code

1
2
3
event=button[ /]power
# action=/sbin/poweroff
action=/usr/local/bin/powerbtn.sh
Mein Script wartet nun, dass das doofe Geblinke aufhört, weil bei einem rot-Blinken außer die Power-Taste auf nichts anderes reagiert wird. Falls es grün blinken sollte, wird wieder auf grünes Dauerlicht umgeschaltet. Dann wird der VDR benachrichtigt, dass runtergefahren werden soll und der fragt dann über das OSD noch einmal nach.
Außerdem musste noch abgefangen werden, dass das Script mehrfach aufgerufen wird, weil dies eventuell die Warteschlage des Tastaturpuffers (glaube ich) gefüllt hat und bei der entsprechenden Abarbeitung für den Nutzer (WAF!) völlig unvorhergesehene Sachen passierten. (Weil ich nicht weiß, wie man im Script ermittelt, ob es selbst schon läuft, habe ich eine temporäre Datei angelegt, welche ich zum Schluss wieder lösche.)

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash

# wenn schon mal gedrückt, dann gleich wieder raus
if [ -e /tmp/powerbtn.pid ]; then
  Exit
  fi
  
# temporäre Datei anlegen  
/bin/touch /tmp/powerbtn.pid  

# erst warten, dann grün (wenn es geht)
/usr/bin/svdrpsend.pl MESG 'Bei blinkender Anzeige bitte keine Taste drücken!'
sleep 4
/usr/local/bin/serial

# an VDR PowerBtn senden
/usr/bin/svdrpsend.pl HITK POWER

# wir haben fertig
/bin/rm /tmp/powerbtn.pid
Was jetzt noch stört ist, dass es möglich ist, dass die Anzeige z.B. nach dem ersten Abbruch des Shutdowns rotes Dauerlicht haben kann, aber trotzdem wunderschön läuft. Schön wäre eine Möglichkeit, abfragen zu können, in welchen Zustand sich die Anzeige gerade befindet, um entsprechend reagieren zu können.
(Außerdem würde ich gern den Scart-Ausgang + AudioOut aktivieren, damit ich die olle Kabelpeitsche der TT2300 nicht nehmen muss, habe aber keine Ahnung wie).

Gruß OlaLu
1. LinVDR 0.7 mit Toxic 1.4.7-ext30, 1.7 GHz Celeron auf MV42N, TT-S Rev. 1.3
2. LinVDR 0.7 mit Toxic 1.4.6, T-Online S100, TT2300-S