Ankündigung

Einklappen
Keine Ankündigung bisher.

Linknx auf Raspberry Pi3 mit Raspbian Stretch lite

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

    KNX/EIB Linknx auf Raspberry Pi3 mit Raspbian Stretch lite

    Hallo,

    ich habe mir einen Raspi P3 mit dem aktuellen Image von https://www.raspberrypi.org/downloads/raspbian/ installiert
    RASPBIAN STRETCH LITE

    Minimal image based on Debian Stretch
    Version:August 2017
    Release date:2017-08-16
    Kernel version:4.9


    Die Einrichtung ist soweit erfolgt, statische IP-Adresse ist vergeben.
    eibd ist installiert und läuft - ich kann Telegramme vom Bus sehen und z.B. einen Aktor schalten.

    Nun möchte ich noch linknx installieren. Ich habe einige Anleitungen gefunden, aber komme mit keiner zum Ziel.
    Ich habe sowohl die Version 0.0.1.30 als auch 0.0.1.33 heruntergeladen und entpackt.

    Je nach Anleitung erfolgt dann ein....

    ./configure make make install oder
    ./configure --enable-smtp --with-log4cpp --with-lua --with-mysql=/usr/bin/mysql_config make make install oder ./configure --without-log4cpp --without-lua --with-mysql=/usr/bin/mysql_config
    make
    make install


    1) Welche Parameter sind sinnvoll bzw. braucht man?
    2) ./configure wird durchlaufen, bei make gibts einige errors. Nachdem das über 1000 Zeilen sind, hab ich hier nur die ersten reinkopiert:


    Code:
    root@raspi3:~# cd ho[K[K/home/pi/linknx-0.0.1.30/
    root@raspi3:/home/pi/linknx-0.0.1.30# make
    make  all-recursive
    make[1]: Entering directory '/home/pi/linknx-0.0.1.30'
    Making all in ticpp
    make[2]: Entering directory '/home/pi/linknx-0.0.1.30/ticpp'
    make[2]: Nothing to be done for 'all'.
    make[2]: Leaving directory '/home/pi/linknx-0.0.1.30/ticpp'
    Making all in src
    make[2]: Entering directory '/home/pi/linknx-0.0.1.30/src'
    g++ -DHAVE_CONFIG_H -I. -I..  -I../include -I../ticpp -I/usr/local/include   -I/usr/include/lua5.1   -g -O2 -MT suncalc.o -MD -MP -MF .deps/suncalc.Tpo -c -o suncalc.o suncalc.cpp
    In file included from [01m[K/usr/include/c++/6/math.h:36:0[m[K,
                     from [01m[Ksuncalc.cpp:47[m[K:
    [01m[K/usr/include/c++/6/cmath:101:37:[m[K [01;31m[Kerror: [m[K‘[01m[K__is_integer[m[K’ was not declared in this scope
         typename __gnu_cxx::__enable_if<[01;31m[K__is_integer[m[K<_Tp>::__value,
                                         [01;31m[K^~~~~~~~~~~~[m[K
    [01m[K/usr/include/c++/6/cmath:101:37:[m[K [01;36m[Knote: [m[Ksuggested alternative:
    In file included from [01m[K/usr/include/c++/6/bits/stl_algobase.h:61:0[m[K,
                     from [01m[K/usr/include/c++/6/list:60[m[K,
                     from [01m[Ksuncalc.h:23[m[K,
                     from [01m[Ksuncalc.cpp:25[m[K:
    [01m[K/usr/include/c++/6/bits/cpp_type_traits.h:127:12:[m[K [01;36m[Knote: [m[K  ‘[01m[Kstd::__is_integer[m[K’
         struct [01;36m[K__is_integer[m[K
                [01;36m[K^~~~~~~~~~~~[m[K
    In file included from [01m[K/usr/include/c++/6/math.h:36:0[m[K,
                     from [01m[Ksuncalc.cpp:47[m[K:
    [01m[K/usr/include/c++/6/cmath:101:53:[m[K [01;31m[Kerror: [m[Kwrong number of template arguments (1, should be 2)
         typename __gnu_cxx::__enable_if<__is_integer<_Tp[01;31m[K>[m[K::__value,
                                                         [01;31m[K^[m[K
    In file included from [01m[K/usr/include/c++/6/bits/stl_algobase.h:62:0[m[K,
                     from [01m[K/usr/include/c++/6/list:60[m[K,
                     from [01m[Ksuncalc.h:23[m[K,
                     from [01m[Ksuncalc.cpp:25[m[K:
    [01m[K/usr/include/c++/6/ext/type_traits.h:45:12:[m[K [01;36m[Knote: [m[Kprovided for ‘[01m[Ktemplate<bool <anonymous>, class> struct __gnu_cxx::__enable_if[m[K’
         struct [01;36m[K__enable_if[m[K
                [01;36m[K^~~~~~~~~~~[m[K
    In file included from [01m[K/usr/include/c++/6/math.h:36:0[m[K,
                     from [01m[Ksuncalc.cpp:47[m[K:
    [01m[K/usr/include/c++/6/cmath:101:54:[m[K [01;31m[Kerror: [m[Kexpected identifier before ‘[01m[K::[m[K’ token
         typename __gnu_cxx::__enable_if<__is_integer<_Tp>[01;31m[K::[m[K__value,
                                                          [01;31m[K^~[m[K
    [01m[K/usr/include/c++/6/cmath:101:56:[m[K [01;31m[Kerror: [m[Kdeclaration of ‘[01m[K__value[m[K’ not in a namespace surrounding ‘[01m[K::[m[K’
         typename __gnu_cxx::__enable_if<__is_integer<_Tp>::[01;31m[K__value[m[K,
                                                            [01;31m[K^~~~~~~[m[K
    [01m[K/usr/include/c++/6/cmath:101:56:[m[K [01;31m[Kerror: [m[K‘[01m[K__value[m[K’ should have been declared inside ‘[01m[K::[m[K’
    [01m[K/usr/include/c++/6/cmath:101:56:[m[K [01;31m[Kerror: [m[K‘[01m[K__value[m[K’ declared as an ‘[01m[Kinline[m[K’ variable
    [01m[K/usr/include/c++/6/cmath:101:63:[m[K [01;31m[Kerror: [m[Kexpected ‘[01m[K;[m[K’ before ‘[01m[K,[m[K’ token
         typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value[01;31m[K,[m[K
                                                                   [01;31m[K^[m[K
    [01m[K/usr/include/c++/6/cmath:106:11:[m[K [01;31m[Kerror: [m[K‘[01m[K::acos[m[K’ has not been declared
       using ::[01;31m[Kacos[m[K;
               [01;31m[K^~~~[m[K
    [01m[K/usr/include/c++/6/cmath:120:37:[m[K [01;31m[Kerror: [m[K‘[01m[K__is_integer[m[K’ was not declared in this scope
         typename __gnu_cxx::__enable_if<[01;31m[K__is_integer[m[K<_Tp>::__value,
                                         [01;31m[K^~~~~~~~~~~~[m[K
    [01m[K/usr/include/c++/6/cmath:120:37:[m[K [01;36m[Knote: [m[Ksuggested alternative:
    In file included from [01m[K/usr/include/c++/6/bits/stl_algobase.h:61:0[m[K,
                     from [01m[K/usr/include/c++/6/list:60[m[K,
                     from [01m[Ksuncalc.h:23[m[K,
                     from [01m[Ksuncalc.cpp:25[m[K:
    [01m[K/usr/include/c++/6/bits/cpp_type_traits.h:127:12:[m[K [01;36m[Knote: [m[K  ‘[01m[Kstd::__is_integer[m[K’
         struct [01;36m[K__is_integer[m[K
                [01;36m[K^~~~~~~~~~~~[m[K

    Wer kann weiterhelfen? Ich kann mit den error-Meldungen nichts anfangen. Fehlt hier etwas oder mache ich etwas falsch?

    Danke,
    Stefan


    #2
    Wenn sind die letzten Zeilen Intressant.
    Hast du die Pthsem installiert?
    Normalerweise meckert der das die Pthsem gefunden wurde aber nicht getestet werde kann.
    Dafür ist der Parameter
    --without-pth-test
    Zuletzt geändert von larsrosen; 24.08.2017, 14:09.
    Elektroinstallation-Rosenberg
    -Systemintegration-
    Planung, Ausführung, Bauherren Unterstützung
    http://www.knx-haus.com

    Kommentar


      #3
      Ja, das wurde ohne Fehler durchlaufen.

      Kommentar


        #4
        Und wo ist jetzt das Problem?
        Wenn der Build Prozess durchgelaufen ist, sollte ein Linkknx bin auch erstellt worden sein.
        Zuletzt geändert von larsrosen; 24.08.2017, 14:10.
        Elektroinstallation-Rosenberg
        -Systemintegration-
        Planung, Ausführung, Bauherren Unterstützung
        http://www.knx-haus.com

        Kommentar


          #5
          Dann verstehe ich das nicht richtig.
          In sämtlichen Anleitungen wird zuerst pthsem heruntergeladen und installiert, danach linknx heruntergeladen und installiert.
          Das hat funktioniert bis zur Installation von linknx, einige warnings hab ich ignoriert, letztendlich wurde mit Error 2 beendet.

          Ich kann das ganze mit dem Parameter --without-pth-test ausprobieren ob das hilft.

          Wie kann ich testen ob linknx funktioniert?

          Kommentar


            #6
            Zitat von netfriend Beitrag anzeigen
            Wie kann ich testen ob linknx funktioniert?
            minimal damit: linknx -V

            EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

            Kommentar


              #7
              Was problemlos durchlaufen sollte wäre das, wenn pthsem bereits installiert ist.
              Code:
              wget http://downloads.sourceforge.net/project/linknx/linknx/linknx-0.0.1.30/linknx-0.0.1.30.tar.gz
              tar -zxvf linknx-0.0.1.30.tar.gz
              cd linknx-0.0.1.30
              ./configure --with-lua --without-pth-test
              make
              make install

              Kommentar


                #8
                Zitat von netfriend Beitrag anzeigen
                Dann verstehe ich das nicht richtig.
                In sämtlichen Anleitungen wird zuerst pthsem heruntergeladen und installiert, danach linknx heruntergeladen und installiert.
                Das hat funktioniert bis zur Installation von linknx, einige warnings hab ich ignoriert, letztendlich wurde mit Error 2 beendet.

                Ich kann das ganze mit dem Parameter --without-pth-test ausprobieren ob das hilft.

                Wie kann ich testen ob linknx funktioniert?
                Was sind denn die letzten 20 Zeilen wenn er abbricht. Die ersten sind meistens nicht das Problem, sondern die letzten.
                Elektroinstallation-Rosenberg
                -Systemintegration-
                Planung, Ausführung, Bauherren Unterstützung
                http://www.knx-haus.com

                Kommentar


                  #9
                  Zitat von Michixx Beitrag anzeigen
                  Was problemlos durchlaufen sollte wäre das, wenn pthsem bereits installiert ist.
                  Code:
                  wget http://downloads.sourceforge.net/project/linknx/linknx/linknx-0.0.1.30/linknx-0.0.1.30.tar.gz
                  tar -zxvf linknx-0.0.1.30.tar.gz
                  cd linknx-0.0.1.30
                  ./configure --with-lua --without-pth-test
                  make
                  make install
                  Hab ich ausprobiert...configure läuft ohne Fehler/Abbruch durch, make zeigt nach wie vor errors. Hier die letzten Zeilen:

                  Code:
                  /usr/include/c++/6/cmath:1872:47: note: suggested alternative:
                  In file included from /usr/include/c++/6/bits/stl_algobase.h:61:0,
                                   from /usr/include/c++/6/list:60,
                                   from suncalc.h:23,
                                   from suncalc.cpp:25:
                  /usr/include/c++/6/bits/cpp_type_traits.h:127:12: note:   ‘std::__is_integer’
                       struct __is_integer
                              ^~~~~~~~~~~~
                  In file included from /usr/include/c++/6/math.h:36:0,
                                   from suncalc.cpp:47:
                  /usr/include/c++/6/cmath:1872:63: error: wrong number of template arguments (1, should be 2)
                       constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
                                                                                 ^
                  In file included from /usr/include/c++/6/bits/stl_algobase.h:62:0,
                                   from /usr/include/c++/6/list:60,
                                   from suncalc.h:23,
                                   from suncalc.cpp:25:
                  /usr/include/c++/6/ext/type_traits.h:45:12: note: provided for ‘template<bool <anonymous>, class> struct __gnu_cxx::__enable_if’
                       struct __enable_if
                              ^~~~~~~~~~~
                  In file included from /usr/include/c++/6/math.h:36:0,
                                   from suncalc.cpp:47:
                  /usr/include/c++/6/cmath:1872:64: error: expected identifier before ‘::’ token
                       constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
                                                                                  ^~
                  /usr/include/c++/6/cmath:1872:66: error: declaration of ‘__value’ not in a namespace surrounding ‘::’
                       constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
                                                                                    ^~~~~~~
                  /usr/include/c++/6/cmath:1872:66: error: ‘__value’ should have been declared inside ‘::’
                  /usr/include/c++/6/cmath:1872:66: error: redeclaration of ‘template<class _Tp> constexpr const int __value’
                  /usr/include/c++/6/cmath:101:56: note: previous declaration ‘template<class _Tp> constexpr const int __value<_Tp>’
                       typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
                                                                          ^~~~~~~
                  /usr/include/c++/6/cmath:1872:73: error: expected ‘;’ before ‘,’ token
                       constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,
                                                                                           ^
                  Makefile:302: recipe for target 'suncalc.o' failed
                  make[2]: *** [suncalc.o] Error 1
                  make[2]: Leaving directory '/home/pi/linknx-0.0.1.30/src'
                  Makefile:277: recipe for target 'all-recursive' failed
                  make[1]: *** [all-recursive] Error 1
                  make[1]: Leaving directory '/home/pi/linknx-0.0.1.30'
                  Makefile:215: recipe for target 'all' failed
                  make: *** [all] Error 2
                  root@raspi3:/home/pi/linknx-0.0.1.30#

                  Kommentar


                    #10
                    Sollte wohl keinen Unterschied machen, ich empfehle trotzdem den letzten offiziellen Stand der SW zu verwenden: https://github.com/linknx/linknx/archive/0.0.1.33.zip
                    EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

                    Kommentar


                      #11
                      Zitat von Tru Beitrag anzeigen
                      Sollte wohl keinen Unterschied machen, ich empfehle trotzdem den letzten offiziellen Stand der SW zu verwenden: https://github.com/linknx/linknx/archive/0.0.1.33.zip
                      Hab ich auch schon probiert, gleiches Ergebnis

                      Kommentar


                        #12
                        Zitat von netfriend Beitrag anzeigen

                        Hab ich auch schon probiert, gleiches Ergebnis
                        Dann probiere noch den letzten Stand vom Master. Zwischen 0.0.1.33 und master gab es noch eine Anpassung im File src/suncalc.cpp.
                        Wenn auch das nichts helfen sollte, wird es wohl schwierig, denn ich fürchte, dass dann deine Build-Umgebung zu neu ist für den alten Code und dann müsste ein fähiger Entwickler ran. Jedenfalls solltest du einen Issue dafür eröffnen, vielleicht kümmert sich dann jemand drum. Meine Build-Umgebung nutzt jedenfalls gcc Version 5, deiner scheinbar bereits Version 6.
                        EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

                        Kommentar


                          #13
                          Jepp, scheint genauso wie Tru schrieb.

                          In der gcc Version 6 sind scheinbar die include Files angepasst worden.
                          Die müssen evtl im Source von Linknx angepasst werden.

                          mit dem patch

                          https://github.com/maximeh/buildroot...-gcc-6.x.patch

                          sollte es wieder gehen. Da wird dir math.h entfern und durch die aktuelle cmath ergänzt.
                          Elektroinstallation-Rosenberg
                          -Systemintegration-
                          Planung, Ausführung, Bauherren Unterstützung
                          http://www.knx-haus.com

                          Kommentar


                            #14
                            Das klingt ja schon mal vielversprechend.
                            Kommt der Patch mit, wenn man apt-get update und apt-get upgrade ausführt oder wie muss man den installieren?

                            Kommentar


                              #15
                              Zitat von netfriend Beitrag anzeigen
                              wie muss man den installieren?
                              Du gehst gleich vor wie bisher wenn du linknx selbst gebaut hast. Aber vor dem Ausführen von "configure" flickst du das File src/suncalc.cpp manuell wie im Patchfile angegeben. Oder du speicherst das Patchfile und führst den Befehl patch aus. Ist in diesem Fall fast kompilizierter.
                              Wenn es dann so klappt, dann wäre es sinnvoll einen Issue für linknx zu eröffnen. Die Wunschlösung wäre, dass die Source so geändert wird, dass die Eigenschaften der Buildumgebung automatisch erkannt und die Include-Files richtig gesetzt werden. Das ist etwas für den Entwickler und nicht ganz meine Wellenlänge.

                              EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

                              Kommentar

                              Lädt...
                              X