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: default
Server: 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: de40ad0
I 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