Problem bei Installation ebusd (Raspberry Pi 4)

Begonnen von tho-mas, 23 November 2023, 18:04:16

Vorheriges Thema - Nächstes Thema

tho-mas

Moin!

Im Jahr 2022 hatte ich schon einmal versucht meine Heizung per (gekauftem Fertiggerät) Adapter an FHEM auf einem Raspberry Pi anzuschließen. Das gelang nicht. Irgendwann hatte ich dann aufgegeben und mußte leider feststellen, das nach und nach immer mehr Bauteile ausfielen. Auch eine geklonte SD-Karte brachte keine Änderung der Situation. Inzwischen weiss ich das doch die SD-Karte das Problem gewesen ist. Also habe ich eine neue Karte, ein neues OS und eine frische FHEM-Installation zusammen (seit 3 Wochen). Die FHEM.CFG ist die alte, und nahezu alles läuft jetzt wieder was vorher ausgefallen war.

Da das Pi-OS neu ist wollte ich nun auch den ebusd neu installieren. Für die Installation habe ich diese Seite gefunden https://github.com/john30/ebusd/wiki/1.-Build-and-install. Alles hübsch anzusehen, aber sehr schwer zu verstehen - weil nicht auf deutsch. Trotzdem habe ich es versucht und mußte leider viel raten.

Install required packages on Debian funktioniert nicht. Also

Install required packages on Ubuntu probiert. Ergebnis:

ry@raspberrypi:~ $ sudo apt install git autoconf automake g++ make
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Statusinformationen werden eingelesen... Fertig
git ist schon die neueste Version (1:2.39.2-1.1).
g++ ist schon die neueste Version (4:12.2.0-3).
g++ wurde als manuell installiert festgelegt.
make ist schon die neueste Version (4.3-4.1).
make wurde als manuell installiert festgelegt.
Die folgenden zusätzlichen Pakete werden installiert:
  autotools-dev m4
Vorgeschlagene Pakete:
  autoconf-archive gnu-standards autoconf-doc libtool gettext m4-doc
Die folgenden NEUEN Pakete werden installiert:
  autoconf automake autotools-dev m4
0 aktualisiert, 4 neu installiert, 0 zu entfernen und 84 nicht aktualisiert.
Es müssen 1.483 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 4.831 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] j
Holen:1 http://deb.debian.org/debian bookworm/main arm64 m4 arm64 1.4.19-3 [276 kB]
Holen:2 http://deb.debian.org/debian bookworm/main arm64 autoconf all 2.71-3 [332 kB]
Holen:3 http://deb.debian.org/debian bookworm/main arm64 autotools-dev all 20220109.1 [51,6 kB]
Holen:4 http://deb.debian.org/debian bookworm/main arm64 automake all 1:1.16.5-1.3 [823 kB]
Es wurden 1.483 kB in 0 s geholt (5.576 kB/s).
Vormals nicht ausgewähltes Paket m4 wird gewählt.
(Lese Datenbank ... 130426 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../archives/m4_1.4.19-3_arm64.deb ...
Entpacken von m4 (1.4.19-3) ...
Vormals nicht ausgewähltes Paket autoconf wird gewählt.
Vorbereitung zum Entpacken von .../autoconf_2.71-3_all.deb ...
Entpacken von autoconf (2.71-3) ...
Vormals nicht ausgewähltes Paket autotools-dev wird gewählt.
Vorbereitung zum Entpacken von .../autotools-dev_20220109.1_all.deb ...
Entpacken von autotools-dev (20220109.1) ...
Vormals nicht ausgewähltes Paket automake wird gewählt.
Vorbereitung zum Entpacken von .../automake_1%3a1.16.5-1.3_all.deb ...
Entpacken von automake (1:1.16.5-1.3) ...
m4 (1.4.19-3) wird eingerichtet ...
autotools-dev (20220109.1) wird eingerichtet ...
autoconf (2.71-3) wird eingerichtet ...
automake (1:1.16.5-1.3) wird eingerichtet ...
update-alternatives: /usr/bin/automake-1.16 wird verwendet, um /usr/bin/automake (automake) im automatischen Modus bereitzustellen
Trigger für man-db (2.11.2-2) werden verarbeitet ...
Das sieht für mich okay aus. Nun das erste Problem: MQTT soll auch installiert werden, in der Anleitung steht

Adding MQTT support
For MQTT support also add libmosquitto-dev.
Hmm... Wo addieren? Was und wie addieren? Hier wäre eine genauere Anleitung hilfreich. Also erst einmal weiter, da ich eine vage Erinnerung habe das MQTT für den Betrieb mit fhem benötigt wird, aber ich möchte erst einmal den ebusd zum laufen bringen.

Get the source Das war einfach zu verstehen...

ry@raspberrypi:~ $ git clone https://github.com/john30/ebusd.git 
cd ebusd
Klone nach 'ebusd'...
remote: Enumerating objects: 17763, done.
remote: Counting objects: 100% (4254/4254), done.
remote: Compressing objects: 100% (1674/1674), done.
remote: Total 17763 (delta 2678), reused 4119 (delta 2558), pack-reused 13509
Empfange Objekte: 100% (17763/17763), 9.77 MiB | 8.02 MiB/s, fertig.
Löse Unterschiede auf: 100% (11093/11093), fertig.
Sollte funktioniert haben.

Configuration
Configuration with autocon
Automatische Konfiguration hört sich gut an:

ry@raspberrypi:~/ebusd $ ./autogen.sh
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: /usr/bin/autoconf --force
configure.ac:9: warning: The macro `AC_GNU_SOURCE' is obsolete.
configure.ac:9: You should run autoupdate.
./lib/autoconf/specific.m4:312: AC_GNU_SOURCE is expanded from...
configure.ac:9: the top level
configure.ac:89: warning: The macro `AC_TRY_RUN' is obsolete.
configure.ac:89: You should run autoupdate.
./lib/autoconf/general.m4:2997: AC_TRY_RUN is expanded from...
configure.ac:89: the top level
configure.ac:106: warning: The macro `AC_TRY_RUN' is obsolete.
configure.ac:106: You should run autoupdate.
./lib/autoconf/general.m4:2997: AC_TRY_RUN is expanded from...
configure.ac:106: the top level
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:169: installing 'build/ar-lib'
configure.ac:9: installing 'build/compile'
configure.ac:167: installing 'build/install-sh'
configure.ac:167: installing 'build/missing'
src/ebusd/Makefile.am: installing 'build/depcomp'
autoreconf: Leaving directory '.'
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for g++-6... no
checking for g++-5... no
checking for g++-4.9... no
checking for g++-4.8... no
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking whether g++ supports C++11 features by default... yes
checking for arpa/inet.h... yes
checking for dirent.h... yes
checking for fcntl.h... yes
checking for netdb.h... yes
checking for poll.h... yes
checking for pthread.h... yes
checking for sys/ioctl.h... yes
checking for sys/select.h... yes
checking for sys/time.h... yes
checking for syslog.h... yes
checking for time.h... yes
checking for termios.h... yes
checking for timegm... yes
checking for cfsetspeed... yes
checking for pthread_setname_np in -lpthread... yes
checking for clock_gettime in -lrt... yes
checking for pselect... yes
checking for ppoll... yes
checking for linux/serial.h... yes
checking for dev/usb/uftdiio.h... no
checking for mosquitto_lib_init in -lmosquitto... no
Could not find mosquitto_lib_init in libmosquitto.
checking for OPENSSL_init_ssl in -lssl... no
Could not find SSL_library_init in libssl.
checking for direct float format conversion... yes
checking for doxygen... no
configure: WARNING: Doxygen not found - continuing without Doxygen support.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking dependency style of g++... gcc3
checking for ar... ar
checking the archiver (ar) interface... ar
checking for ranlib... ranlib
checking whether make supports nested variables... (cached) yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating docs/Makefile
config.status: creating src/lib/utils/Makefile
config.status: creating src/lib/ebus/Makefile
config.status: creating src/lib/ebus/test/Makefile
config.status: creating src/ebusd/Makefile
config.status: creating src/tools/Makefile
config.status: creating src/lib/ebus/contrib/Makefile
config.status: creating src/lib/ebus/contrib/test/Makefile
config.status: creating src/lib/knx/Makefile
config.status: creating config.h
config.status: executing depfiles commands
Viel "yes", einige "no". Ist das soweit okay?

Compilation
Das war einfach... Auch wenn ich nicht wirklich verstehe was da gerade passiert:

ry@raspberrypi:~/ebusd $ make
make  all-recursive
make[1]: Verzeichnis »/home/ry/ebusd« wird betreten
Making all in docs
make[2]: Verzeichnis »/home/ry/ebusd/docs« wird betreten
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Verzeichnis »/home/ry/ebusd/docs« wird verlassen
Making all in src/lib/utils
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/utils« wird betreten
  CXX      arg.o
  CXX      log.o
  CXX      tcpsocket.o
  CXX      thread.o
  CXX      clock.o
  CXX      rotatefile.o
  CXX      httpclient.o
httpclient.cpp: In static member function 'static void ebusd::HttpClient::initialize(const char*, const char*)':
httpclient.cpp:330:41: warning: unused parameter 'caFile' [-Wunused-parameter]
  330 | void HttpClient::initialize(const char* caFile, const char* caPath) {
      |                             ~~~~~~~~~~~~^~~~~~
httpclient.cpp:330:61: warning: unused parameter 'caPath' [-Wunused-parameter]
  330 | void HttpClient::initialize(const char* caFile, const char* caPath) {
      |                                                 ~~~~~~~~~~~~^~~~~~
  AR       libutils.a
ar: `u' modifier ignored since `D' is the default (see `U')
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/utils« wird verlassen
Making all in src/lib/ebus
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/ebus« wird betreten
Making all in contrib
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/ebus/contrib« wird betreten
  CXX      contrib.o
  CXX      tem.o
  AR       libebuscontrib.a
ar: `u' modifier ignored since `D' is the default (see `U')
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/ebus/contrib« wird verlassen
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/ebus« wird betreten
  CXX      result.o
  CXX      symbol.o
  CXX      filereader.o
  CXX      datatype.o
  CXX      data.o
  CXX      device.o
device.cpp: In member function 'virtual ebusd::result_t ebusd::FileDevice::sendSequence(ebusd::SequenceId, const uint8_t*, size_t)':
device.cpp:292:37: warning: comparison of integer expressions of different signedness: 'ssize_t' {aka 'long int'} and 'size_t' {aka 'long unsigned int'} [-Wsign-compare]
  292 |   if (::write(m_fd, m_sendBuf, pos) == pos) {
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
  CXX      protocol.o
  CXX      protocol_direct.o
  CXX      message.o
message.cpp: In member function 'virtual void ebusd::SimpleStringCondition::dumpValuesJson(std::ostream*) const':
message.cpp:1697:19: warning: loop variable 'value' creates a copy from type 'const std::__cxx11::basic_string<char>' [-Wrange-loop-construct]
 1697 |   for (const auto value : m_values) {
      |                   ^~~~~
message.cpp:1697:19: note: use reference type to prevent copying
 1697 |   for (const auto value : m_values) {
      |                   ^~~~~
      |                   &
message.cpp: In member function 'void ebusd::MessageMap::clear()':
message.cpp:2809:23: warning: ignoring return value of 'std::priority_queue<_Tp, _Sequence, _Compare>::const_reference std::priority_queue<_Tp, _Sequence, _Compare>::top() const [with _Tp = ebusd::Message*; _Sequence = std::vector<ebusd::Message*>; _Compare = ebusd::compareMessagePriority; const_reference = ebusd::Message* const&]', declared with attribute 'nodiscard' [-Wunused-result]
 2809 |     m_pollMessages.top();
      |     ~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/c++/12/queue:64,
                 from ../../../src/lib/ebus/message.h:27,
                 from message.cpp:19:
/usr/include/c++/12/bits/stl_queue.h:723:7: note: declared here
  723 |       top() const
      |       ^~~
  CXX      stringhelper.o
  AR       libebus.a
ar: `u' modifier ignored since `D' is the default (see `U')
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/ebus« wird verlassen
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/ebus« wird verlassen
Making all in src/lib/knx
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/knx« wird betreten
  CXX      knx.o
In file included from knx.cpp:25:
../../../src/lib/knx/knx.h: In member function 'virtual void ebusd::KnxConnection::setAddress(ebusd::knx_addr_t)':
../../../src/lib/knx/knx.h:163:38: warning: unused parameter 'address' [-Wunused-parameter]
  163 |   virtual void setAddress(knx_addr_t address) {
      |                           ~~~~~~~~~~~^~~~~~~
../../../src/lib/knx/knx.h: In member function 'virtual void ebusd::KnxConnection::setProgrammingMode(bool)':
../../../src/lib/knx/knx.h:179:40: warning: unused parameter 'on' [-Wunused-parameter]
  179 |   virtual void setProgrammingMode(bool on) {
      |                                   ~~~~~^~
  AR       libknx.a
ar: `u' modifier ignored since `D' is the default (see `U')
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/knx« wird verlassen
Making all in src/ebusd
make[2]: Verzeichnis »/home/ry/ebusd/src/ebusd« wird betreten
  CXX      bushandler.o
  CXX      datahandler.o
  CXX      request.o
  CXX      network.o
  CXX      mainloop.o
  CXX      scan.o
  CXX      main.o
  CXX      main_args.o
  CXX      knxhandler.o
  CXXLD    ebusd
make[2]: Verzeichnis »/home/ry/ebusd/src/ebusd« wird verlassen
Making all in src/tools
make[2]: Verzeichnis »/home/ry/ebusd/src/tools« wird betreten
  CXX      ebusctl.o
  CXXLD    ebusctl
  CXX      ebuspicloader.o
ebuspicloader.cpp: In function 'int parse_opt(int, char*, const ebusd::argParseOpt*, void*)':
ebuspicloader.cpp:238:45: warning: comparison of integer expressions of different signedness: 'uint32_t' {aka 'unsigned int'} and 'int' [-Wsign-compare]
  238 |       if (!setGatewayBits || setGatewayBits == ((1 << (32 - setMaskLen)) - 1)) {
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ebuspicloader.cpp:262:33: warning: comparison of integer expressions of different signedness: 'uint32_t' {aka 'unsigned int'} and 'int' [-Wsign-compare]
  262 |       if ((setGatewayBits >> 5) == ((1<<((32-setMaskLen)-5))-1)) {
      |           ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CXX      intelhex/intelhexclass.o
intelhex/intelhexclass.cpp: In function 'std::istream& operator>>(std::istream&, intelhex&)':
intelhex/intelhexclass.cpp:833:40: warning: 'byteRead' may be used uninitialized [-Wmaybe-uninitialized]
  833 |                   ihLocal.ucToHexString(byteRead);
      |                   ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
intelhex/intelhexclass.cpp:330:17: note: 'byteRead' was declared here
  330 |   unsigned char byteRead;
      |                 ^~~~~~~~
  CXXLD    ebuspicloader
make[2]: Verzeichnis »/home/ry/ebusd/src/tools« wird verlassen
make[2]: Verzeichnis »/home/ry/ebusd« wird betreten
make[2]: Verzeichnis »/home/ry/ebusd« wird verlassen
make[1]: Verzeichnis »/home/ry/ebusd« wird verlassen

Jedenfalls scheint der ebusd installiert worden zu sein:

ry@raspberrypi:~/ebusd $ ./src/ebusd/ebusd --help
Usage: ebusd [OPTION...] [INJECT...]
A daemon for communication with eBUS heating systems.

 Device options:
  -d, --device=DEV           Use DEV as eBUS device (prefix "ens:" for enhanced
                             high speed device or "enh:" for enhanced device,
                             with "IP:PORT" for network device or "DEVICE" for
                             serial device) [/dev/ttyUSB0]
  -n, --nodevicecheck        Skip serial eBUS device test
  -r, --readonly             Only read from device, never write to it
      --initsend             Send an initial escape symbol after connecting
                             device
      --latency=MSEC         Extra transfer latency in ms [0]

 Message configuration options:
  -c, --configpath=PATH      Read CSV config files from PATH (local folder or
                             HTTPS URL) [http://cfg.ebusd.eu/]
  -s, --scanconfig[=ADDR]    Pick CSV config files matching initial scan ADDR:
                             empty for broadcast ident message (default when
                             configpath is not given), "none" for no initial
                             scan message, "full" for full scan, a single hex
                             address to scan, or "off" for not picking CSV
                             files by scan result (default when configpath is
                             given).
                             If combined with --checkconfig, you can add scan
                             message data as arguments for checking a
                             particular scan configuration, e.g.
                             "FF08070400/0AB5454850303003277201".
      --scanretries=COUNT    Retry scanning devices COUNT times [5]
      --configlang=LANG      Prefer LANG in multilingual configuration files
                             [system default language]
      --checkconfig          Check config files, then stop
      --dumpconfig[=FORMAT]  Check and dump config files in FORMAT ("json" or
                             "csv"), then stop
      --dumpconfigto=FILE    Dump config files to FILE
      --pollinterval=SEC     Poll for data every SEC seconds (0=disable) [5]
  -i, --inject[=stop]        Inject remaining arguments as already seen
                             messages (e.g.
                             "FF08070400/0AB5454850303003277201"), optionally
                             stop afterwards
        [INJECT...]          Message(s) to inject (if --inject was given)

 eBUS options:
  -a, --address=ADDR         Use hex ADDR as own master bus address [31]
      --answer               Actively answer to requests from other masters
      --acquiretimeout=MSEC  Stop bus acquisition after MSEC ms [10]
      --acquireretries=COUNT Retry bus acquisition COUNT times [3]
      --sendretries=COUNT    Repeat failed sends COUNT times [2]
      --receivetimeout=MSEC  Expect a slave to answer within MSEC ms [25]
      --numbermasters=COUNT  Expect COUNT masters on the bus, 0 for auto
                             detection [0]
      --generatesyn          Enable AUTO-SYN symbol generation

 Daemon options:
      --accesslevel=LEVEL    Set default access level to LEVEL ("*" for
                             everything) [""]
      --aclfile=FILE         Read access control list from FILE
  -f, --foreground           Run in foreground
      --enablehex            Enable hex command
      --enabledefine         Enable define command
      --pidfile=FILE         PID file name (only for daemon)
                             [/var/run/ebusd.pid]
  -p, --port=PORT            Listen for command line connections on PORT [8888]
      --localhost            Listen for command line connections on 127.0.0.1
                             interface only
      --httpport=PORT        Listen for HTTP connections on PORT, 0 to disable
                             [0]
      --htmlpath=PATH        Path for HTML files served by HTTP port
                             [/var/ebusd/html]
      --updatecheck=MODE     Set automatic update check to MODE (on|off) [on]

 Log options:
  -l, --logfile=FILE         Write log to FILE (only for daemon, empty string
                             for using syslog) [/var/log/ebusd.log]
      --log=AREAS:LEVEL      Only write log for matching AREA(S) below or equal
                             to LEVEL (alternative to --logareas/--logevel, may
                             be used multiple times) [all:notice]
      --logareas=AREAS       Only write log for matching AREA(S):
                             main|network|bus|update|other|all [all]
      --loglevel=LEVEL       Only write log below or equal to LEVEL:
                             error|notice|info|debug [notice]

 Raw logging options:
      --lograwdata[=bytes]   Log messages or all received/sent bytes on the bus
      --lograwdatafile=FILE  Write raw log to FILE [/var/log/ebusd.log]
      --lograwdatasize=SIZE  Make raw log file no larger than SIZE kB [100]

 Binary dump options:
  -D, --dump                 Enable binary dump of received bytes
      --dumpfile=FILE        Dump received bytes to FILE [/tmp/ebusd_dump.bin]
      --dumpsize=SIZE        Make dump file no larger than SIZE kB [100]
      --dumpflush            Flush each byte

 KNX options:
      --knxurl[=URL]         URL to open (i.e. "[multicast][@interface]" for
                             KNXnet/IP) (no default)
      --knxrage=SEC          Maximum age in seconds for using the last value of
                             read messages (0=disable) [5]
      --knxwage=SEC          Maximum age in seconds for using the last value
                             for reads on write messages (0=disable),
                             [99999999]
      --knxint=FILE          Read KNX integration settings from FILE
                             [/etc/ebusd/knx.cfg]
      --knxvar=NAME=VALUE[,...] Add variable(s) to the read KNX integration
                             settings

  -?, --help                 Give this help list
  -V, --version              Print program version

Report bugs to ebusd@ebusd.eu .

Installation Wieso nochmal installation? Das Programm läuft doch schon??? Auch hier wäre ein kleiner Hilfstext nützlich. Aber es steht so in der Anleitung, also mache ich das so:

y@raspberrypi:~/ebusd $ make install-strip
if test -z ''; then \
  make  INSTALL_PROGRAM="/bin/bash /home/ry/ebusd/build/install-sh -c -s" \
    install_sh_PROGRAM="/bin/bash /home/ry/ebusd/build/install-sh -c -s" INSTALL_STRIP_FLAG=-s \
      install; \
else \
  make  INSTALL_PROGRAM="/bin/bash /home/ry/ebusd/build/install-sh -c -s" \
    install_sh_PROGRAM="/bin/bash /home/ry/ebusd/build/install-sh -c -s" INSTALL_STRIP_FLAG=-s \
    "INSTALL_PROGRAM_ENV=STRIPPROG=''" install; \
fi
make[1]: Verzeichnis »/home/ry/ebusd« wird betreten
Making install in docs
make[2]: Verzeichnis »/home/ry/ebusd/docs« wird betreten
make[3]: Verzeichnis »/home/ry/ebusd/docs« wird betreten
make[3]: Für das Ziel »install-exec-am« ist nichts zu tun.
make[3]: Für das Ziel »install-data-am« ist nichts zu tun.
make[3]: Verzeichnis »/home/ry/ebusd/docs« wird verlassen
make[2]: Verzeichnis »/home/ry/ebusd/docs« wird verlassen
Making install in src/lib/utils
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/utils« wird betreten
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/utils« wird betreten
make[3]: Für das Ziel »install-exec-am« ist nichts zu tun.
make[3]: Für das Ziel »install-data-am« ist nichts zu tun.
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/utils« wird verlassen
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/utils« wird verlassen
Making install in src/lib/ebus
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/ebus« wird betreten
Making install in contrib
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/ebus/contrib« wird betreten
make[4]: Verzeichnis »/home/ry/ebusd/src/lib/ebus/contrib« wird betreten
make[4]: Für das Ziel »install-exec-am« ist nichts zu tun.
make[4]: Für das Ziel »install-data-am« ist nichts zu tun.
make[4]: Verzeichnis »/home/ry/ebusd/src/lib/ebus/contrib« wird verlassen
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/ebus/contrib« wird verlassen
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/ebus« wird betreten
make[4]: Verzeichnis »/home/ry/ebusd/src/lib/ebus« wird betreten
make[4]: Für das Ziel »install-exec-am« ist nichts zu tun.
make[4]: Für das Ziel »install-data-am« ist nichts zu tun.
make[4]: Verzeichnis »/home/ry/ebusd/src/lib/ebus« wird verlassen
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/ebus« wird verlassen
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/ebus« wird verlassen
Making install in src/lib/knx
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/knx« wird betreten
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/knx« wird betreten
make[3]: Für das Ziel »install-exec-am« ist nichts zu tun.
make[3]: Für das Ziel »install-data-am« ist nichts zu tun.
make[3]: Verzeichnis »/home/ry/ebusd/src/lib/knx« wird verlassen
make[2]: Verzeichnis »/home/ry/ebusd/src/lib/knx« wird verlassen
Making install in src/ebusd
make[2]: Verzeichnis »/home/ry/ebusd/src/ebusd« wird betreten
make[3]: Verzeichnis »/home/ry/ebusd/src/ebusd« wird betreten
 /usr/bin/mkdir -p '/usr/bin'
  /bin/bash /home/ry/ebusd/build/install-sh -c -s ebusd '/usr/bin'
/home/ry/ebusd/build/install-sh: Zeile 464: /usr/bin/_inst.545182_: Keine Berechtigung
make[3]: *** [Makefile:349: install-binPROGRAMS] Fehler 1
make[3]: Verzeichnis »/home/ry/ebusd/src/ebusd« wird verlassen
make[2]: *** [Makefile:532: install-am] Fehler 2
make[2]: Verzeichnis »/home/ry/ebusd/src/ebusd« wird verlassen
make[1]: *** [Makefile:376: install-recursive] Fehler 1
make[1]: Verzeichnis »/home/ry/ebusd« wird verlassen
make: *** [Makefile:686: install-strip] Fehler 2

Warum stehen das zum Ende hin so viele Fehler?

Und zum Schluß:
Start automatically
Da fehlt was. Aber bevor ich da im Nebel rumstocher und vielleicht was "beschäädige" frage ich hier lieber mal was die Experten meinen:

ry@raspberrypi:~/ebusd $ sudo systemctl enable ebusd
sudo service ebusd start
Failed to enable unit: Unit file ebusd.service does not exist.
Failed to start ebusd.service: Unit ebusd.service not found.
ry@raspberrypi:~/ebusd $ sudo update-rc.d ebusd defaults
sudo update-rc.d ebusd enable
sudo /etc/init.d/ebusd start
update-rc.d: error: unable to read /etc/init.d/ebusd
update-rc.d: error: cannot find a LSB script for ebusd
sudo: /etc/init.d/ebusd: Befehl nicht gefunden

passibe

#1
Servus.
Das ist jetzt keine super vollständige Antwort, aber hilft dir hoffentlich weiter.

Was du da versuchst, ist, das Programm selbst aus dem Quellcode zu kompilieren. Das kann man schon machen, ist aber – wie du selbst merkst – aufwendig und häufig fehleranfällig.
Besser ist es deshalb, wenn man eine bereits kompilierte ausführbare Datei ("prebuilt binary") hat, die gibt es meistens auf dem GitHub Repository unter "Releases". So auch bei ebusd: https://github.com/john30/ebusd/releases

Du kannst dann einfach die für deine Hardwareplattform/dein Betriebssystem richtige Version raussuchen, runterladen und mitt dpkg installieren (Anleitungen, wie du Pakete mit dpkg installierst, gibt es im Internet zuhauf).
Bei dir wäre das wohl ebusd-23.2_arm64-bookworm_mqtt1.deb also hier.

Wobei: Ich sehe gerade, dass es noch eine bessere Möglichkeit gibt, und zwar hat ebusd auch ein eigenes Debian Repository, das kannst du als Quelle hinzufügen und dann einfach ebusd via apt installieren. Siehe hier: https://github.com/john30/ebusd-debian/blob/master/README.md

Bei der Anleitung musst du zuerst den "For bookworm"-Schritt ausführen (GPG Key hinzufügen) und dann nur noch
sudo wget -O /etc/apt/sources.list.d/ebusd.list https://raw.githubusercontent.com/john30/ebusd-debian/master/ebusd-default-bookworm.listund dann einfach
apt-get update && apt-get install ebusd
Hoffe das hilft etwas weiter!

tho-mas

#2
Hallo Passible,

leider kein Erfolg. Ich habe die Schritte ab "bessere Möglichkeit" erst ohne sudo probiert, der erste Schritt scheint zu klappen. Trotzdem kommt beim 2. Schritt eine Fehlermeldung mit GPG. Den Zusammenhang verstehe ich nicht, wenn Schritt eins mit einen "Okay" beendet wird.

ry@raspberrypi:/var/log $ sudo sudo wget -O /etc/apt/sources.list.d/ebusd.list https://raw.githubusercontent.com/john30/ebusd-debian/master/ebusd-default-bookworm.list
--2023-11-24 15:03:33--  https://raw.githubusercontent.com/john30/ebusd-debian/master/ebusd-default-bookworm.list
Auflösen des Hostnamens raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8001::154, 2606:50c0:8000::154, 2606:50c0:8003::154, ...
Verbindungsaufbau zu raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8001::154|:443 ... verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet ... 200 OK
Länge: 101 [text/plain]
Wird in »/etc/apt/sources.list.d/ebusd.list« gespeichert.

/etc/apt/sources.list.d/ebusd.list    100%[=========================================================================>]    101  --.-KB/s    in 0s     

2023-11-24 15:03:33 (612 KB/s) - »/etc/apt/sources.list.d/ebusd.list« gespeichert [101/101]

ry@raspberrypi:/var/log $ sudo apt-get update && apt-get install ebusd
OK:1 http://deb.debian.org/debian bookworm InRelease
OK:2 http://deb.debian.org/debian-security bookworm-security InRelease                         
OK:3 http://deb.debian.org/debian bookworm-updates InRelease                                   
OK:4 http://archive.raspberrypi.com/debian bookworm InRelease                                 
Holen:5 https://repo.ebusd.eu/apt/default/bookworm bookworm InRelease [3.667 B]               
Fehl:5 https://repo.ebusd.eu/apt/default/bookworm bookworm InRelease
  Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY E30CF1F4E8C8272C
Paketlisten werden gelesen... Fertig
W: GPG-Fehler: https://repo.ebusd.eu/apt/default/bookworm bookworm InRelease: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY E30CF1F4E8C8272C
E: Das Depot »https://repo.ebusd.eu/apt/default/bookworm bookworm InRelease« ist nicht signiert.
N: Eine Aktualisierung von solch einem Depot kann nicht auf eine sichere Art durchgeführt werden, daher ist es standardmäßig deaktiviert.
N: Weitere Details zur Erzeugung von Paketdepots sowie zu deren Benutzerkonfiguration finden Sie in der Handbuchseite apt-secure(8).
ry@raspberrypi:/var/log $


Und was ich auch nicht verstehe: Warum "amd64" und nicht "arm"? (Hier:  https://github.com/john30/ebusd/releases) Der Rasppi hat kein AMD-Prozessor.

tho-mas

Nachtrag: Irgendwas scheint mir immer einen Streich zu spielen. Deine Anleitung direkt am Pi ausprobiert gibt die Fehlermeldung oben. Am Mac über ssh eingeloggt ebenso. Allerdings: Am Mac vom Pi getrennt und neu eingeloggt scheint deine Anleitung zu funktionieren. JEdefalls sehe ich jetzt das hier:

root@raspberrypi:/home/ry# apt-get update && apt-get install ebusd
Holen:1 http://archive.raspberrypi.com/debian bookworm InRelease [23,6 kB]
OK:2 http://deb.debian.org/debian bookworm InRelease                                                                                           
OK:3 http://deb.debian.org/debian-security bookworm-security InRelease                                                                         
OK:4 http://deb.debian.org/debian bookworm-updates InRelease                       
OK:5 https://repo.ebusd.eu/apt/default/bookworm bookworm InRelease                 
Holen:6 http://archive.raspberrypi.com/debian bookworm/main armhf Packages [348 kB]
Holen:7 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages [339 kB]
Es wurden 711 kB in 2 s geholt (440 kB/s).             
Paketlisten werden gelesen... Fertig
Paketlisten werden gelesen... Fertig
Abh?ngigkeitsbaum wird aufgebaut... Fertig
Statusinformationen werden eingelesen... Fertig
Das folgende Paket wurde automatisch installiert und wird nicht mehr ben?tigt:
  libpisp0.0.1
Verwenden Sie ?sudo apt autoremove?, um es zu entfernen.
Die folgenden zus?tzlichen Pakete werden installiert:
  libmosquitto1
Die folgenden NEUEN Pakete werden installiert:
  ebusd libmosquitto1
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 8 nicht aktualisiert.
Es m?ssen 383 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 213 kB Plattenplatz zus?tzlich benutzt.
M?chten Sie fortfahren? [J/n] j
Holen:1 http://deb.debian.org/debian-security bookworm-security/main arm64 libmosquitto1 arm64 2.0.11-1.2+deb12u1 [85,9 kB]
Holen:2 https://repo.ebusd.eu/apt/default/bookworm bookworm/main arm64 ebusd arm64 23.2 [297 kB]
Es wurden 383 kB in 0 s geholt (1.291 kB/s).     
Vormals nicht ausgew?hltes Paket libmosquitto1:arm64 wird gew?hlt.
(Lese Datenbank ... 150146 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../libmosquitto1_2.0.11-1.2+deb12u1_arm64.deb ...
Entpacken von libmosquitto1:arm64 (2.0.11-1.2+deb12u1) ...
Vormals nicht ausgew?hltes Paket ebusd wird gew?hlt.
Vorbereitung zum Entpacken von .../archives/ebusd_23.2_arm64.deb ...
Entpacken von ebusd (23.2) ...
libmosquitto1:arm64 (2.0.11-1.2+deb12u1) wird eingerichtet ...
ebusd (23.2) wird eingerichtet ...
Instructions:
1. Edit /etc/default/ebusd if necessary
   (especially if your device is not /dev/ttyUSB0)
2. Start the daemon with 'systemctl start ebusd'
3. Check the log file /var/log/ebusd.log
4. Make the daemon autostart with 'systemctl enable ebusd'
Trigger f?r libc-bin (2.36-9+rpt2+deb12u3) werden verarbeitet ...

Nun die nächste Herausforderung: Auf welchem "Port" steckt der Adapter?

root@raspberrypi:/home/ry# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 005: ID 0658:0200 Sigma Designs, Inc. Aeotec Z-Stick Gen5 (ZW090) - UZB
Bus 001 Device 008: ID 1241:1503 Belkin Keyboard
Bus 001 Device 006: ID 04d9:0499 Holtek Semiconductor, Inc. Optical Mouse
Bus 001 Device 004: ID 05e3:0606 Genesys Logic, Inc. USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
Bus 001 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@raspberrypi:/home/ry#

Bus 01 Device 007 ID 0403:6001 oder Bus 01 Device 003 ID0403:6001? Werde ich ausprobieren, wollte nur erst einmal eine Antwort schreiben.

tho-mas

Nachtrag II: Der Dämon scheint zu laufen. Mein Adapter blinkt an der KontrollLED, eigentlich sollten da jetzt irgendwie Daten reinkommen. Vor 2 Jahren gab es mal ein Kommando um sich den Eingang anzusehen (nicht in HEX, sondern Klartext), das finde ich jetzt nicht wieder.

Da jetzt aber die Ursprungsfrage geklärt ist werde ich mir die Anleitung auf https://adapter.ebusd.eu/v5 mal weiter ansehen.

passibe

Sorry, ja, apt-befehle müssen immer mit sudo ausgeführt werden, das hatte ich vergessen.

Wenn du sudo an einen Befehl voranstellst, dann wird auch nur dieser Befehl mit sudo ausgeführt, alles was hinter dem && kommt ist ein zweiter Befehl, dem du wieder sudo voranstellen musst.

Richtig wäre also sudo apt-get update && sudo apt-get upgrade
Hat ja dann aber geklappt, als du dich als "root" eingeloggt hast, da brauchst du dann ja kein sudo mehr.

Für die weiteren Sachen kann ich dir tatsächlich nicht mehr helfen, weil ich ebusd nicht benutze, aber das klappt bestimmt noch!