unable to build voxl-tflite-server in voxl-cross
-
Hello,
I'm trying to build voxl-tflite-server in voxl cross. Below is my setup:-
voxl-cross:V4.0
-
voxl-tflite-server
Host system:
- OS: Red Hat Enterprise Linux 9.6 (Plow)
- Docker:
docker version
Client: Docker Engine - Community
Version: 28.3.1
API version: 1.51
Go version: go1.24.4
Git commit: 38b7060
Built: Wed Jul 2 20:58:10 2025
OS/Arch: linux/amd64
Context: defaultServer: Docker Engine - Community
Engine:
Version: 28.3.1
API version: 1.51 (minimum version 1.24)
Go version: go1.24.4
Git commit: 5beb93d
Built: Wed Jul 2 20:56:24 2025
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.7.27
GitCommit: 05044ec0a9a75232cad458027ca83437aae3f4da
runc:
Version: 1.2.5
GitCommit: v1.2.5-0-g59923ef
docker-init:
Version: 0.19.0
GitCommit: de40ad0I followed the instructions in voxl-tflite-server/README.md. I'm able to launch voxl-cross with the voxl-tflite-server repo directory mounted in the container. I ran the following command and got the following results.
/home/root# ./install_build_deps.sh qrb5165 dev using qrb5165 dev debian repo Ign:1 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ InRelease Ign:2 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ Release Get:3 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ Packages [25.4 kB] Fetched 25.4 kB in 1s (46.8 kB/s) Reading package lists... Done installing: libmodal-pipe libmodal-json voxl-opencv qrb5165-tflite Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: libmodal-json:arm64 libmodal-pipe:arm64 qrb5165-tflite:arm64 voxl-opencv:arm64 0 upgraded, 4 newly installed, 0 to remove and 2 not upgraded. Need to get 24.8 MB of archives. After this operation, 0 B of additional disk space will be used. Get:1 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ libmodal-json 0.4.7-202505011742 [46.9 kB] Get:2 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ libmodal-pipe 2.13.4-202507031002 [118 kB] Get:3 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ qrb5165-tflite 2.8.0-2-202210071637 [11.0 MB] Get:4 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ voxl-opencv 4.5.5-3-202504301748 [13.6 MB] Fetched 24.8 MB in 4s (6792 kB/s) debconf: unable to initialize frontend: Dialog debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 4.) debconf: falling back to frontend: Readline Selecting previously unselected package libmodal-json:arm64. (Reading database ... 31293 files and directories currently installed.) Preparing to unpack .../libmodal-json_0.4.7-202505011742_arm64.deb ... Unpacking libmodal-json:arm64 (0.4.7-202505011742) ... Selecting previously unselected package libmodal-pipe:arm64. Preparing to unpack .../libmodal-pipe_2.13.4-202507031002_arm64.deb ... Unpacking libmodal-pipe:arm64 (2.13.4-202507031002) ... Selecting previously unselected package qrb5165-tflite:arm64. Preparing to unpack .../qrb5165-tflite_2.8.0-2-202210071637_arm64.deb ... Unpacking qrb5165-tflite:arm64 (2.8.0-2-202210071637) ... Selecting previously unselected package voxl-opencv:arm64. Preparing to unpack .../voxl-opencv_4.5.5-3-202504301748_arm64.deb ... Unpacking voxl-opencv:arm64 (4.5.5-3-202504301748) ... Setting up libmodal-json:arm64 (0.4.7-202505011742) ... Setting up qrb5165-tflite:arm64 (2.8.0-2-202210071637) ... Setting up voxl-opencv:arm64 (4.5.5-3-202504301748) ... Setting up libmodal-pipe:arm64 (2.13.4-202507031002) ... Processing triggers for libc-bin (2.31-0ubuntu9.17) ... Done installing dependencies
Installing dependencies seems to complete successfully. Trying to build results in the following.
/home/root# ./build.sh qrb5165 CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. WARN you're using a deprecated toolchain, please use the new toolchains: WARN qrb5165_ubun1_18.04_aarch64.toolchain.cmake WARN qrb5165_ubun2_20.04_aarch64.toolchain.cmake -- --------------------------------------------------------- -- Using voxl-cross 64-bit toolchain for QRB5165 ubun1 18.04 -- C Compiler : /usr/bin/aarch64-linux-gnu-gcc-10 -- C++ Compiler : /usr/bin/aarch64-linux-gnu-g++-10 -- Sysroot : /opt/sysroots/qrb5165_1 -- C flags : -idirafter /usr/include -march=armv8.2-a -- CXX flags : -idirafter /usr/include -march=armv8.2-a -- EXE Link Flags : -L/opt/sysroots/qrb5165_1/usr/lib/aarch64-linux-gnu -L/opt/sysroots/qrb5165_1/lib -L/opt/sysroots/qrb5165_1/usr/lib -L/usr/lib64 -L/usr/lib -- SO Link Flags : -L/opt/sysroots/qrb5165_1/usr/lib/aarch64-linux-gnu -L/opt/sysroots/qrb5165_1/lib -L/opt/sysroots/qrb5165_1/usr/lib -L/usr/lib64 -L/usr/lib WARN you're using a deprecated toolchain, please use the new toolchains: WARN qrb5165_ubun1_18.04_aarch64.toolchain.cmake WARN qrb5165_ubun2_20.04_aarch64.toolchain.cmake -- The C compiler identification is GNU 10.5.0 -- The CXX compiler identification is GNU 10.5.0 -- Detecting C compiler ABI info WARN you're using a deprecated toolchain, please use the new toolchains: WARN qrb5165_ubun1_18.04_aarch64.toolchain.cmake WARN qrb5165_ubun2_20.04_aarch64.toolchain.cmake -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc-10 - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info WARN you're using a deprecated toolchain, please use the new toolchains: WARN qrb5165_ubun1_18.04_aarch64.toolchain.cmake WARN qrb5165_ubun2_20.04_aarch64.toolchain.cmake -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++-10 - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Deprecation Warning at src/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. -- Configuring done (1.2s) -- Generating done (0.1s) -- Build files have been written to: /home/root/build [ 6%] Building CXX object src/CMakeFiles/voxl-tflite-server.dir/config_file.cpp.o In file included from /home/root/src/config_file.cpp:1: /home/root/src/../include/config_file.h:37:10: fatal error: modal_json.h: No such file or directory 37 | #include <modal_json.h> | ^~~~~~~~~~~~~~ compilation terminated. make[2]: *** [src/CMakeFiles/voxl-tflite-server.dir/build.make:79: src/CMakeFiles/voxl-tflite-server.dir/config_file.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:106: src/CMakeFiles/voxl-tflite-server.dir/all] Error 2 make: *** [Makefile:136: all] Error 2
Based on the warning about the deprecated toolchain, I updated TOOLCHAIN_QRB5165 in build.sh
TOOLCHAIN_QRB5165="/opt/cross_toolchain/qrb5165_ubun1_18.04_aarch64.toolchain.cmake"
I also tried
TOOLCHAIN_QRB5165="/opt/cross_toolchain/qrb5165_ubun2_20.04_aarch64.toolchain.cmake"
That got rid of the warnings but I still got the error about
/home/root/src/../include/config_file.h:37:10: fatal error: modal_json.h: No such file or directory 37 | #include <modal_json.h> | ^~~~~~~~~~~~~~
I verified that modal_json.h is in /usr/include
/home/root# ls -l /usr/include/modal_json.h -rw-r--r--. 1 root root 15619 May 2 00:42 /usr/include/modal_json.h
I modified voxl-tflite-server/src/CMakeLists.txt to explicitly include /usr/include but that didn't help.
include_directories( /usr/include/ ../include/ ..include/model_helper/
I then created /tmp/include as a softlink to /usr/include
root@artb-vm9-dev11:/tmp# ls -l total 0 drwxr-xr-x. 2 root root 6 Jul 8 20:16 bionic-pkgs lrwxrwxrwx. 1 root root 13 Jul 9 00:17 include -> /usr/include/
I modified voxl-tflite-server/src/CMakeLists.txt to explicitly include /tmp/include and that fixed the compilation error and everything compiled. .
include_directories( /tmp/include/ ../include/ ..include/model_helper/
However, then it failed when linking.
[ 73%] Building CXX object src/CMakeFiles/voxl-tflite-server.dir/model_helper/yolov5_model_helper.cpp.o [ 80%] Building CXX object src/CMakeFiles/voxl-tflite-server.dir/model_helper/yolov8_model_helper.cpp.o [ 86%] Building C object src/CMakeFiles/voxl-tflite-server.dir/resize.c.o [ 93%] Building CXX object src/CMakeFiles/voxl-tflite-server.dir/utils.cpp.o [100%] Linking CXX executable voxl-tflite-server /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: cannot find -lsync /usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: cannot find -lsync collect2: error: ld returned 1 exit status make[2]: *** [src/CMakeFiles/voxl-tflite-server.dir/build.make:308: src/voxl-tflite-server] Error 1 make[1]: *** [CMakeFiles/Makefile2:106: src/CMakeFiles/voxl-tflite-server.dir/all] Error 2 make: *** [Makefile:136: all] Error 2
I could try installing the missing sync library but based on the prior issues I encountered it seems like maybe I need to use different versions of voxl-cross and voxl-tflite-server. Ultimately I'm targeting a Starling 2 Max. Here is the configuration for that:
voxl2:/$ voxl-version -------------------------------------------------------------------------------- system-image: 1.8.02-M0054-14.1a-perf kernel: #1 SMP PREEMPT Mon Nov 11 22:59:41 UTC 2024 4.19.125 -------------------------------------------------------------------------------- hw platform: M0054 mach.var: 1.2.1 -------------------------------------------------------------------------------- voxl-suite: 1.4.1 -------------------------------------------------------------------------------- Packages: Repo: http://voxl-packages.modalai.com/ ./dists/qrb5165/sdk-1.4/binary-arm64/ Last Updated: 2023-03-02 12:58:40 WARNING: repo file has changed since last update, packages may have originated from a different repo List: kernel-module-voxl-fsync-mod-4.19.125 1.0-r0 kernel-module-voxl-gpio-mod-4.19.125 1.0-r0 kernel-module-voxl-platform-mod-4.19.125 1.0-r0 libfc-sensor 1.0.7 libmodal-cv 0.5.16 libmodal-exposure 0.1.3 libmodal-journal 0.2.2 libmodal-json 0.4.3 libmodal-pipe 2.10.6 libqrb5165-io 0.4.9 libvoxl-cci-direct 0.2.5 libvoxl-cutils 0.1.1 modalai-slpi 1.1.19 mv-voxl 0.1-r0 qrb5165-bind 0.1-r0 qrb5165-dfs-server 0.2.0 qrb5165-imu-server 1.1.2 qrb5165-rangefinder-server 0.1.4 qrb5165-slpi-test-sig 01-r0 qrb5165-system-tweaks 0.3.4 qrb5165-tflite 2.8.0-2 voxl-bind-spektrum 0.1.1 voxl-camera-calibration 0.5.9 voxl-camera-server 2.1.1 voxl-ceres-solver 2:1.14.0-10 voxl-configurator 0.9.7 voxl-cpu-monitor 0.5.3 voxl-docker-support 1.3.1 voxl-elrs 0.4.1 voxl-esc 1.5.1 voxl-feature-tracker 0.5.2 voxl-flow-server 0.3.6 voxl-fsync-mod 1.0-r0 voxl-gphoto2-server 0.0.10 voxl-gpio-mod 1.0-r0 voxl-io-server 0.0.4 voxl-jpeg-turbo 2.1.3-5 voxl-lepton-server 1.3.3 voxl-lepton-tracker 0.0.4 voxl-libgphoto2 0.0.4 voxl-libuvc 1.0.7 voxl-logger 0.4.9 voxl-mavcam-manager 0.5.7 voxl-mavlink 0.1.1 voxl-mavlink-server 1.4.4 voxl-modem 1.1.5 voxl-mongoose 7.7.0-1 voxl-mpa-to-ros 0.3.9 voxl-mpa-tools 1.3.7 voxl-open-vins 0.4.16 voxl-open-vins-server 0.3.0 voxl-opencv 4.5.5-2 voxl-osd 0.1.1 voxl-platform-mod 1.0-r0 voxl-portal 0.7.5 voxl-px4 1.14.0-2.0.94 voxl-px4-imu-server 0.1.2 voxl-px4-params 0.6.3 voxl-qvio-server 1.1.1 voxl-remote-id 0.0.9 voxl-reset-slpi 0.0.1 voxl-state-estimator 0.0.4 voxl-streamer 0.7.5 voxl-suite 1.4.1 voxl-tag-detector 0.0.4 voxl-tflite-server 0.3.9 voxl-utils 1.4.4 voxl-uvc-server 0.1.7 voxl-vision-hub 1.8.17 voxl-vtx 1.1.8 voxl2-io 0.0.3 voxl2-system-image 1.8.02-r0 voxl2-wlan 1.0-r0 --------------------------------------------------------------------------------
Any guidance would be greatly appreciated.
Thank you,
Paul -
-