Prismatik als Kontrollsoftware für mein Lightpack funktioniert nicht einwandfrei. Neben dem blöden Fehler, unter Ubuntu nur unter Unity zu funktionieren – dass der Bug so lange existiert heißt, dass die Software nicht im mindesten gepflegt wird – ist auch die Prozessorauslastung etwas hoch. Sicher hängt das auch mit den Einstellungen zusammen, aber unter 5% hab ich es nicht bekommen. Und genau das ist ja der Punkt: Ohne den grafischen Einstellungsdialog ist Prismatik nicht ordentlich konfigurierbar, es findet sich weder im Internet noch in den Konfigurationsdateien Hilfe.
Hyperion ist besser. Hyperion ist eine Kontrollsoftware für LEDs wie dem Lightpack, die dann von anderer Software gesteuert werden kann. Leider ist die Dokumentation auch nicht wirklich toll, wenn auch erheblich besser als die von Prismatik. Es fehlt die große Übersicht, wie am Ende die LEDs kontrolliert werden können, wenn sie nicht nur unter XMBC und dem RaspberryPi laufen sollen. Daher schreibe ich hier auf, wie das unter Ubuntu und X11 funktioniert: Man lässt hyperiond laufen und benutzt dann einen Grabber für X11 wie boblight-x11, um hyperion zu steuern.
Zuerst hyperion kompilieren, indem man dieser Anleitung folgt:
sudo apt-get install git cmake build-essential checkinstall libqt4-dev libusb-1.0-0-dev python-dev
git clone --recursive https://github.com/tvdzwan/hyperion.git
cd hyperion
cmake -DENABLE_DISPMANX=OFF -DENABLE_SPIDEV=OFF -DENABLE_X11=ON
make
cp bin/hyperiond /usr/local/bin/
cp bin/hyperion-remote /usr/local/bin/
sudo mkdir -p /opt/hyperion/effects
sudo cp effects/* /opt/hyperion/effects/
Update 15.08.2018: Auf meinem jetzigen System lautete der Kompilierungsbefehl so:
cmake -DENABLE_DISPMANX=OFF -DENABLE_SPIDEV=OFF -DENABLE_X11=ON -DENABLE_QT5=ON -DCMAKE_BUILD_TYPE=Release -DPROTOBUF_PROTOC_EXECUTABLE=/usr/bin/protoc -DUSE_SYSTEM_PROTO_LIBS=ON
Ich musste außerdem dev-libs/protobuf kompilieren. Unter Ubuntu wäre das wahrscheinlich libprotobuf-dev und protobuf. Qt4 hatte ich nicht mehr verfügbar.
hyperiond und hyperion-remote liegen nun unter /usr/local/bin/, die Effekte unter /opt/hyperion/effects/, und damit ist hyperions Installation abgeschlossen. Nun kann die Konfiguration beginnen.
Anders als für Prismatik gibt es für hyperion ein ordentliches Konfigurationsprogramm, HyperCon. Das ist java-basiert, also darauf achten, dass mindestens das openjdk-7 installiert ist. Hypercon herunterladen und starten, auf dem Desktop durch Doppelklick, im Terminal mit:
java -jar HyperCon.jar
Ich habe mir dafür ein Skript angelegt:
onli@Fallout:~$ cat bin/hypercon
#!/bin/sh
cd ~/hypercon/
java -jar ~/hypercon/HyperCon.jar
Legt man die .jar so ab und startet HyperCon über das Skript, kann eine abgespeicherte Konfiguration immer wieder bearbeitet werden. Denn dafür muss die hypercon.dat im momentanen Verzeichnis liegen, man also HyperCon wie das Skript immer vom gleichen Verzeichnis aus starten.
Die Konfiguration ist im Wiki gut dokumentiert und die Optionen größtenteils auch so verständlich. Für die weitere Anleitung ist wichtig, dass der boblightserver aktiviert wird. Diese Konfigurationsdatei unter ~/.hyperion.config.json speichern. Dies ist meine.
Bei mir war das Problem, dass mein Lightpack-Modul falsch verkabelt ist. Anders als normal ist die Nummerierung nicht 1 2 3 4 5 auf der rechten Seite, sondern 3 1 2 4 5, oder so. Es war also ein Heidenaufwand, die richtige Verkabelung zu finden. Das RGB-Testvideo ab 1:02 war dafür sehr hlifreich
Den Boblightserver zu aktivieren ist wichtig, denn: Es ist möglich, dass hyperion einen eigenen X11-grabber hat, das Issue dazu ist geschlossen. Doch wenn dem so ist, ist es nicht auffindbar dokumentiert. Stattdessen werden wir boblight-x11 benutzen, der das glücklicherweise gut und ohne viel CPU-Auslastung erledigt.
Auch Boblight wird kompiliert, dieser Anleitung folgend:
sudo apt-get install libx11-dev libgl1-mesa-dev libxrender-dev libxext-dev portaudio19-dev libavcodec-dev libavformat-dev libswscale-dev libavdevice-dev
svn checkout http://boblight.googlecode.com/svn/trunk/ boblight
cd boblight
./configure
make
sudo checkinstall
cp conf/lightpack.conf /etc/boblight.conf
Der Schritt mit der Konfiguration ist nicht nötig, das wäre, falls man boblight statt hyperion zur Kontrolle der LEDs benutzen wollte. Aber das jetzt mit vorzubereiten ist sinnvoll, falls hyperion später mal ausfällt.
Jetzt ist alles bereit. Hyperion starten:
hyperiond ~/.hyperion.config.json
Boblight starten:
boblight-X11 -o gamma=1
Die LEDs sollten nun funktionieren, dann können die Befehle in den Autostart.
Statt Prismatiks 6% CPU-Auslastung verbrauchen hyperiond und boblight-x11 auf meinem System jeweils ungefähr 1,5%. Zusammen mit der gewonnen Konfigurationsmöglichkeit und den anderen Möglichkeiten, die hyperion bringt – LED-Effekte beim Start zum Beispiel – ist das wesentlich besser.