Ankündigung

Einklappen
Keine Ankündigung bisher.

eibd/linknx/cometvisu auf raspberry pi

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

  • motti
    antwortet
    Bin nach langem Suchen auch auf die erste Zeile des Startskripts gestossen, nach Neueingabe hat es mit dem Starten des eibd geklappt, Bus(schreib)zugriff klappt, jetzt muss nur noch der Lesezugriff wollen.

    Danke für die Hilfe,
    Matthieu

    Einen Kommentar schreiben:


  • Ferengi
    antwortet
    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

    Einen Kommentar schreiben:


  • Ferengi
    antwortet
    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.

    Einen Kommentar schreiben:


  • motti
    antwortet
    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!

    Einen Kommentar schreiben:


  • henfri
    antwortet
    sollte er die shell nicht lieber nachinstallieren?
    da wird er ja sonst noch anderswo freude haben...

    Einen Kommentar schreiben:


  • netsrac
    antwortet
    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

    Einen Kommentar schreiben:


  • motti
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Ferengi
    antwortet
    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

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    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.

    Einen Kommentar schreiben:


  • netsrac
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • netsrac
    antwortet
    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

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    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.

    Einen Kommentar schreiben:


  • netsrac
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X