Forum: PC-Programmierung QNAP TS-251D: Script über "one-touch" Taster starten (Debian)


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Hubert (hilfsadmin)


Lesenswert?

Hallo,

habe ein QNAP TS-251D  auf dem ein Debian läuft.
(Intel, HW Spec: https://www.qnap.com/en/product/ts-251d/specs/hardware)
Das System nutze ich für Backups was super funktioniert.

Jetzt würde ich gerne den "one-touch" Taster nutzen um ein Script zu 
starten ohne dass ich mich dazu auf dem System einloggen muss.

Aktuell muss ich mich an dem System anmelden um entweder ein Backup auf 
eine externe Festplatte zu machen, oder ein Backup von Geräten zu ziehen 
die nicht dauerhaft an sind (Bsp. Laptop).

Habe es schon mal im QNAP Forum versucht, jedoch ohne Erfolgt.
Alte Beiträge welche die Buttons verwenden laufen über qcontrol (nur für 
ARM Systeme) oder lirc. Beides funktioniert mit meinem System nicht.

Ist so etwas mit Debian überhaupt möglich?
Hat jemand einen Ansatz zur Umsetzung?
Komme gerade mit meinen google Begriffen nicht weiter. Eine Nachfrage im 
QNAP Forum (das recht tot zu sein scheint) liegt seit über 1er Woche 
quasi ungelesen rum...

von A. S. (rava)


Lesenswert?

Du hast zwei Fragen.

Erstens:
"Wie kann man den button unter linux einbinden?" - dazu kann ich wenig 
sagen, weil ich mich mit dem System nicht auskenne. Das wäre eine Frage 
davon, wie das angeschlossen ist und welche Treiber es dazu gibt. Wie 
machen's denn die ARM-Systeme?

Zweitens:
"Wie kann man ohne Anmelden auf einen Tastendruck hin eine Aktion 
ausführen?" - Dazu gibt es sicherlich geeignetere Vorschläge, sobald man 
mehr über den use case weiß. Aber sehr flexibel wäre folgender Pfusch:
schreib ein skript, dass 59 Sekunden lang den button immer und immer 
wieder ausliest und dann entweder die aktion ausführt oder beendet. 
Starte das skript alle Minute mit einem cron job. Bonusfrage: finde eine 
Lösung dass nicht zwei backups parallel laufen. Stichwort: file locks.

von Εrnst B. (ernst)


Lesenswert?

Hubert schrieb:
> oder lirc. Beides funktioniert mit meinem System nicht.

lirc wäre schon ein passender Weg, nicht wegen Infrarot-Fernbedienung, 
sondern weil das einen einfachen Weg bietet, Scripte an Input-Events zu 
binden, ohne dass ein User eingeloggt sein muss.
Wär aber kein Muss.
Warum klappt Lirc bei dir nicht?

Grobe Vorgehensweise:
1
sudo lsinput
2
#oder
3
sudo evtest
-> Lange Liste an Input-Devices. Such ein's raus, was sich richtig 
anhört, bsp. Nummer 42, /dev/input/event42
Test:
1
sudo input-event 42
und dann deinen Button drücken.
Wenn eine Ausgabe kommt, sollte alles fein sein.
(Optional: Such das device unter /dev/input/by-{id,path}/..., die Nummer 
könnte sich nach einem Reboot ändern)

Das zusammen in eine config für inputlircd und irexec basteln, oder 
eigenes Script laufen lassen, was in Endlosschleife auf dem event-device 
wartet, notfalls was zusammengefrickeltes in der Art
1
evtest --grab /dev/input/event42 | grep "Dein Event Type" | while read event ; do MeinProgramm ; done

von Hubert (hilfsadmin)


Lesenswert?

Εrnst B. schrieb:
> Grobe Vorgehensweise:
>
>
1
> sudo lsinput
2
> #oder
3
> sudo evtest
4
>

Hallo Ernst,

Danke für den Hinweis.
Habe es mit lsinput/evemu-record (scheinbar Nachfolger von evtest) 
versucht, leider erfolglos.

Es gibt nur 7 Input-Events (2 davon Power-Button), aber keiner der 
Events (habe einfach alle durchprobiert) reagiert auf den one-touch 
Button.

Das würde für mich heißen das dieser nicht erkannt wurde/ein Treiber 
fehlt (weil evtl. proprietär von Qnap angebunden?).

Habe ich hier noch eine Chance irgendwie weiter zu kommen?

von Εrnst B. (ernst)


Lesenswert?

Hubert schrieb:
> Habe ich hier noch eine Chance irgendwie weiter zu kommen?

Ohne die Hardware zu kennen schwer zu sagen.
Ich würde damit anfangen versuchen herauszufinden, wie der Button 
angebunden ist.
Also lspci, lsusb, etc, Suche im sysfs nach GPIO's die evtl. exportiert 
oder an den "gpio-keys"-Kerneltreiber übergeben werden können.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.