Autostart von EIBD auf Raspi2

Begonnen von speedschmidt, 26 Juni 2015, 22:21:40

Vorheriges Thema - Nächstes Thema

smurfix

Nee, das hast du nicht falsch verstanden; ich seh mir gleich mal an, wieso das nicht mag.

speedschmidt

high,

anbei mal zwei Logdateien:

gw1.log = ohne localhost
gw2.log = mit localhost

ich hoffe es hilft dir weiter.

Ingo

smurfix

Du bist sicher, dass du die aktuelle Version von knxtool installiert hast??
Weil bei mir geht das ...

speedschmidt

high

bei mir gibts im pfad /home/pi nur die knxd 0.10.5-1* pakete aus denen ich es dann auch installiert habe.
Kann ich die Version noch anders checken?

ingo

smurfix

ls -l  src/examples/.libs/knxtool debian/tmp/usr/bin/knxtool debian/knxd-tools/usr/bin/knxtool /usr/bin/knxtool

Die ersten beiden Dateien müssen gleiche Größe haben und die letzten beiden auch. Das Änderungsdatum muss auch (einigermaßen) übereinstimmen.

speedschmidt

high,

ja ich glaube da ist bei mir noch was krum:

pi@raspberrypi ~ $ ls -l  src/examples/.libs/knxtool debian/tmp/usr/bin/knxtool debian/knxd-tools/usr/bin/knxtool /usr/bin/knxtool
ls: Zugriff auf src/examples/.libs/knxtool nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf debian/tmp/usr/bin/knxtool nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf debian/knxd-tools/usr/bin/knxtool nicht möglich: Datei oder Verzeichnis nicht gefunden
-rwxr-xr-x 1 root root 27800 Jul 22 21:03 /usr/bin/knxtool

So wie ich es verstanden habe müsste die Dateien da sein? Aber ich kann nicht mal die Verzeichnisse bei mir finden (/Debian; /scr;). bis auf 's letzte.
Bedenke - !RaspBerryPi2! - kein normales Debian.

Ingo

smurfix

Kannst du bitte ins knx-Source-Verzeichnis gehen, bevor du den Befehl ausführst??

Sorry, aber für mich war das irgendwie mehr als offensichtlich!

speedschmidt

Sorry,


pi@raspberrypi ~/knxd $ ls -l  src/examples/.libs/knxtool debian/tmp/usr/bin/knxtool debian/knxd-tools/usr/bin/knxt
-rwxr-xr-x 1 root root 27800 Jul 22 21:03 debian/knxd-tools/usr/bin/knxtool
-rwxr-xr-x 1 root root 81836 Jul 22 21:02 debian/tmp/usr/bin/knxtool
-rwxr-xr-x 1 root root 81836 Jul 22 21:02 src/examples/.libs/knxtool
-rwxr-xr-x 1 root root 27800 Jul 22 21:03 /usr/bin/knxtool

Sollte so ja passen, oder?

Ingo

smurfix

Klar.
Keine Ahnung was da bei dir schiefgelaufen ist; bei mir sieht src/client/c/openurl.c jedenfalls so aus:

EIBConnection *
EIBSocketURL (const char *url)
{ [...]
  if (!strncmp (url, "ip:", 3))
    {
      char *a, *b;
      int port;
      EIBConnection *c;

      url += 3;
      a = strdup (*url ? url : "localhost");
      if (!a)
        {
          errno = ENOMEM;
          return 0;
        }
      b = strchr (a,':');
      if (b)
        {
          *b = 0;
          port = atoi (b + 1);
        }
      else
        port = 6720;
      c = EIBSocketRemote (a, port);
      free (a);
      return c;
    }


und damit hat "ip:" gefälligst zu funktionieren.

speedschmidt

high,

und bei mir so:

/*
    EIBD client library
    Copyright (C) 2005-2011 Martin Koegler <mkoegler@auto.tuwien.ac.at>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    In addition to the permissions in the GNU General Public License,
    you may link the compiled version of this file into combinations
    with other programs, and distribute those combinations without any
    restriction coming from the use of this file. (The General Public
    License restrictions do apply in other respects; for example, they
    cover modification of the file, and distribution when not linked into
    a combine executable.)

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#include "eibclient-int.h"

EIBConnection *
EIBSocketURL (const char *url)
{
  if (!url)
    {
      errno = EINVAL;
      return 0;
    }
  if (!strncmp (url, "local:", 6))
    {
      url += 6;
      return EIBSocketLocal (*url ? url : "/run/knxd");
    }
  if (!strncmp (url, "ip:", 3))
    {
      char *a, *b;
      int port;
      EIBConnection *c;

      url += 3;
      a = strdup (*url ? url : "localhost");
      if (!a)
{
  errno = ENOMEM;
  return 0;
}
      b = strchr (a,':');
      if (b)
{
  *b = 0;
  port = atoi (b + 1);
}
      else
port = 6720;
      c = EIBSocketRemote (a, port);
      free (a);
      return c;
    }
  fprintf(stderr, "Unknown URL prefix, need 'local:' or 'ip:'\n");
  errno = EINVAL;
  return 0;
}

auf den ersten (meinen) blick anders (abgesehen von der Einleitung oder wie ihr das nennt? - die habe ich mal mitgeschickt - sicherheitshalber).

Ich bin jetzt mal wieder kurz davor "format C:\" einzugeben und neu anzufangen (ich weiß ist kein Windows-System  ;) ) Wird wohl das Beste und einfachste an der stelle sein. Oder soll ich nur den Inhalt von deiner Datei übernehmen? Was meinst du? Auch nochmal die Möglichkeit deine Doku auf github ab zu checken  ;)

WICHTIG vorher die fhem.cfg sichern. Ausserdem noch was?

Ingo

smurfix

Deine Datei ist genau dieselbe wie meine, ich habe einfach den für das Probelm nicht relevanten Teil weggelassen.

Ich kann gerne mal mit Teamviewer o.Ä. draufschauen.

speedschmidt

high

ja können wir machen heute gg. 21:00 Uhr?

ingo

speedschmidt

High,

so geschafft, besten dank nochmal für make clean und make. Aber ist dieser alte Schrott nicht auch gerade zu erwarten, wenn ein anderer user (evtl. ein wenig versierter wie ich) von eibd auf knxd umsteigt. Aber ich muss schon sagen, mein System werde ich mit Sicherheit nochmal neu aufsetzen, nicht ohne, aber mit weniger Anfängerfehlern.

Ingo
PS: Jetzt steht der Verbreitung/Verwendung von knxd ja nichts mehr im weg, aus meiner Sicht (was war nochmal eibd??). Wie siehst du das?

smurfix

Sagen wir mal so: Ich kenne aktuell keinen Grund, wieso man beim alten eibd bleiben sollte.

speedschmidt

High smurfix,

ich hoffe du lauschst noch mit:

Ich habe aus verschiedenen Gründen ein neues System aufgesetzt (das alte läuft noch auf einer anderen Speicherkarte). Nun bin ich beim Installieren (nach deiner Anleitung auf Github) vom knxd auf diesem System auf folgende Fehlermeldungen gestoßen:


pi@raspberrypi ~/knxd $ sudo dpkg-buildpackage -b
dpkg-buildpackage: Quellpaket knxd
dpkg-buildpackage: Quellversion 0.10.7-1
dpkg-buildpackage: Quelldistribution unstable
dpkg-buildpackage: Quellen geändert durch Matthias Urlichs <matthias@urlichs.de>
dpkg-buildpackage: Host-Architektur armhf
dpkg-source --before-build knxd
debian/rules clean
dh clean
   dh_testdir
   dh_auto_clean
   debian/rules override_dh_clean
make[1]: Entering directory '/home/pi/knxd'
dh_clean
        rm -f debian/knxd.substvars
        rm -f debian/knxd.*.debhelper
        rm -rf debian/knxd/
        rm -f debian/knxd-tools.substvars
        rm -f debian/knxd-tools.*.debhelper
        rm -rf debian/knxd-tools/
        rm -f debian/knxd-dev.substvars
        rm -f debian/knxd-dev.*.debhelper
        rm -rf debian/knxd-dev/
        rm -f debian/knxd-examples.substvars
        rm -f debian/knxd-examples.*.debhelper
        rm -rf debian/knxd-examples/
        rm -f debian/*.debhelper.log
        rm -f debian/files
        find .  \( \( \
                \( -path .\*/.git -o -path .\*/.svn -o -path .\*/.bzr -o -path .\*/.hg -o -path .\*/CVS \) -prune -o -type f -a \
                \( -name '#*#' -o -name '.*~' -o -name '*~' -o -name DEADJOE \
                 -o -name '*.orig' -o -name '*.rej' -o -name '*.bak' \
                 -o -name '.*.orig' -o -name .*.rej -o -name '.SUMS' \
                 -o -name TAGS -o \( -path '*/.deps/*' -a -name '*.P' \) \
                \) -exec rm -f {} + \) -o \
                \( -type d -a -name autom4te.cache -prune -exec rm -rf {} + \) \)
        rm -f *-stamp
rm -f debian/knxd.install
make[1]: Leaving directory '/home/pi/knxd'
debian/rules build
dh build
   dh_testdir
   debian/rules override_dh_auto_configure
make[1]: Entering directory '/home/pi/knxd'
cp debian/knxd.install.in debian/knxd.install
grep -qs 'HAVE_SYSTEMD_TRUE.*#' config.status || cat debian/knxd.install.systemd >> debian/knxd.install
sh bootstrap.sh
bootstrap.sh: 2: bootstrap.sh: libtoolize: not found
debian/rules:24: recipe for target 'configure' failed
make[1]: *** [configure] Error 127
make[1]: Leaving directory '/home/pi/knxd'
debian/rules:14: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: Fehler: Fehler-Exitstatus von debian/rules build war 2
pi@raspberrypi ~/knxd $


Also kurz vorm Fertigstellen. Einige fehlende Pakete habe ich schon installiert (debhelper, ?cdbs?, libsystemd-daemon-dev und noch irgendein anderes?). Die fehlenden Bauabhängigkeiten habe ich damit beseitigt.

Nun aber die Fehlermeldung wie oben. Es ist ein "frisches" neues System, auf dem ich nur Raspbian Jessie und fhem installiert habe. Dies ist mein erster Versuch auf diesem System knxd zu installieren. Das heißt ältere Installation können hier nichts verursachen.

Ich hoffe du kannst hier nochmal helfen - oder wer auch immer.

Ingo