Problem for Unity Engine run on Jetson TX2

We are working on an SLAM tracking system, surface segment and reconstruction, and streaming the down sample mesh into Unity, we had Unity run on NUC with Linux, but have trouble have Unity engine directly run on Jetson TX2, wondering if anyone ever did it or if it’s possible to do it? Thanks for help! (We are working on an augmented reality glass and platform)

When you say “have trouble running Unity directly on Jetson,” what do you mean?
Does Unity have a Linux engine download for arm64 archiecture?
If so, do you get any particular errors when trying to run it?

The Jetson TX2 is an ARM architecture, and no install is available, I tried with sh file and the same, when trying ./Unity I got : bash: ./Unity: cannot execute binary file: Exec format error

Unity cilents do support ARM architecture:
https://community.arm.com/graphics/b/blog/posts/arm-guide-for-unity-developers-v3-3

It also runs on iOS and Android devices which are all ARM.
To know what the specific format/architecture of whatever file you want to run, try:

file the-filename

So, for example:

file Unity

If it’s a file intended to run on ARM, it should say so. For example:

ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.26

Note that, to run 32-bit executables on 64-bit ARM, you have to enable mutiarch using dpkg, and then install the necessary “armhf” version libraries. (This is common for other software like Arduino as well.)

Here’s a good set of libraries to get started (I use this for other software, not for Unity, so I don’t know if this is sufficient):

sudo dpkg --add-architecture armhf

sudo apt-get install gcc-4.8-base:armhf gcc-5-base:armhf gcc-6-base:armhf glib-networking:armhf libasan0:armhf libatk-bridge2.0-0:armhf libatk1.0-0:armhf libatomic1:armhf libatspi2.0-0:armhf libavahi-client3:armhf libavahi-common-data:armhf libavahi-common3:armhf libboost-filesystem1.58.0:armhf libboost-system1.58.0:armhf libbsd0:armhf libc++1:armhf libc6:armhf libc6-dev:armhf libcairo-gobject2:armhf libcairo2:armhf libcapnp-0.5.3:armhf libcolord2:armhf libcomerr2:armhf libcups2:armhf libdatrie1:armhf libdbus-1-3:armhf libdrm-amdgpu1:armhf libdrm-etnaviv1:armhf libdrm-freedreno1:armhf libdrm-nouveau2:armhf libdrm-radeon1:armhf libdrm2:armhf libedit2:armhf libegl1-mesa:armhf libelf1:armhf libepoxy0:armhf libexpat1:armhf libffi6:armhf libfontconfig1:armhf libfreetype6:armhf libgbm1:armhf libgcc-4.8-dev:armhf libgcc1:armhf libgcc1-dbg:armhf libgcrypt20:armhf libgdk-pixbuf2.0-0:armhf libgl1-mesa-dri:armhf libglapi-mesa:armhf libglib2.0-0:armhf libgmp10:armhf libgnutls30:armhf libgomp1:armhf libgpg-error0:armhf libgraphite2-3:armhf libgssapi-krb5-2:armhf libgtk-3-0:armhf libgtk2.0-0:armhf libharfbuzz0b:armhf libhogweed4:armhf libice6:armhf libicu55:armhf libidn11:armhf libjbig0:armhf libjpeg-turbo8:armhf libjpeg8:armhf libjson-glib-1.0-0:armhf libk5crypto3:armhf libkeyutils1:armhf libkrb5-3:armhf libkrb5support0:armhf liblcms2-2:armhf libllvm5.0:armhf liblzma5:armhf libmirclient9:armhf libmircommon7:armhf libmircore1:armhf libmirprotobuf3:armhf libnettle6:armhf libp11-kit0:armhf libpango-1.0-0:armhf libpangocairo-1.0-0:armhf libpangoft2-1.0-0:armhf libpcre3:armhf libpixman-1-0:armhf libpng12-0:armhf libprotobuf-lite9v5:armhf libproxy1v5:armhf librest-0.7-0:armhf libselinux1:armhf libsensors4:armhf libsm6:armhf libsoup-gnome2.4-1:armhf libsoup2.4-1:armhf libsqlite3-0:armhf libstdc++-4.8-dev:armhf libstdc++6:armhf libstdc++6-4.8-dbg:armhf libsystemd0:armhf libtasn1-6:armhf libthai0:armhf libtiff5:armhf libtinfo5:armhf libtxc-dxtn-s2tc0:armhf libudev1:armhf libusb-0.1-4:armhf libuuid1:armhf libwayland-client0:armhf libwayland-cursor0:armhf libwayland-egl1-mesa:armhf libwayland-server0:armhf libx11-6:armhf libx11-xcb1:armhf libxau6:armhf libxcb-dri2-0:armhf libxcb-dri3-0:armhf libxcb-present0:armhf libxcb-render0:armhf libxcb-shm0:armhf libxcb-sync1:armhf libxcb-xfixes0:armhf libxcb1:armhf libxcomposite1:armhf libxcursor1:armhf libxdamage1:armhf libxdmcp6:armhf libxext6:armhf libxfixes3:armhf libxft2:armhf libxi6:armhf libxinerama1:armhf libxkbcommon0:armhf libxml2:armhf libxmu6:armhf libxrandr2:armhf libxrender1:armhf libxshmfence1:armhf libxt6:armhf libxtst6:armhf linux-libc-dev:armhf zlib1g:armhf

However, if you want to run the Unity editor (not just a built client) on ARM, no, I don’t think they support that.

I know that Unreal Engine editor can be built from source on Linux, so you may be able to switch to Unreal, if you need to run the editor on the TX2. 8 GB may not be enough RAM, though.

I can see reference: https://forum.unity.com/threads/experimental-android-64-bit-arm-support-a-k-a-arm64-a-k-a-aarch64.512010/ , but I haven’t heard of folks used unity at jetson. If I needed to I would run unity at Host PC and delivered the Unity application over the network to the Jetson.

Hey Andrey,
the above thread refers to Android and while it’s is sorta Linux I’m very skeptical that the binary will run on Tegra Ubuntu with Nvidia graphics.
Anything to the contrary?

Thanks
G.

@gue22: It will not run on Tegra Ubuntu,as per my understanding.

I realized that I can use VisionWorks for that niche.
Thanks
G.

Any update on either compiling the unity engine on ARM (specifically on TX1/TX2) or exporting a binary from unity running on a non-ARM host machine (x86)?