mabue88
Goto Top

LibCEC - CEC-Client über Webseite aufrufen

Hallo,

ich habe einen Raspberry Pi an einem Flachbildschirm angeschlossen. Auf dem Raspbian läuft ein LAMP-Server.
Der Bildschirm soll nun über eine Webseite ein- und ausgeschaltet werden können.
Dazu habe ich die LibCEC installiert.

Ruf ich den CEC-Client in der Konsole auf, wird der Bildschirm korrekt gesteuert.
Um den CEC-Client von einer Webseite aus aufrufen zu können habe ich eine PHP-Datei erstellt, die über einen Request von Javascript aus angesprochen wird (AJAX).
Die Steuerung des Bildschirmes funktioniert damit aber nicht. Ich vermute, dass der Benutzer "www-data", unter dessen Namen der Befehl ausgeführt wird, nicht die notwendigen Berechtigungen besitzt.

Kann mir jemand sagen, welche Berechtigungen der Berechtigungen der Benutzer benötigt und wie ich ihm diese erteile?
Oder gibt es vielleicht noch Alternativen?

Danke
mabue88

Content-Key: 246771

Url: https://administrator.de/contentid/246771

Printed on: April 26, 2024 at 13:04 o'clock

Member: Cthluhu
Cthluhu Aug 19, 2014 at 10:40:10 (UTC)
Goto Top
Hi,

IMHO wird für den CEC-Adapter ein Serielles Device /dev/ttyACM* angelegt (wobei * eine fortlaufende Nummer ist). Auf dem Device-file kannst du rechte vergeben und www-data schreibzugriff geben.

mfg

Cthluhu
Member: mabue88
mabue88 Aug 19, 2014 at 12:06:36 (UTC)
Goto Top
Hallo Cthluhu,

in "/dev/" gibt es kein Device das mit "ttyACM" beginnt.

Es gibt lediglich "tty", "tty0" bis "tty63", "ttyAMA0" (serielle Schnittstelle am GPIO-Port) und "ttyprintk".
Member: Cthluhu
Cthluhu Aug 19, 2014 at 12:26:32 (UTC)
Goto Top
Hi,

Nicht so schön, sollte aber auch klappen: sticky-bit beim cec-client setzen.

mfg

Cthluhu
Member: mabue88
mabue88 Aug 29, 2014 at 12:28:38 (UTC)
Goto Top
Haloo Cthluhu,

ich hab bei dem cec-client (zu finden unter "usr\local\bin") das sticky bit gesetzt. Es ändert sich allerdings nicht. Der Monitor wird nicht angesteuert.

Von dem Standardbenutzer "pi" kann ich den Monitor ohne die Verwendung von "sudo" ein- und ausschalten.
Member: mabue88
mabue88 Aug 29, 2014 at 12:40:42 (UTC)
Goto Top
Und nochmal hallo zusammen,

ich habe das Problem gefunden.

In der PHP-Datei sah die Zeile zum Einschalten so aus:
shell_exec("echo 'on 0' | cec-client -s");  

Damit konnte der Monitor nicht gesteuert werden.

Zufälligerweise habe ich mal die Anführungszeichen ausgetauscht:
shell_exec('echo "on 0" | cec-client -s');  

und siehe da, es funktioniert!

Trotzdem Danke für eure Tipps!

Gruss
mabue88