Need newer version of GCC on VOXL
-
Hello,
I work over at ARL with Steve Nogar. I have some software I want to run on the VOXL that has a hard requirement of C++17 but the version of GCC on the VOXL does not support C++17. I tried compiling a version of GCC (v7 or newer) that supports C++17 native on the VOXL but it fails due to some assembler errors.
Is there any way to get a newer version of GCC for the VOXL system?
Thanks,
Rolando -
Running everything in a Docker would definitely be the easiest way to go. The code inside of the Docker runs faster than on the yocto layer as the Docker is a pure ARMv8 userspace. Is that a possibility?
Otherwise you would probably have to use a cross compiler (like an upgrade to voxl-cross) and then try to work out linking on target. This blog post here suggests using LD_PRELOAD
Docker would still be easier, and likely better performant
-
This post is deleted! -
@Chad-Sweet Do you have an example of running docker onboard and how I can transfer a docker image to the voxl?
Is the issue regarding docker image size been resolved? I know awhile back Steve was trying to use docker but he was having trouble with our image being too large to run on the voxl.
-
Yes, see docs here: https://docs.modalai.com/docker-on-voxl/
We have changed partition on flash to two 16GB partitions. See this section where it points you to use the /data partition which is 16GB specifically for Docker use
-
@Chad-Sweet How do I get the docker system services to start on boot?
Also, does the docker image have full access to all the peripherals on the system? Basically, does voxl-docker run images in privileged mode?
-
Configuring to run on boot is documented here
For peripherals, you can configure for privelaged mode. voxl-camera-server and voxl-imu-server run on the yocto layer and output their data to pipes which can be accessed inside of the Docker. That's all coming online right now but should be working. For the rest of the peripherials it comes down to what you expose at docker run
-
@Chad-Sweet How do I get my build in docker to locate the voxl libraries on the system? For example, the voxl_io header.
-
libvoxl_io unfortunately won't work inside of a Docker. Are you communicating via MAVLink? If so, you can send mavlink commands to voxl-vision-px4 to be forwarded on the the flight controller over serial.