Hallo,
ich habe einen USB-CEC-Adapter von PulseEight. Damit kann man per HDMI angeschlossene Geräte wie den TV steuern. Das können 99,9% aller Grafikkarten von Haus aus nicht. Der Adapter läuft wie hier https://www.kernel.org/doc/html/latest/admin-guide/media/cec.html unter Punkt 4.4 beschrieben. Ich nutze das Tool 'cec-ctl'. Es gibt noch 'cec-client', der bringt aber eine Fehlermeldung und ich hab' mich nicht weiter damit beschäftigt.
Ich muss aber nach dem Systemstart manuell noch
sudo cec-ctl --playback sudo cec-ctl -E /sys/class/drm/card0-HDMI-A-1/edid
ausführen. Der erste 'registriert' den Adapter im System (k.A. was das genau heißt), der zweite lädt die edid (eine Datei die Infos über das andere HDMI-Gerät speichert, hier der TV).
Ich habe erst einmal ganz naiv
sudo cec-ctl --playback && sudo cec-ctl -E /sys/class/drm/card0-HDMI-A-1/edid
in Cron gepackt (mit dem kompletten Pfad zur cec-ctl). Geht nicht, auch mit 'sleep 60' davor nicht. cec-ctl steht in der Sudoers und wird ohne Eingabe eines Passworts ausgeführt (weil es später in einem Script laufen soll). Geht das in einem Cron nicht wegen dem 'sudo'? Der zweite Aufruf muss im Terminal manuell mit STRG+C abgebrochen werden, das fehlt natürlich in Cron. Das scheint aber keinen Effekt zu haben, denn wenn ich in einem Terminal das Kommando ausführe ohne STRG+C und in einem zweiten normal cec-ctl teste geht alles. STRG+C ändert also nichts.
Wie sollte man die Kommandos am besten starten? Über Systemd? Im Link oben wird ja unter /lib/systemd/system/ angelegt. Vielleicht dort anhängen?