Thank you, @esteve and @pokitoz. I got cross-compilation done for Jetson TX2.
Here is a brief for who is interesting on this.
- toolchain: Linaro gcc toolchain 7.2 https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz
- rootfs: mount Jetson TX2 rootfs with 'sshfs' sudo sshfs -o idmap=user,follow_symlinks,ro,allow_other root@
- environment variables: export SYSROOT=${HOME}/rootfs
; export CROSS_COMPILE=aarch64-linux-gnu-
- CMake toolchain file
set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_VERSION 1) set(CMAKE_SYSTEM_PROCESSOR aarch64) set(CMAKE_SYSROOT $ENV{SYSROOT}) # specify the cross compiler set(CMAKE_C_COMPILER $ENV{CROSS_COMPILE}gcc) set(CMAKE_CXX_COMPILER $ENV{CROSS_COMPILE}g++) # where is the target environment set(CMAKE_FIND_ROOT_PATH ${CMAKE_CURRENT_LIST_DIR}/install) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) # This assumes that pthread will be available on the target system # (this emulates that the return of the TRY_RUN is a return code "0" set(THREADS_PTHREAD_ARG "0" CACHE STRING "Result from TRY_RUN" FORCE)- Apt 'sources.list'
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted #deb-src [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted #deb-src [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted #deb-src [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted- Install 'libpython3-dev:arm64' - Ignore 'rviz' and 'opencv' related packages
src/ament/ament_tools/scripts/ament.py build \ --force-cmake-configure \ --skip-packages resource_retriever \ rviz_assimp_vendor \ rviz_ogre_vendor \ rviz_yaml_cpp_vendor \ rviz_rendering \ rviz_rendering_tests \ rviz_common \ rviz2 \ rviz_default_plugins \ --cmake-args \ -DCMAKE_TOOLCHAIN_FILE=`pwd`/aarch64_toolchainfile.cmake \ -DTHIRDPARTY=ON \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DPYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc() + ';' + '/usr/include')") \ -DPYTHON_LIBRARY=$(python3 -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))")/aarch64-linux-gnu/libpython3.5m.so ----- [Visit Topic](https://discourse.ros.org/t/how-to-cross-compile-ros2-for-arm64-architecture/3702/15) or reply to this email to respond. If you do not want to receive messages from ros-users please use the unsubscribe link below. If you use the one above, you will stop all of ros-users from receiving updates. ______________________________________________________________________________ ros-users mailing list ros-users@lists.ros.org http://lists.ros.org/mailman/listinfo/ros-users Unsubscribe: