BalenaOS Jetson Nano | X server Docker Container & Box64 Unity3D Docker Container Hey. I might be in a special use case here. We're trying to deploy graphical interfaces OTA with BalenaOS on ARM architecture. The license from Unity was quite expensive to compile to ARM so before we take that route I thought I'd try with Box64. I've got one container managing the X server through this https://github.com/balena-labs-projects/xserver And another container running the exported unity project. But nothing shows up on the display other than a mouse cursor that i can move around once plugged in.. Heres the docker container for the Unity project: ``` FROM balenalib/jetson-nano-ubuntu:latest RUN apt update && apt install wget -y RUN wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list RUN wget -O- https://ryanfortner.github.io/box64-debs/KEY.gpg | gpg --dearmor -o /usr/share/keyrings/box64-debs-archive-keyring.gpg RUN apt update && apt install box64 -y WORKDIR /usr/src/app COPY JetsonNanoTest . COPY entry.sh . RUN chmod +x hmi.x86_64 RUN chmod +x entry.sh RUN apt install libxss1 libwayland-egl1 libwayland-cursor0 libxkbcommon0 libxkbcommon-x11-0 libxcursor1 libxinerama1 libxi6 libxrandr2 libxxf86vm1 -y ENV BOX64_LOG =2 #ENTRYPOINT ["/bin/bash", "/usr/src/app/entry.sh"] CMD [ "box64" ,"/usr/src/app/hmi.x86_64"] ``` Docker-compose file: ``` version: '2.1' volumes: x11: services: xserver: build: ./Containers/XServer restart: always privileged: true network_mode: host volumes: - 'x11:/tmp/.X11-unix' emulator: build: ./Containers/emulator restart: always privileged: true network_mode: host devices: - /dev/dri group_add: - video volumes: - 'x11:/tmp/.X11-unix' ``` The display is default :0 , is there any specific command that Box64 needs to target a display somehow? Logs from startup ``` [Logs] [2/23/2023, 16:42:13] [emulator] Debug level is 1 [Logs] [2/23/2023, 16:42:13] [emulator] Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL PageSize:4096 Cores:4 [Logs] [2/23/2023, 16:42:13] [emulator] Params database has 15 entries [Logs] [2/23/2023, 16:42:13] [emulator] Box64 with Dynarec v0.2.1 ce61d27d built on Feb 22 2023 07:15:03 [Logs] [2/23/2023, 16:42:13] [emulator] Debug level is 1 [Logs] [2/23/2023, 16:42:13] [emulator] Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL PageSize:4096 Cores:4 [Logs] [2/23/2023, 16:42:13] [emulator] Params database has 15 entries [Logs] [2/23/2023, 16:42:13] [emulator] Box64 with Dynarec v0.2.1 ce61d27d built on Feb 22 2023 07:15:03 [Logs] [2/23/2023, 16:42:13] [emulator] Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/ [Logs] [2/23/2023, 16:42:13] [emulator] Using default BOX64_PATH: ./:bin/ [Logs] [2/23/2023, 16:42:13] [emulator] Counted 33 Env var [Logs] [2/23/2023, 16:42:13] [emulator] Looking for /usr/src/app/hmi.x86_64 [Logs] [2/23/2023, 16:42:13] [emulator] Rename process to "hmi.x86_64" [Logs] [2/23/2023, 16:42:13] [emulator] Using emulated UnityPlayer.so [Logs] [2/23/2023, 16:42:13] [emulator] Using native(wrapped) libm.so.6 [Logs] [2/23/2023, 16:42:13] [emulator] Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1 [Logs] [2/23/2023, 16:42:13] [emulator] Using native(wrapped) libpthread.so.0 [Logs] [2/23/2023, 16:42:13] [emulator] Using native(wrapped) libc.so.6 [Logs] [2/23/2023, 16:42:13] [emulator] Using native(wrapped) ld-linux-x86-64.so.2 [Logs] [2/23/2023, 16:42:13] [emulator] Using native(wrapped) libutil.so.1 [Logs] [2/23/2023, 16:42:13] [emulator] Using native(wrapped) librt.so.1 [Logs] [2/23/2023, 16:42:13] [emulator] Using native(wrapped) libdl.so.2 [Logs] [2/23/2023, 16:42:14] [emulator] [UnityMemory] Configuration Parameters - Can be set up in boot.config [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-bucket-allocator-granularity=16" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-bucket-allocator-bucket-count=8" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-bucket-allocator-block-size=4194304" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-bucket-allocator-block-count=1" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-main-allocator-block-size=16777216" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-thread-allocator-block-size=16777216" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-gfx-main-allocator-block-size=16777216" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-gfx-thread-allocator-block-size=16777216" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-cache-allocator-block-size=4194304" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-typetree-allocator-block-size=2097152" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-profiler-bucket-allocator-granularity=16" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-profiler-bucket-allocator-bucket-count=8" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-profiler-bucket-allocator-block-size=4194304" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-profiler-bucket-allocator-block-count=1" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-profiler-allocator-block-size=16777216" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-profiler-editor-allocator-block-size=1048576" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-job-temp-allocator-block-size-background=1048576" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-job-temp-allocator-reduction-small-platforms=262144" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-temp-allocator-size-background-worker=32768" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-temp-allocator-size-job-worker=262144" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-temp-allocator-size-preload-manager=262144" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-temp-allocator-size-nav-mesh-worker=65536" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-temp-allocator-size-audio-worker=65536" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-temp-allocator-size-cloud-worker=32768" [Logs] [2/23/2023, 16:42:14] [emulator] "memorysetup-temp-allocator-size-gfx=262144" [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libX11.so.6 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libXext.so.6 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libxcb.so.1 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libXau.so.6 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libXdmcp.so.6 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libXcursor.so.1 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libXinerama.so.1 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libXi.so.6 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libXrandr.so.2 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libXrender.so.1 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libXss.so.1 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libXxf86vm.so.1 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libwayland-client.so.0 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libwayland-egl.so.1 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libwayland-cursor.so.0 [Logs] [2/23/2023, 16:42:14] [emulator] Using native(wrapped) libxkbcommon.so.0 [Live] Device state settled ```