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
Ankündigung
Einklappen
Keine Ankündigung bisher.
eibd/linknx/cometvisu auf raspberry pi
Einklappen
X
-
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:
-
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:
-
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:
-
sollte er die shell nicht lieber nachinstallieren?
da wird er ja sonst noch anderswo freude haben...
Einen Kommentar schreiben:
-
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 einZitat von motti Beitrag anzeigenBeim 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
Wenn die richtige Shell nicht geladen wird, dann läuft das ganze Script auch nicht richtig.Code:ls -la /bin/sh
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
Zumindetens sieht das aus der Ferne so aus, als sollte das Problem hier liegen...Code:#!/bin/bash
Gruß, Netsrac
Einen Kommentar schreiben:
-
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
neuCode:# DAEMON_ARGS="-d -u --eibaddr=1.1.100 -c -DTS -R -i --pid-file=/var/run/$NAME.pid"
Beim Starten des eibd erhalte ich folgende Fehlermeldung:Code:DAEMON_ARGS="-D -T -S -d -i --pid-file=/var/run/$NAME.pid ipt:10.0.1.2"
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: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 ]
Grüsse MatthieuCode:SIOCADDRT: File exists
Einen Kommentar schreiben:
-
Vielen Dank Christian,
das werde ich gleich heute testen und eventuelle Pitfalls zurück melden!
Gruss Matthieu
Einen Kommentar schreiben:
-
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:
-
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:
-
Okay...ich dachte JavaScript liefert das....Zitat von Sipple Beitrag anzeigenJa, hab ich schon. Die Antwort ist genau das was Firebug meint: {'error': 'Open failed'}
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.
Gruss, NetsracCode:Aus dem eibd help: -u, --listen-local[=FILE] listen at Unix domain socket FILE (default /tmp/eib)
Einen Kommentar schreiben:
-
Ja, hab ich schon. Die Antwort ist genau das was Firebug meint: {'error': 'Open failed'}
Einen Kommentar schreiben:
-
Okay, ohne Log ist das natürlich doof...Zitat von Sipple Beitrag anzeigenWas 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.
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:
-
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:
und die /etc/lighttpd/conf-enabled/11-cgi-cometvisu.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", #)
Das sieht für mich alles gut aus.Code:### Add cgi for cometvisu alias.url += ( "/cgi-bin/" => "/usr/lib/cgi-bin/" ) compress.filetype += ("application/javascript", "application/xml", "application/octet-stream")
Einen Kommentar schreiben:
-
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:

Einen Kommentar schreiben: