hyperiond unter Debian Linux läuft nicht richtig

  • Hallo,


    hoffentlich könnt Ihr mir bei einem Problem helfen.
    Ich habe hyperion unter auf meinem Mediacenter-PC unter Debian Linux 7 32Bit nach Anleitung kompiliert.


    Als cmake-Zeile habe ich folgende verwendet:
    cmake -DENABLE_DISPMANX=OFF -DENABLE_SPIDEV=OFF -DENABLE_X11=ON -DCMAKE_BUILD_TYPE=Release -Wno-dev ..


    Angeschlossen an meinen Mediacenter-PC ist ein USB apa102 (von Lightberry).
    Als Device habe ich gesetzt: "adalightapa102"
    Der Output geht an: "/dev/ttyACM0"


    Ich rufe testweise hyperiond an der Kommandozeile auf:
    /usr/bin/hyperion/hyperiond /etc/hyperion/hyperion.config.json


    Es werden dann u.a. folgende Zeilen ausgegeben:


    Opening UART: /dev/ttyACM0
    ...
    INFO: Hyperion started and initialised
    ...
    INFO: Json server created and started on port 19444
    INFO: Proto server created and started on port 19445
    ERRROR: The dispmanx framegrabber can not be instantiated, because it has been left out from the build
    ERROR: The framebuffer grabber can not be instantiated, because it has been left out from the build
    ERROR: The osx grabber can not be instantiated, because it has been left out from the build


    Wenn ich hyperion-remote aufrufe mit
    hyperion-remote --priority 50 --color red --duration 5000
    kommt folgende Fehlermeldung:
    Connected to localhost:19444
    Set color to 255 0 0
    Error while reading data from host


    Rufe ich
    hyperion-x11 auf (ich denke den brauche ich als Grabber, damit er die Bildinfos an hyperiond übergibt - aber ich bin mir nicht sicher)
    /usr/bin/hyperion/hyperion-x11 -x -f 30 -s 4
    kommt folgende Fehlermeldung:
    ...
    PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19445
    X11GRABBER INFO: Update of screen resolution: [0x0] => [1920x1080]
    X11GRABBER INFO: Using XGetImage for grabbing
    PROTOCONNECTION INFO: Connected to Hyperion: 127.0.0.1:19445
    PROTOCONNECTION ERROR: Error while writing data to host


    Kann mir einer von Euch sagen, was ich falsch mache?
    Habe ich evtl. die Binärdateien nicht richtig kompiliert?


    Über einen Tipp würde ich mich sehr freuen.
    Wenn Ihr weitere Infos benötigt, stelle ich diese gerne online oder sende sie per Mail.


    Mit besten Grüßen, TC

  • Hallo Brindosch,


    vielen Dank für Deine Hilfe!


    Wo finde ich die Hyperion-Logs?
    Unter /var/log sehe ich nichts, was nach Hyperion aussieht.


    Mit besten grüßen, TC


    Hallo -TC-,
    sollte eigentlich funktionieren. Kannst du mal ein komplettes log posten von Hyperion bitte? Error while writing data to host klingt erstmal seltsam.

  • Hier kommt die Meldung von hyperiond.
    hyperiond läuft dann solange, bis ich ctrl+c mehrfach drücke.


    Hyperion Ambilight Deamon (11248)
    Version : master (brindosch-99d9396/d3713a8-1469452981
    Build Time: Aug 2 2016 20:52:53
    INFO: Selected configuration file: /etc/hyperion/hyperion.config.json
    HYPERION INFO: ColorTransform 'default' => [0; 77]
    HYPERION INFO: ColorCorrection 'default' => [0; 77]
    HYPERION INFO: ColorAdjustment 'default' => [0; 77]
    LEDDEVICE INFO: configuration:
    {
    "colorOrder" : "rgb",
    "name" : "MyHyperionConfig",
    "output" : "/dev/ttyACM0",
    "rate" : 500000,
    "type" : "adalightapa102"
    }


    Opening UART: /dev/ttyACM0
    INFO: Creating linear smoothing
    HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    EFFECTENGINE INFO: 27 effects loaded from directory /usr/share/hyperion/effects
    EFFECTENGINE INFO: Initializing Python interpreter
    INFO: Hyperion started and initialised
    INFO: Boot sequence 'Rainbow swirl fast' EFFECTENGINE INFO: run effect Rainbow swirl fast on channel 0
    BLACKBORDER INFO: threshold set to 0 (0)
    BLACKBORDER INFO: mode:default
    started
    INFO: Json server created and started on port 19444
    INFO: Proto server created and started on port 19445
    ERRROR: The dispmanx framegrabber can not be instantiated, because it has been left out from the build
    ERROR: The framebuffer grabber can not be instantiated, because it has been left out from the build
    ERROR: The osx grabber can not be instantiated, because it has been left out from the build


    Das ist die Bildschirmausgabe :)
    Und wenn ich hyperiond als Startscript in /etc/init.d einbinde oder manuell aufrufe (/etc/init.d/hyperion.sh), wird nur "OK" angezeigt, aber hyperiond läuft dann nicht als Dienst.


    Einfach den kompletten output von
    /usr/bin/hyperion/hyperiond /etc/hyperion/hyperion.config.json


    :)

  • hyperion-x11:
    version : master (brindosch-99d9396/d3713a8-1469452981
    build time: Aug 2 2016 20:52:55
    PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19445
    X11GRABBER INFO: Update of screen resolution: [0x0] => [1920x1080]
    X11GRABBER INFO: Using XRender for grabbing
    PROTOCONNECTION INFO: Connected to Hyperion: 127.0.0.1:19445
    PROTOCONNECTION ERROR: Error while writing data to host
    PROTOCONNECTION ERROR: Error while writing data to host



    Die Meldung "PROTOCONNECTION ERROR: Error while writing data to host" kommt solange, bis ich strg+c drücke :(

  • Trotzdem Danke - dann warten ich auf PP :)


    Info noch:
    Wenn ich hyperion-remote -l aufrufe, kommt folgende Meldung:


    hyperion-remote:
    version : master (brindosch-99d9396/d3713a8-1469452981
    build time: Aug 2 2016 20:51:34
    Connected to localhost:19444
    Get server info
    Error while reading data from host


    Beste Grüße, TC


    Das ist wirklich seltsam
    Vielleicht hat @Paulchen-Panther eine Idee.

  • Schau mal mit z.b. nmap ob die ports 19444 und 19445 auf localhost offen sind. (Z.b. mit nmap). Es kann offensichtlich nicht suf die von hyperiond geöffneten ports geschrieben werden.
    Vielleicht firewall oder so? Oder hat der user in dem hyperion-x11 läuft zu wenig rechte? (Ggf irgendwelche gruppen zugehörigkeit fehlt)


    Da json und proto server davon betroffen sind muss das irgendwas außerhalb von hyperion sein. Versuch mal hyperion-x11 -a deineIP:19445
    Also nich 127.0.0.1 sondern 192.168.x.y ...

  • Hallo redPanther,


    vielen Dank für Deine Unterstützung!
    1) nmap localhost --open zeigt weder den Port 19444 als offen, noch den Port 19445.
    Eine Firewall läuft bei mir nicht, hyperiond läuft (Startscript in init.d).
    2) hxperion-x11 -a meineIP:19445 habe ich auch schon getestet - ohne Erfolg.


    Mit der Unterstützung eines versierten Linux- und Arduino-Anwenders habe ich ein paar Tests durchgeführt.
    Folgendes Ergebis:
    hyperiond läuft grundsätzlich unter Debian 8 (32 Bit) und Debian 7 (32 Bit), ebenso hyperion-remote und hyperion-x.


    Aber:

    • Unter Debian 8 kann ich zunächst weder mit hyperion-x noch mit hyperion-remote eine Verbindung zu hyperiond herstellen.
      Fehlermeldung: "Unable to connect to host"
    • Wenn ich den Arduino Leonardo (das USB-Kästchen von "lightberry", das meine LEDs steuert) vom USB-Port trenne und ihn dann wieder verbinde, kann ich 1x mit hyperion-remote -l den hyperiond Daemon erreichen. Es wird der hyperiond-Server genannt, sowie die Effekte, die geladen wurden:
      hyperion-remote:
      version : master (brindosch-10429bb/dd7dba2-1472245039
      build time: Aug 28 2016 22:57:40
      Connected to localhost:19444
      Get server info
      Server info:
      [...] (den Rest der Auflistung habe ich abgeschnitten)


    • Wenn ich dann ein 2. mal zugreifen will, kommt wieder eine Fehlermeldung.
    • Wir haben dann in das init.d Startscript ein Script eingebunden, das vor dem Start von hyperiond einen Arduino-Reset durchführt:
      https://github.com/sudar/Ardui…ter/bin/ard-reset-arduino
      Resultat: damit konnten wir auf hyperiond am Testrechner (Debian 8) in den meisten Fällen zugreifen (getestet mit hyperion-remote -l).
      Wenn der Zugriff klappt, wird trotzdem von nmap keiner der beiden Ports als offen gemeldet :(
      An meinem mediacenter-PC hilft der Workaround nicht (gleiche Konfiguration, anderer PC)


    Wir haben den Verdacht, daß ein Problem vorliegt mit der Kommunikation zwischen hyperiond (Unter Debian Linux 8 am Desktop-PC) und dem Arduino Leonardo.
    Am Testrechner war die Kommunikation dabei mit dem Reset-Script hinzubekommen, an meinem Mediacenter (ebenfalls Debian Linux 8 am Desktop-PC) funktioniert das nicht.


    Wir haben auch einen anderen Arduino mit anderen LEDs getestet - gleiches Resultat.


    Ich hoffe, diese Infos helfen dabei, das Problem zu identifizieren.
    Ich würde mich sehr freuen, wenn Du noch einen Tipp für mich hättest.


    Mit besten Grüßen, TC


    Schau mal mit z.b. nmap ob die ports 19444 und 19445 auf localhost offen sind. (Z.b. mit nmap). Es kann offensichtlich nicht suf die von hyperiond geöffneten ports geschrieben werden.
    Vielleicht firewall oder so? Oder hat der user in dem hyperion-x11 läuft zu wenig rechte? (Ggf irgendwelche gruppen zugehörigkeit fehlt)


    Da json und proto server davon betroffen sind muss das irgendwas außerhalb von hyperion sein. Versuch mal hyperion-x11 -a deineIP:19445
    Also nich 127.0.0.1 sondern 192.168.x.y ...

  • Hallo Paulchen-Panther,


    zunächst vielen Dank für Deine Hilfe!


    Ich hoffe ich habe die Version richtig ermittelt...
    aptitude meint, bei mir ist installiert:
    "qtcore4-110n - 4:4.8.6+git64-"


    Vorbereitend habe ich zum Erstellen der Binaries gem. Kompile-Anleitung folgende Befehle aufgerufen:
    apt-get update
    apt-get install git cmake build-essential libQt4-dev libusb-1.0-0-dev python-dev libxrender-dev python

    Nachdem ich mein Mediacenter erst heute von Debian 7 auf Debian 8 upgedated habe, habe ich die ganzen Tests eben noch einmal mit frisch gebauten Hyperion-Binaries laufen lassen (siehe 1 Post weiter oben).


    Ich hoffe das hilft Dir weiter.
    Vielleicht ist auch meine (etwas umfangreiche) Antwort an redPanther weiter oben für Dich interessant :)
    Evtl. konnte ich damit den Fehler ETWAS eingrenzen.


    Mit besten Grüßen, TC



    Mit welcher QT version hast du kompiliert?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!