Summary
Building ALVR on ARM64 Linux (tested on NVIDIA DGX Spark / GB10, Ubuntu 24.04) fails at two points.
Issue 1: char signedness in alvr_server_openvr
error[E0308]: mismatched types
--> alvr/server_openvr/src/lib.rs:184:28
|
184 | m_captureFrameDir: capture_frame_dir,
| ^^^^^^^^^^^^^^^^^ expected `[u8; 1024]`, found `[i8; 1024]`
On ARM64, C char is unsigned by default (u8). The array is declared as [0i8; 1024] but the FFI struct expects [u8; 1024].
Fix: [0i8; 1024] → [0u8; 1024]. The existing .cast() on the pointer copy already handles both types correctly.
Issue 2: No ARM64 libopenvr_api.so prebuilt
OpenVR ships only linux64 (x86-64) prebuilts. On aarch64 the linker fails:
/usr/bin/ld: skipping incompatible openvr/lib/linux64/libopenvr_api.so
/usr/bin/ld: cannot find -lopenvr_api: No such file or directory
OpenVR builds cleanly for ARM64 from source in ~30 seconds. A separate PR has been filed on ValveSoftware/openvr to add the prebuilt: ValveSoftware/openvr#1924
Environment
Why this matters
ARM64 Linux is increasingly common for GPU workloads (NVIDIA Grace Blackwell, Apple Silicon via Asahi, Ampere cloud instances). ALVR could support these platforms with minimal changes.
Summary
Building ALVR on ARM64 Linux (tested on NVIDIA DGX Spark / GB10, Ubuntu 24.04) fails at two points.
Issue 1: char signedness in
alvr_server_openvrOn ARM64, C
charis unsigned by default (u8). The array is declared as[0i8; 1024]but the FFI struct expects[u8; 1024].Fix:
[0i8; 1024]→[0u8; 1024]. The existing.cast()on the pointer copy already handles both types correctly.Issue 2: No ARM64
libopenvr_api.soprebuiltOpenVR ships only
linux64(x86-64) prebuilts. On aarch64 the linker fails:OpenVR builds cleanly for ARM64 from source in ~30 seconds. A separate PR has been filed on ValveSoftware/openvr to add the prebuilt: ValveSoftware/openvr#1924
Environment
Why this matters
ARM64 Linux is increasingly common for GPU workloads (NVIDIA Grace Blackwell, Apple Silicon via Asahi, Ampere cloud instances). ALVR could support these platforms with minimal changes.