compile problem older version on Rapberry PI 4B

On various Hardware and OS systems: pi / windows / routers / nas, etc

Moderator: leecollings

Post Reply
heinohein
Posts: 5
Joined: Saturday 11 July 2020 15:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

compile problem older version on Rapberry PI 4B

Post by heinohein »

I am currently running on a Raspberyy Pi 3b. I made some minor modifications in the Domoticz sources and followed the instructions from Build Domoticz from source. This compiled version of Domoticz is working fine. Details:
Linux raspberrypi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux
About Domoticz Version: 4.10726 Build Hash: be79a17d8-modified Compile Date: 2019-05-10 11:37:55 dzVents Version: 2.4.19 Python Version: 3.5.3 (default, Jul 9 2020, 13:00:10) [GCC 6.3.0 20170516].

On my Raspberry PI 4B I first installed the latest version of Domoticz 2020.2. Domoticz was working. Then I followed the instructions from Build Domoticz from source. After that Domoticz 2020.2 was working. Then I changed the soure with my amendments and compiled Domoticz. Domoticz with my amendments was working, but not as I expected. Latest details:
RPI4: uname -a Linux RPI4 5.4.51-v7l+ #1333 SMP Mon Aug 10 16:51:40 BST 2020 armv7l GNU/Linux
Domoticz Version: 2020.2 (build 12395) Build Hash: c90b5a10f-modified Compile Date: 2020-09-26 21:17:54 dzVents Version: 3.0.14 Python Version: 3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0]

Therefore I wanted to compile the amended 4.10726 source version of the PI3 on the Raspbery PI 4. I tarred dev-domoticz, ftp the tar to the raspberry pi4 and untarred the source.
When I run cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt and then make the compilation dies:
In file included from /home/pi/dev-domoticz/main/../hardware/plugins/PluginMessages.h:3,
from /home/pi/dev-domoticz/main/EventSystem.cpp:43:
/home/pi/dev-domoticz/main/../hardware/plugins/DelayedLink.h:12:10: fatal error: Python.h: No such file or directory
#include <Python.h>

For full logging see attachement

I noticed that Python.h is present in dev-domoticz/hardware/plugins/Include

I noticed the following differences:
On the raspberry pi3:/usr/include $ ls python2.7 python3.5 python3.5m
On the Raspberry Pi4:/usr/include $ ls python3.7 python3.7m

Can anybody explain how to solve this compilation problem ?
Thanks in advance


make error rpi3 domoticz sources on rpi4.txt
User avatar
waaren
Posts: 6028
Joined: Tuesday 03 January 2017 14:18
Target OS: Linux
Domoticz version: Beta
Location: Netherlands
Contact:

Re: compile problem older version on Rapberry PI 4B

Post by waaren »

heinohein wrote: Thursday 08 October 2020 12:18 Can anybody explain how to solve this compilation problem ?
You don't have to copy sources from one system to another. Github is able to do the math for you.

Below works for me (as root but I don't know if that makes a difference)

Code: Select all

git clone https://github.com/domoticz/domoticz.git V.10726 
Spoiler: show

Code: Select all

Cloning into 'V.10726'...
remote: Enumerating objects: 209, done.
remote: Counting objects: 100% (209/209), done.
remote: Compressing objects: 100% (151/151), done.
remote: Total 76287 (delta 98), reused 123 (delta 50), pack-reused 76078
Receiving objects: 100% (76287/76287), 238.79 MiB | 4.35 MiB/s, done.
Resolving deltas: 100% (55418/55418), done.

Code: Select all

cd V.10726/
git checkout 7dd6c53b245e3ec5455aaaf5bce69707c3470a83

You can find the commits you are looking for here or here
Spoiler: show

Code: Select all

Checking out files: 100% (1855/1855), done.
Note: checking out '7dd6c53b245e3ec5455aaaf5bce69707c3470a83'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 7dd6c53b2 AppVeyor back to platform 141

Code: Select all

cd V.10726
cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt # Yes; twice don't know why  :D 
Spoiler: show

Code: Select all

-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Failed to get ProjectRevision from git
-- Read ProjectRevision from appversion.default
-- ###########################
-- Compiling Revision #9700
-- ###########################
-- Using builtin Mosquitto library
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found OpenSSL: /usr/lib/arm-linux-gnueabihf/libcrypto.a (found version "1.1.1d")
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.7.3", minimum required is "3.4")
-- Found PythonLibs: /usr/lib/arm-linux-gnueabihf/libpython3.7m.so (found suitable version "3.7.3", minimum required is "3.4")
-- Python3 includes found at: /usr/include/python3.7m
-- Looking for execinfo.h
-- Looking for execinfo.h - found
-- Looking for 3 include files sys/types.h, ..., linux/i2c.h
-- Looking for 3 include files sys/types.h, ..., linux/i2c.h - found
-- Building with I2C support
-- Looking for include files sys/types.h, linux/spi/spidev.h
-- Looking for include files sys/types.h, linux/spi/spidev.h - found
-- Building with SPI support
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Searching 16 bit integer - Using unsigned short
-- Check if the system is big endian - little endian
-- OPENSSL_LIBRARIES: /usr/lib/arm-linux-gnueabihf/libssl.a;/usr/lib/arm-linux-gnueabihf/libcrypto.a;-lpthread;dl
-- Linking against boost static libraries
-- Found Boost: /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake (found version "1.72.0") found components: thread system
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.11")
-- ZLIB libraries found at: /usr/lib/arm-linux-gnueabihf/libz.so
-- ZLIB includes found at: /usr/include
-- Found CURL: /usr/lib/arm-linux-gnueabihf/libcurl.so (found version "7.64.0")
-- Curl libraries found at: /usr/lib/arm-linux-gnueabihf/libcurl.so
-- Curl includes found at: /usr/include/arm-linux-gnueabihf
-- Found LIBUSB: /usr/lib/arm-linux-gnueabihf/libusb.so
-- LIBUSB found at: /usr/lib/arm-linux-gnueabihf/libusb.so
-- /usr/local/domotica/git/open-zwave-read-only/libopenzwave.a
-- /lib/arm-linux-gnueabihf/libudev.so
-- GPIO is available
-- Not found telldus-core (telldus-core.h), not adding tellstick support
/usr/bin/c++  ;;-std=c++11;-O3;-DNDEBUG;-I/usr/include/python3.7m;-I/usr/local/domotica/git/V.10726/main;-I/usr/local/domotica/git/V.10726/tinyxpath;-I/usr/include;-I/usr/local/include;-I/usr/include;-I/usr/local/domotica/git/V.10726/zip;-I/usr/include/arm-linux-gnueabihf;-I/usr/local/domotica/git/V.10726/hardware/openzwave;-DBUILTIN_MQTT;-DENABLE_PYTHON;-DHAVE_EXECINFO_H;-DHAVE_LINUX_I2C;-DHAVE_LINUX_SPI;-DWWW_ENABLE_SSL;-DWITH_LIBUSB;-DWITH_OPENZWAVE;-DWITH_GPIO -x c++-header -o /usr/local/domotica/git/V.10726/stdafx.h.gch/.c++ /usr/local/domotica/git/V.10726/main/stdafx.h
-- Using static libgcc/libstdc++
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/domotica/git/V.10726

:#cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt

-- ###########################
-- Compiling Revision #10726
-- ###########################
-- Using builtin Mosquitto library
-- Python3 includes found at: /usr/include/python3.7m
-- Building with I2C support
-- Building with SPI support
-- OPENSSL_LIBRARIES: /usr/lib/arm-linux-gnueabihf/libssl.a;/usr/lib/arm-linux-gnueabihf/libcrypto.a;-lpthread;dl
-- Linking against boost static libraries
-- ZLIB libraries found at: /usr/lib/arm-linux-gnueabihf/libz.so
-- ZLIB includes found at: /usr/include
-- Curl libraries found at: /usr/lib/arm-linux-gnueabihf/libcurl.so
-- Curl includes found at: /usr/include/arm-linux-gnueabihf
-- LIBUSB found at: /usr/lib/arm-linux-gnueabihf/libusb.so
-- /usr/local/domotica/git/open-zwave-read-only/libopenzwave.a
-- /lib/arm-linux-gnueabihf/libudev.so
-- GPIO is available
-- Not found telldus-core (telldus-core.h), not adding tellstick support
/usr/bin/c++  ;;-std=c++11;-O3;-DNDEBUG;-I/usr/include/python3.7m;-I/usr/local/domotica/git/V.10726/main;-I/usr/local/domotica/git/V.10726/tinyxpath;-I/usr/include;-I/usr/local/include;-I/usr/include;-I/usr/local/domotica/git/V.10726/zip;-I/usr/include/arm-linux-gnueabihf;-I/usr/local/domotica/git/V.10726/hardware/openzwave;-DBUILTIN_MQTT;-DENABLE_PYTHON;-DHAVE_EXECINFO_H;-DHAVE_LINUX_I2C;-DHAVE_LINUX_SPI;-DWWW_ENABLE_SSL;-DWITH_LIBUSB;-DWITH_OPENZWAVE;-DWITH_GPIO -x c++-header -o /usr/local/domotica/git/V.10726/stdafx.h.gch/.c++ /usr/local/domotica/git/V.10726/main/stdafx.h
-- Using static libgcc/libstdc++
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/domotica/git/V.10726

Code: Select all

make -j2
Spoiler: show

Code: Select all

Scanning dependencies of target minizip
Scanning dependencies of target lua
[  1%] Building C object zip/CMakeFiles/minizip.dir/unzip.c.o
[  2%] Building C object lua/src/CMakeFiles/lua.dir/lauxlib.c.o
[  2%] Building C ....
[ 99%] Building CXX object CMakeFiles/domoticz.dir/tinyxpath/xpath_stack.cpp.o
[ 99%] Building CXX object CMakeFiles/domoticz.dir/tinyxpath/xpath_static.cpp.o
[100%] Building CXX object CMakeFiles/domoticz.dir/tinyxpath/xpath_syntax.cpp.o
If you already have OpenZwave 1.6 on your system, the link process will fail because for this version it needs OpenZwave V1.4
To get this:

Code: Select all

mv open-zwave-read-only open-zwave-read-only_1.6 # Don't want to overwrite the current one  
git clone -b 1.4 https://github.com/OpenZWave/open-zwave.git  open-zwave-read-only
cd open-zwave-read-only
Because of a bug in the source code you need to apply below patch to open-zwave-read-only/cpp/src/command_classes/DoorLockLogging.cpp
(I could only do this manually.
git apply failed on me so I removed the lines from the cpp where in the patch was a - in column 1 and added the lines with a + in column 1)

Code: Select all

diff --git a/cpp/src/command_classes/DoorLockLogging.cpp b/cpp/src/command_classes/DoorLockLogging.cpp
index c235a849..be0ea5ac 100644
--- a/cpp/src/command_classes/DoorLockLogging.cpp
+++ b/cpp/src/command_classes/DoorLockLogging.cpp
@@ -304,16 +304,15 @@ bool DoorLockLogging::HandleMsg
 			}
 			uint8 userid = (_data[10]);
 			uint8 usercodelength = (_data[11]);
-			char usercode[254];
-			snprintf(usercode, sizeof(usercode), "UserCode:");
+			char usercode[254] = { 0 };
 			if (usercodelength > 0)
-				for (int i = 0; i < usercodelength; i++ )
+				for (int i = 0, j = 0; i < usercodelength && j < (int)sizeof(usercode); i++ )
 				{
-					snprintf(usercode, sizeof(usercode), "%s %d", usercode, (int)_data[12+i]);
+					j += snprintf(usercode + j, sizeof(usercode) - j, " %d", (int)_data[12+i]);
 				}
 
 			if (valid) {
-				snprintf(msg, sizeof(msg), "%02d/%02d/%02d %02d:%02d:%02d \tMessage: %s \tUserID: %d \t%s", (int)day, (int)month, (int)year, (int)hour, (int)minute, (int)second, c_DoorLockEventType[EventType], (int)userid, usercode);
+				snprintf(msg, sizeof(msg), "%02d/%02d/%02d %02d:%02d:%02d \tMessage: %s \tUserID: %d \tUserCode:%s", (int)day, (int)month, (int)year, (int)hour, (int)minute, (int)second, c_DoorLockEventType[EventType], (int)userid, usercode);
 			} else
 				snprintf(msg, sizeof(msg), "Invalid Record");
 			value->OnValueRefreshed(msg);

Code: Select all

cd open-zwave-read-only
make -j2 

cd ../V.10726
make
[  1%] Built target minizip
[ 12%] Built target lua
[ 19%] Built target mqtt
[ 20%] Built target sqlite
-- Found Git: /usr/bin/git (found version "2.20.1")
[ 20%] Built target revisiontag
[ 20%] Built target domoticz_gch
[ 20%] Linking CXX executable domoticz
[100%] Built target domoticz

./domoticz
Spoiler: show
2020-10-08 14:35:52.595 Status: Domoticz V4.10726 (c)2012-2019 GizMoCuz
2020-10-08 14:35:52.595 Status: Build Hash: 7dd6c53b2, Date: 2019-05-10 13:02:55
2020-10-08 14:35:52.595 Status: Startup Path: /usr/local/domotica/git/V.10726/
Have Fun ! :D
Debian buster, bullseye on RPI-4, Intel NUC.
dz Beta, Z-Wave, RFLink, RFXtrx433e, P1, Youless, Hue, Yeelight, Xiaomi, MQTT
==>> dzVents wiki
heinohein
Posts: 5
Joined: Saturday 11 July 2020 15:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: compile problem older version on Rapberry PI 4B

Post by heinohein »

@waaren. Thank you for this tested solution. Although I have no doubts I will implement it tonight and report back if the problem is solved
heinohein
Posts: 5
Joined: Saturday 11 July 2020 15:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: compile problem older version on Rapberry PI 4B

Post by heinohein »

@waaren. Sorry, After following your scripts, when starting the newly compiled Domoticz the execution stops immedately.

I executed git and cmake 2x
During the comiplation I have excluded the update of DoorLockLogging.cpp, I could not find it, it is not present probebly because I have no zwave devices.
I noticed during the compilation serveral messages, I assumed they are warnings, is that correct or must I repair these ?
The linking ended without any comments.
After the starting and stopping/dying of Domoticz I noticed a domoticz_crash.log which I copied hereafter. I see a suggestion of "Backtrace stopped: previous frame identical to this frame (corrupt stack?)". I have no idea if this is the reasons domoticz stopped.

Do you have any suggestion what I can do more?

Git:

Code: Select all

 
 pi@RPI4:~ $ git clone https://github.com/domoticz/domoticz.git dev-domoticz
Cloning into 'dev-domoticz'...
remote: Enumerating objects: 253, done.
remote: Counting objects: 100% (253/253), done.
remote: Compressing objects: 100% (191/191), done.
remote: Total 76331 (delta 102), reused 138 (delta 54), pack-reused 76078
Receiving objects: 100% (76331/76331), 239.34 MiB | 3.39 MiB/s, done.
Resolving deltas: 100% (55422/55422), done.
pi@RPI4:~ $ cd dev-domoticz
pi@RPI4:~/dev-domoticz $ git checkout 7dd6c53b245e3ec5455aaaf5bce69707c3470a83
Checking out files: 100% (1855/1855), done.
Note: checking out '7dd6c53b245e3ec5455aaaf5bce69707c3470a83'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 7dd6c53b2 AppVeyor back to platform 141
pi@RPI4:~/dev-domoticz $ git -help
unknown option: -help
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]
 
Cmake 2x:

Code: Select all

pi@RPI4:~/dev-domoticz $ cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc - works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ - works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Failed to get ProjectRevision from git
-- Read ProjectRevision from appversion.default
-- ###########################
-- Compiling Revision #9700
-- ###########################
-- Using builtin Mosquitto library
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found OpenSSL: /usr/lib/arm-linux-gnueabihf/libcrypto.a (found version "1.1.1d")
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.7.3", minimum required is "3.4")
-- Found PythonLibs: /usr/lib/arm-linux-gnueabihf/libpython3.7m.so (found suitable version "3.7.3", minimum required is "3.4")
-- Python3 includes found at: /usr/include/python3.7m
-- Looking for execinfo.h
-- Looking for execinfo.h - found
-- Looking for 3 include files sys/types.h, ..., linux/i2c.h
-- Looking for 3 include files sys/types.h, ..., linux/i2c.h - found
-- Building with I2C support
-- Looking for include files sys/types.h, linux/spi/spidev.h
-- Looking for include files sys/types.h, linux/spi/spidev.h - found
-- Building with SPI support
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Searching 16 bit integer - Using unsigned short
-- Check if the system is big endian - little endian
-- OPENSSL_LIBRARIES: /usr/lib/arm-linux-gnueabihf/libssl.a;/usr/lib/arm-linux-gnueabihf/libcrypto.a;-lpthread;dl
-- Linking against boost static libraries
-- Found Boost: /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake (found version "1.72.0") found components: thread system
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.11")
-- ZLIB libraries found at: /usr/lib/arm-linux-gnueabihf/libz.so
-- ZLIB includes found at: /usr/include
-- Found CURL: /usr/lib/arm-linux-gnueabihf/libcurl.so (found version "7.64.0")
-- Curl libraries found at: /usr/lib/arm-linux-gnueabihf/libcurl.so
-- Curl includes found at: /usr/include/arm-linux-gnueabihf
-- Found LIBUSB: /usr/lib/arm-linux-gnueabihf/libusb.so
-- LIBUSB found at: /usr/lib/arm-linux-gnueabihf/libusb.so
-- ==== OpenZWave not found, support disabled!
-- GPIO is available
-- Not found telldus-core (telldus-core.h), not adding tellstick support
/usr/bin/c++  ;;-std=c++11;-O3;-DNDEBUG;-I/usr/include/python3.7m;-I/home/pi/dev-domoticz/main;-I/home/pi/dev-domoticz/tinyxpath;-I/usr/include;-I/usr/local/include;-I/usr/include;-I/home/pi/dev-domoticz/zip;-I/usr/include/arm-linux-gnueabihf;-DBUILTIN_MQTT;-DENABLE_PYTHON;-DHAVE_EXECINFO_H;-DHAVE_LINUX_I2C;-DHAVE_LINUX_SPI;-DWWW_ENABLE_SSL;-DWITH_LIBUSB;-DWITH_GPIO -x c++-header -o /home/pi/dev-domoticz/stdafx.h.gch/.c++ /home/pi/dev-domoticz/main/stdafx.h
-- Using static libgcc/libstdc++
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/dev-domoticz


pi@RPI4:~/dev-domoticz $ cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
-- ###########################
-- Compiling Revision #10726
-- ###########################
-- Using builtin Mosquitto library
-- Python3 includes found at: /usr/include/python3.7m
-- Building with I2C support
-- Building with SPI support
-- OPENSSL_LIBRARIES: /usr/lib/arm-linux-gnueabihf/libssl.a;/usr/lib/arm-linux-gnueabihf/libcrypto.a;-lpthread;dl
-- Linking against boost static libraries
-- ZLIB libraries found at: /usr/lib/arm-linux-gnueabihf/libz.so
-- ZLIB includes found at: /usr/include
-- Curl libraries found at: /usr/lib/arm-linux-gnueabihf/libcurl.so
-- Curl includes found at: /usr/include/arm-linux-gnueabihf
-- LIBUSB found at: /usr/lib/arm-linux-gnueabihf/libusb.so
-- ==== OpenZWave not found, support disabled!
-- GPIO is available
-- Not found telldus-core (telldus-core.h), not adding tellstick support
/usr/bin/c++  ;;-std=c++11;-O3;-DNDEBUG;-I/usr/include/python3.7m;-I/home/pi/dev-domoticz/main;-I/home/pi/dev-domoticz/tinyxpath;-I/usr/include;-I/usr/local/include;-I/usr/include;-I/home/pi/dev-domoticz/zip;-I/usr/include/arm-linux-gnueabihf;-DBUILTIN_MQTT;-DENABLE_PYTHON;-DHAVE_EXECINFO_H;-DHAVE_LINUX_I2C;-DHAVE_LINUX_SPI;-DWWW_ENABLE_SSL;-DWITH_LIBUSB;-DWITH_GPIO -x c++-header -o /home/pi/dev-domoticz/stdafx.h.gch/.c++ /home/pi/dev-domoticz/main/stdafx.h
-- Using static libgcc/libstdc++
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/dev-domoticz

Compile (partly with some messages) and link :

Code: Select all

pi@RPI4:~/dev-domoticz $ make -j2
Scanning dependencies of target domoticz_gch
Scanning dependencies of target lua
[  0%] Generating stdafx.h.gch/.c++
[  1%] Building C object lua/src/CMakeFiles/lua.dir/lauxlib.c.o
[  1%] Building C object lua/src/CMakeFiles/lua.dir/lbaselib.c.o
[  1%] Building C object lua/src/CMakeFiles/lua.dir/lbitlib.c.o
[  2%] Building C object lua/src/CMakeFiles/lua.dir/lcorolib.c.o
[  2%] Building C object lua/src/CMakeFiles/lua.dir/ldblib.c.o
[  2%] Building C object lua/src/CMakeFiles/lua.dir/liolib.c.o
[  3%] Building C object lua/src/CMakeFiles/lua.dir/lmathlib.c.o
[  3%] Built target domoticz_gch
Scanning dependencies of target mqtt
[  4%] Building CXX object MQTT/CMakeFiles/mqtt.dir/mosquittopp.cpp.o
[  4%] Building C object lua/src/CMakeFiles/lua.dir/loslib.c.o
[  4%] Building C object MQTT/CMakeFiles/mqtt.dir/mosquitto.c.o
[  4%] Building C object lua/src/CMakeFiles/lua.dir/lstrlib.c.o
[  4%] Building C object MQTT/CMakeFiles/mqtt.dir/logging_mosq.c.o
[  5%] Building C object lua/src/CMakeFiles/lua.dir/ltablib.c.o
[  5%] Building C object lua/src/CMakeFiles/lua.dir/loadlib.c.o
[  6%] Building C object MQTT/CMakeFiles/mqtt.dir/memory_mosq.c.o
[  6%] Building C object MQTT/CMakeFiles/mqtt.dir/messages_mosq.c.o
[  6%] Building C object lua/src/CMakeFiles/lua.dir/linit.c.o
[  7%] Building C object lua/src/CMakeFiles/lua.dir/lapi.c.o
[  7%] Building C object MQTT/CMakeFiles/mqtt.dir/net_mosq.c.o
/home/pi/dev-domoticz/MQTT/net_mosq.c: In function '_mosquitto_net_cleanup':
/home/pi/dev-domoticz/MQTT/net_mosq.c:114:2: warning: 'ERR_remove_state' is deprecated [-Wdeprecated-declarations]
  ERR_remove_state(0);
  ^~~~~~~~~~~~~~~~
In file included from /usr/include/openssl/e_os2.h:13,
                 from /usr/include/openssl/bio.h:13,
                 from /usr/include/openssl/conf.h:13,
                 from /home/pi/dev-domoticz/MQTT/net_mosq.c:54:
/usr/include/openssl/err.h:261:1: note: declared here
 DEPRECATEDIN_1_0_0(void ERR_remove_state(unsigned long pid))
 ^~~~~~~~~~~~~~~~~~
/home/pi/dev-domoticz/MQTT/net_mosq.c: In function '_mosquitto_socket_connect':
/home/pi/dev-domoticz/MQTT/net_mosq.c:428:4: warning: 'TLSv1_2_client_method' is deprecated [-Wdeprecated-declarations]
    mosq->ssl_ctx = SSL_CTX_new(TLSv1_2_client_method());
    ^~~~
In file included from /usr/include/openssl/e_os2.h:13,
                 from /usr/include/openssl/bio.h:13,
                 from /usr/include/openssl/conf.h:13,
                 from /home/pi/dev-domoticz/MQTT/net_mosq.c:54:
/usr/include/openssl/ssl.h:1891:1: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void))
 ^~~~~~~~~~~~~~~~~~
/home/pi/dev-domoticz/MQTT/net_mosq.c:430:4: warning: 'TLSv1_1_client_method' is deprecated [-Wdeprecated-declarations]
    mosq->ssl_ctx = SSL_CTX_new(TLSv1_1_client_method());
    ^~~~
In file included from /usr/include/openssl/e_os2.h:13,
                 from /usr/include/openssl/bio.h:13,
                 from /usr/include/openssl/conf.h:13,
                 from /home/pi/dev-domoticz/MQTT/net_mosq.c:54:
/usr/include/openssl/ssl.h:1885:1: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void))
 ^~~~~~~~~~~~~~~~~~
 
 [ 98%] Building CXX object CMakeFiles/domoticz.dir/tinyxpath/xpath_processor.cpp.o
[ 98%] Building CXX object CMakeFiles/domoticz.dir/tinyxpath/xpath_stream.cpp.o
[ 99%] Building CXX object CMakeFiles/domoticz.dir/tinyxpath/xpath_stack.cpp.o
[ 99%] Building CXX object CMakeFiles/domoticz.dir/tinyxpath/xpath_static.cpp.o
[100%] Building CXX object CMakeFiles/domoticz.dir/tinyxpath/xpath_syntax.cpp.o
[100%] Linking CXX executable domoticz
[100%] Built target domoticz
 
Start Domoticz:

Code: Select all

pi@RPI4:~/dev-domoticz $ ls -lb domoticz
-rwxr-xr-x 1 pi pi 12275476 Oct  9 09:21 domoticz
pi@RPI4:~/dev-domoticz $ cd ..
pi@RPI4:~ $  cd domoticz
pi@RPI4:~/domoticz $ cp ../dev-domoticz/domoticz domoticz
pi@RPI4:~/domoticz $ ls -lb domoticz
-rwxr-xr-x 1 pi pi 12275476 Oct  9 09:27 domoticz
pi@RPI4:~/domoticz $ cd ..
pi@RPI4:~ $ ./domoticzstart
[ ok ] Starting domoticz.sh (via systemctl): domoticz.service.
pi@RPI4:~ $ ./domoticzstatus
● domoticz.service - LSB: Home Automation System
   Loaded: loaded (/etc/init.d/domoticz.sh; generated)
   Active: active (exited) since Fri 2020-10-09 09:28:25 CEST; 53s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 17406 ExecStart=/etc/init.d/domoticz.sh start (code=exited, status=0/SUCCESS)

Oct 09 09:28:25 RPI4 systemd[1]: Starting LSB: Home Automation System...
Oct 09 09:28:25 RPI4 domoticz.sh[17406]: 2020-10-09 09:28:25.612  Status: Domoticz V4.10726 (c)2012-2019 GizMoCuz
Oct 09 09:28:25 RPI4 domoticz.sh[17406]: 2020-10-09 09:28:25.615  Status: Build Hash: 7dd6c53b2, Date: 2019-05-10 13:02:55
Oct 09 09:28:25 RPI4 domoticz.sh[17406]: 2020-10-09 09:28:25.616  Status: Startup Path: /home/pi/domoticz/
Oct 09 09:28:25 RPI4 domoticz.sh[17406]: domoticz: Domoticz is starting up....
Oct 09 09:28:25 RPI4 domoticz[17411]: Domoticz is starting up....
Oct 09 09:28:25 RPI4 domoticz[17412]: Domoticz running...
Oct 09 09:28:25 RPI4 systemd[1]: Started LSB: Home Automation System.

crash log:

Code: Select all

[New LWP 17413]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__waitpid (options=0, stat_loc=0xbeedd010, pid=17415) at ../sysdeps/unix/sysv/linux/waitpid.c:30
30	../sysdeps/unix/sysv/linux/waitpid.c: No such file or directory.
  Id   Target Id                                Frame 
* 1    Thread 0xb6318850 (LWP 17412) "domoticz" __waitpid (options=0, stat_loc=0xbeedd010, pid=17415) at ../sysdeps/unix/sysv/linux/waitpid.c:30
  2    Thread 0xb5e3f220 (LWP 17413) "Watchdog" __GI___nanosleep (remaining=0xb5e3ebd0, requested_time=0xb5e3ebd0) at ../sysdeps/unix/sysv/linux/nanosleep.c:28

Thread 2 (Thread 0xb5e3f220 (LWP 17413)):
#0  __GI___nanosleep (remaining=0xb5e3ebd0, requested_time=0xb5e3ebd0) at ../sysdeps/unix/sysv/linux/nanosleep.c:28
#1  __GI___nanosleep (requested_time=0xb5e3ebd0, remaining=0xb5e3ebd0) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x00093114 in sleep_milliseconds(long) ()
#3  0x000f5ff4 in Do_Watchdog_Work() ()
#4  0x00794374 in execute_native_thread_routine ()
#5  0xb6f88494 in start_thread (arg=0xb5e3f220) at pthread_create.c:486
#6  0xb6d98578 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0xb6318850 (LWP 17412)):
#0  __waitpid (options=0, stat_loc=0xbeedd010, pid=17415) at ../sysdeps/unix/sysv/linux/waitpid.c:30
#1  __waitpid (pid=17415, stat_loc=0xbeedd010, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:25
#2  0x000f58c8 in dumpstack_gdb(bool) ()
#3  0x000f5e8c in signal_handler(int, siginfo_t*, void*) ()
#4  <signal handler called>
#5  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#6  0xb6cd8230 in __GI_abort () at abort.c:79
#7  0x007bcbb4 in __gnu_cxx::__verbose_terminate_handler() ()
#8  0x00720040 in __cxxabiv1::__terminate(void (*)()) ()
#9  0x007200b4 in std::terminate() ()
#10 0x0001b634 in main ()

Main thread:
#0  __waitpid (options=0, stat_loc=0xbeedd010, pid=17415) at ../sysdeps/unix/sysv/linux/waitpid.c:30
#1  __waitpid (pid=17415, stat_loc=0xbeedd010, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:25
#2  0x000f58c8 in dumpstack_gdb(bool) ()
#3  0x000f5e8c in signal_handler(int, siginfo_t*, void*) ()
#4  <signal handler called>
#5  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#6  0xb6cd8230 in __GI_abort () at abort.c:79
#7  0x007bcbb4 in __gnu_cxx::__verbose_terminate_handler() ()
#8  0x00720040 in __cxxabiv1::__terminate(void (*)()) ()
#9  0x007200b4 in std::terminate() ()
#10 0x0001b634 in main ()
[Inferior 1 (process 17412) detached]

User avatar
waaren
Posts: 6028
Joined: Tuesday 03 January 2017 14:18
Target OS: Linux
Domoticz version: Beta
Location: Netherlands
Contact:

Re: compile problem older version on Rapberry PI 4B

Post by waaren »

heinohein wrote: Friday 09 October 2020 12:15 @waaren. Sorry, After following your scripts, when starting the newly compiled Domoticz the execution stops immedately.
I don't know what domoticzstart does. As far as I know it is not part of the standard installation?

You could try to start this local compiled domoticz manually by entering sudo ./domoticz
If that still fails try without a database by renaming your domoticz.db an removing *-shm and *-wal

Last thing to try is to follow the steps in the install wiki and add the open-zwave part like I described in my previous post. I don't expect that to be the problem but you never know.
Debian buster, bullseye on RPI-4, Intel NUC.
dz Beta, Z-Wave, RFLink, RFXtrx433e, P1, Youless, Hue, Yeelight, Xiaomi, MQTT
==>> dzVents wiki
heinohein
Posts: 5
Joined: Saturday 11 July 2020 15:43
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: compile problem older version on Rapberry PI 4B

Post by heinohein »

@waaren. Thank you for your support. Sorry for creating confusion with domoticzstart.

Due to my lack of experiance with linux I am reguraly confused with the format of commands. Sometimes I have to use init.d, sometimes systemctl, sometimes keyword, sometimes -keyword, sometimes --keyword etc. So I created multiple bash startup files, with uniform naming but internally the proper formated command. Eg domoticzstart is:

Code: Select all

sudo /etc/init.d/domoticz.sh start
I plan to start completely from scratch with clean installing the RPI4, but before I do that, is it possible that the problem is created
- by the installing the 1.72.0 boost libraries in combination with the old domoticz sources (on RPI3 1.71.0)?
- by different version of Python, on RPI4 3.7.3 but on RPI3 3.5.3?
Thanks again
User avatar
waaren
Posts: 6028
Joined: Tuesday 03 January 2017 14:18
Target OS: Linux
Domoticz version: Beta
Location: Netherlands
Contact:

Re: compile problem older version on Rapberry PI 4B

Post by waaren »

heinohein wrote: Sunday 11 October 2020 14:57 I plan to start completely from scratch with clean installing the RPI4, but before I do that, is it possible that the problem is created
- by the installing the 1.72.0 boost libraries in combination with the old domoticz sources (on RPI3 1.71.0)?
- by different version of Python, on RPI4 3.7.3 but on RPI3 3.5.3?
I doubt that because I did the same thing on my system with these and also with newer versions. If you follow the steps in the domoticz wiki to the letter and after that completed successfully do the git checkout that I described in my previous post it should just work fine after you redo the cmake en make steps.
Debian buster, bullseye on RPI-4, Intel NUC.
dz Beta, Z-Wave, RFLink, RFXtrx433e, P1, Youless, Hue, Yeelight, Xiaomi, MQTT
==>> dzVents wiki
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest