Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

rclpy fails to run on arm64 after cross-compilation

I performed the automated cross-compilation of ROS2 dashing for aarch64-linux-gnu. It works in qemu. However, when we copy the libraries and dependencies over to our ARM64-based embedded device and run ros2 commands, we see warnings like those below:

Failed to load entry point 'test': invalid syntax (io_handler.py, line 137)
Failed to load entry point 'launch': invalid syntax (__init__.py, line 60)
Failed to load entry point 'list': invalid syntax (executors.py, line 148)
...
Failed to load entry point 'bw': No module named 'rclpy._rclpy'
Failed to load entry point 'echo': No module named 'rclpy._rclpy'

rclcpp-based nodes will run just fine but rclpy-based nodes fail. My guess is that this is due to the fact that PYTHON_SOABI is set to aarch64-linux-gnu in the build process but it should be set specific to the machine it is running on. Does anyone have an idea of how to figure out what to set this to or know what's happening here?