Ros snap failing to execute while running on aarch64

I built a multi architecture snap for my ros package using multipass in my Ubuntu laptop which is not compatible with nvidia cuda , I am able to install it and use it is working as expected, but when it comes to my nvidia xavier NX the same snap is giving me some error.

This is my snapcraft.yaml

The snap is formed by this way.

yes, you can see that I am able to install and launch my files using snap in my intel laptop perfectly fine.


more info about the CPU architecture.

I transferred my snap file to the nx and done snap installation and execution, so this error is being repeated while executing.

I tried to build snap from NX itself using lxd, but it is becoming very difficult to connect my wifi into the container.

This is the error I am getting while building snap with lxd in NX

I hereby invoke the @artivis.

a wild artivis appears!

Hello @dineshrampalli,

Let’s start by saying that you actually cannot build your snap on your laptop (most likely amd64) and simply copy/paste it to your Xavier board (arm64). The snap built on your laptop is only compatible with devices of the same architecture (e.g. amd64).
The architecture keyword may be miss leading here has it is a declaration of compatibility. Snapcraft is not building two snaps (amd/arm) nor is it building a snap that would be compatible with both architectures. More info about architectures in the doc.

From there you have several options, build the snap directly on the Xavier board, which you seem to be trying; you could try remote-build or even build the snap on another arm64 device - maybe you have a Raspberry Pi laying around?.

Concerning you issue at hand, building directly on the Xavier board, you seem to have already found the this related thread and I’m not quite sure what the issue is. Maybe @ogra would have a pointer?

the other thread suggests that the standard nvidia kernel is simply missing patches and config options, i guess this is the same issue … try running lxd-check-kernel and you will likely see missing features in the nvidia kernel

Hi @artivis Thanks for the quick follow up.
I cannot use remote build as my repos are private ones.
Is there any chance where I can use remote build for private repos as well?
I think Raspberry Pi also cannot solve my needs as my applications need GPU to run.

HI @ogra as you said I checked using the command and I found some are missing and I believe I cannot flash Ubuntu Core as it is not developed for Xavier NX,


and I tried to launch a container in the Xavier nx and make the internet flowing there as well and when I installed snap packages and cloned my repo and done Snapcraft --destructive-mode nothing seems to be happening and I dont know the reason exactly its saying sudo is not present and I did not took screenshot of it and I deleted that container as well, you think do I need to spend some more time in the container so that snapcraft --destructive-mode will work, or I have a tx1 with me do I need to falsh ubuntu core in that and run snapcraft --use-lxd directly will that work?

on a TX1 you should be able to use @abeato’s image and then just follow:

https://ograblog.wordpress.com/2020/07/10/building-snap-packages-on-ubuntu-core/

@ogra believe I had done every step that you mentioned.

  1. took tx1 and flash ubuntu core image - done
  2. ssh and perform steps in blog - error