Ankündigung

Einklappen
Keine Ankündigung bisher.

eibd/linknx/cometvisu auf raspberry pi

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #46
    Hoi

    Irgendwas mit Rechten bei r und w?
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #47
      Schau doch mal bitte in das Logfile vom Webserver (normalerweise unter /var/log/apache2/) und zeige, was dort beim Zugriff auf /cgi-bin/r steht.

      Könnte mir noch vorstellen, dass das cgi-bin in der Webserver-Config nicht ricbhtig gesetzt ist (normalerweise ist das cgi-bin ja nicht im Webserver Verzeichnis) sondern wird entsprechend gemapped.

      Also vielleicht auch einfach nochmal unter /etc/apache2 oder /etc/httpd die entsprechende Config überprüfen.

      Gruß, Netsrac

      Kommentar


        #48
        Also:

        r und w liegen in /usr/lib/cgi-bin und haben beide root/root 777. Sie zeigen korrekt auf /usr/local/bin/eibread-cgi bzw. .../eibwrite-cgi
        Dort liegt auch der eibd und alle anderen eib binaries.

        Was den Webserver angeht finde ich nur eine error.log in /var/log/lighttpd und da steht nichts drin außer dem Restart des Webservers den ich manuell mehrmals gemacht habe. Da geht's schon los. Eigentlich sollte da auch das access.log sein, ist aber nirgends. Egal was ich mache, der lighttpd schreibt kein access log, obwohl das standardmäßig ja aktiv ist.


        Dann hätten wir die /etc/lighttpd/conf-enabled/10-cgi.conf:

        Code:
        # /usr/share/doc/lighttpd-doc/cgi.txt
        
        server.modules += ( "mod_cgi" )
        
        $HTTP["url"] =~ "^/cgi-bin/" {
                cgi.assign = ( "" => "" )
        }
        
        ## Warning this represents a security risk, as it allow to execute any file
        ## with a .pl/.py even outside of /usr/lib/cgi-bin.
        #
        #cgi.assign      = (
        #       ".pl"  => "/usr/bin/perl",
        #       ".py"  => "/usr/bin/python",
        #)
        und die /etc/lighttpd/conf-enabled/11-cgi-cometvisu.conf:

        Code:
        ### Add cgi for cometvisu
        
        alias.url += ( "/cgi-bin/" => "/usr/lib/cgi-bin/" )
        
        compress.filetype           += ("application/javascript", "application/xml", "application/octet-stream")
        Das sieht für mich alles gut aus.

        Kommentar


          #49
          Zitat von Sipple Beitrag anzeigen
          Was den Webserver angeht finde ich nur eine error.log in /var/log/lighttpd und da steht nichts drin außer dem Restart des Webservers den ich manuell mehrmals gemacht habe. Da geht's schon los. Eigentlich sollte da auch das access.log sein, ist aber nirgends. Egal was ich mache, der lighttpd schreibt kein access log, obwohl das standardmäßig ja aktiv ist.
          Okay, ohne Log ist das natürlich doof...

          Rufe doch mal in Deinem Browser den folgenden URL auf:

          http://deinecvdomain/cgi-bin/r?s=SESSION&a=1/1/40&t=0

          Wobei Du die "1/1/40" durch eine GA tauschen solltest, die es bei Dir auf dem Bus gibt.

          Als Ergebnis solltest Du dann sowas sehen:

          {"d": {"1/1/40":"00"},"i":46645}

          Gruß, Netsrac

          Kommentar


            #50
            Ja, hab ich schon. Die Antwort ist genau das was Firebug meint: {'error': 'Open failed'}

            Kommentar


              #51
              Zitat von Sipple Beitrag anzeigen
              Ja, hab ich schon. Die Antwort ist genau das was Firebug meint: {'error': 'Open failed'}
              Okay...ich dachte JavaScript liefert das....

              Ich denke, dann "haben wir die Sau" :-)

              Die cgi's kommunizieren über ein Socket, das standardmäßig /tmp/eib ist. Entweder stimmen hier die Permissions nicht, oder der eibd wurde überhaupt nicht mit Socket-Support gestartet.

              Code:
              Aus dem eibd help:
              
                -u, --listen-local[=FILE]  listen at Unix domain socket FILE (default /tmp/eib)
              Gruss, Netsrac

              Kommentar


                #52
                Ha, DAS könnt sein. Das muss ich mir nochmal anschauen. Geht grad net, aber später oder morgen.

                Danke auf jeden Fall schon mal!

                Gruß, Martin

                Edit: scheint jetzt zu klappen. Der eibd war mit -u gestartet und der socket in /tmp existierte. Habe mal die Rechte auf 777 gesetzt. Erst gings nicht, aber nach einer gewissen Verzögerung dann doch. Muss ich mal beobachten.

                Kommentar


                  #53
                  hab mir grad ein kleines setupscript für den raspi gebastelt, vielleicht kanns ja jemand gebrauchen.

                  ABER: hab recht wenig ahnung von linux => eigentlich nur die befehle von seite eins zusammengefasst (vielen dank dafür) ohne irgend welche abhängigkeitsprüfungen oder ähnlichem. also nix besonderes erwarten

                  1. debian auf dem raspberry an anleitung installieren

                  2. http://cnc-selbstbau.info/KNX/cometsetup.sh laden, ausführbarmachen und als root ausführen

                  Christian

                  Kommentar


                    #54
                    Vielen Dank Christian,
                    das werde ich gleich heute testen und eventuelle Pitfalls zurück melden!
                    Gruss Matthieu

                    Kommentar


                      #55
                      Nachdem die Debian-Installation etwas mehr Zeit benötigte als erwartet, hat dein Script einwandfrei funktioniert.

                      Ich setze ein N146/02 Router ein, darum habe ich die eibd-config angepasst:
                      statt
                      Code:
                      # DAEMON_ARGS="-d -u --eibaddr=1.1.100 -c -DTS -R -i --pid-file=/var/run/$NAME.pid"
                      neu
                      Code:
                      DAEMON_ARGS="-D -T -S -d -i --pid-file=/var/run/$NAME.pid ipt:10.0.1.2"
                      Beim Starten des eibd erhalte ich folgende Fehlermeldung:
                      Code:
                      pi@raspberrypi /etc/init.d $ sudo service eibd start
                      /etc/init.d/eibd: 1: /etc/init.d/eibd: #!/bin/sh: not found
                      SIOCADDRT: File exists
                      -ne      *** eibd: Autodetecting Interface .
                      
                       .-e Found KNXnet/IP Router 00-0E-8C-00-5B-7B on 10.0.1.2 with 224.0.23.12
                      *** Starting EIB/KNX daemon: eibd using ip:
                      unexpected parameter
                      /etc/init.d/eibd: 294: [: missing ]
                      Ich weiss momentan nicht wo suchen. Kann es sein, dass diese Zeile auf das Problem zeigt? Ich habe die Route bereits vorgängig manuell hinzugefügt:
                      Code:
                      SIOCADDRT: File exists
                      Grüsse Matthieu

                      Kommentar


                        #56
                        Zitat von motti Beitrag anzeigen
                        Beim Starten des eibd erhalte ich folgende Fehlermeldung:
                        Code:
                        pi@raspberrypi /etc/init.d $ sudo service eibd start
                        /etc/init.d/eibd: 1: /etc/init.d/eibd: #!/bin/sh: not found
                        Diese Fehlermeldung zeigt eigentlich schon, wo hier das Problem zu suchen ist. Scheinbar gibt es bei Dir die shell /bin/sh nicht. Geh mal bitte in's Terminal und mach ein

                        Code:
                        ls -la /bin/sh
                        Wenn die richtige Shell nicht geladen wird, dann läuft das ganze Script auch nicht richtig.

                        Wenn Du keine /bin/sh hast, dann schau mal nach /bin/bash. Diese sollte kompatibel mit der bourne shell sein.

                        Existiert /bin/bash, dann ersetze die erste Zeite in /etc/init.d/eibd mit

                        Code:
                        #!/bin/bash
                        Zumindetens sieht das aus der Ferne so aus, als sollte das Problem hier liegen...

                        Gruß, Netsrac

                        Kommentar


                          #57
                          sollte er die shell nicht lieber nachinstallieren?
                          da wird er ja sonst noch anderswo freude haben...

                          Kommentar


                            #58
                            Danke für den Hinweis, werde dem Problem nachgehen. Die Bourne Shell muss vorhanden sein, sonst wäre Ferengis Script nicht erfolgreich durchgelaufen. Vermutlich liegt sie nicht im bin sondern im sbin..?

                            Ich werde mich heute Abend wieder reinknieen!

                            Kommentar


                              #59
                              sehr merkwürdig, bin wie gesagt nicht der große linux profi, aber auf nem firsch installierten debian sollte die sh shell eigentlich bereits installiert sein.

                              Kommentar


                                #60
                                so, hab den fehler, liegt an meinem script, irgend was is da beim kopieren schief gegangen. die erste zeile #! usw sieht zwar in jedem editor richtig aus ist sie aber anscheinend nicht, lösche in der /etc/init.d/eibd einfach mal die ersten zwei zeichen und schreib sie dann wieder hin. dann sollte es ohne fehler funktionieren.

                                gleiches gilt für das linknx script

                                das abänderen der konfig wegen dem router interface sollte eigentlich nicht nötig sein, soweit ich das verstanden hab ist das script dazu da um das automatisch zu regeln, was es bei mir auch einwandfrei erledigt.

                                Christian

                                edit:
                                Dateien neu hochgeladen, sollte jetzt funktionieren

                                Kommentar

                                Lädt...
                                X