NVIDIA-ISAAC-ROS / NVIDIA-ISAAC-ROS/isaac_ros_common
[Cross Compile] Is it possible to build for jetson(aarch64) images on x86_64 machine?
@hemalshahNV is already working on this.
Since Jul 31, 2023.
- Dominant language
- C++
- Stars
- 317
- Forks
- 227
- PR merge metrics
- No merged PRs in 30d
Description
I would like to build a docker container on my x86_64 pc for Jetson aarch64. I tried the following this https://medium.com/@Smartcow_ai/building-arm64-based-docker-containers-for-nvidia-jetson-devices-on-an-x86-based-host-d72cfa535786 and installed QEMU, binfmt_static and then registered using,
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes.
But when I ran run_dev.sh by changing the PLATFORM to aarch64, the aarc64 base image is getting pulled, but later for the next layers it throws an error,
[+] Building 2.1s (3/3) FINISHED docker:default
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build definition from Dockerfile.exec_depends 0.0s
=> => transferring dockerfile: 1.49kB 0.0s
=> ERROR [internal] load metadata for docker.io/library/aarch64-ros2_humble-image:latest 2.1s
------
> [internal] load metadata for docker.io/library/aarch64-ros2_humble-image:latest:
------
Dockerfile.exec_depends:2
--------------------
1 | ARG BASE_IMAGE
2 | >>> FROM ${BASE_IMAGE}
3 |
4 | RUN apt-get update && mkdir -p ${ROS_ROOT}/src && cd ${ROS_ROOT} \
--------------------
ERROR: failed to solve: aarch64-ros2_humble-image: pull access denied, the repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
Failed to build base image: isaac_ros_dev-aarch64, aborting.
But, I already have the aarch64-ros2_humble-image:latest in my local and I was able to run the aarch64-based container on my x86_64 pc. docker images | grep ros output,
isaac_ros_dev-x86_64 latest fc66a048f618 43 minutes ago 29.5GB
aarch64-ros2_humble-image latest 7a882c8d683b 2 months ago 18.8GB
x86_64-ros2_humble-image latest 3c59bab3ee0b 2 months ago 28GB
So, I am wondering if is it possible to cross-compile just by changing the PLATFORM variable in run_dev.sh or if am I missing something.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.