Setup Status - NVIDIA DGX-Spark (ARM64 Linux)

Date: 2025-11-06 System: ARM64 (aarch64) Linux - NVIDIA DGX-Spark

✅ What’s Working

Desktop Development (Linux ARM64)

  • Status: ✅ FULLY FUNCTIONAL
  • Build Command: npm run tauri:dev or npm run tauri:build
  • Output Formats:
    • Native binary: /home/beengud/.cargo/target/release/tauri-hello-world (5.4 MB)
    • DEB package: Tauri Hello World_0.1.0_arm64.deb (1.9 MB)
    • RPM package: Tauri Hello World-0.1.0-1.aarch64.rpm
  • Architecture: ARM aarch64 (native)

Environment Setup

  • ✅ JDK 17 installed
  • ✅ Node.js and npm configured
  • ✅ Rust toolchain with Android targets
  • ✅ Android SDK and NDK 25.1.8937393 installed
  • ✅ Linux system dependencies (WebKit2GTK, etc.)
  • ✅ Environment variables configured in ~/.bashrc

❌ Known Limitations

Android Builds

  • Status: ❌ NOT SUPPORTED on ARM64 Linux
  • Reason: Android NDK only provides x86_64 toolchains for Linux hosts
  • Error: cannot execute binary file: Exec format error when linking
  • QEMU Workaround: Attempted but requires additional x86_64 libraries not available in ARM64 Ubuntu ports

Build Android APKs on:

  1. x86_64 Linux machine (cloud or local)
  2. macOS (x86_64 or Apple Silicon)
  3. CI/CD pipeline (GitHub Actions, GitLab CI, etc.)

Example GitHub Actions workflow location: .github/workflows/android-build.yml

Environment Variables

The following were added to ~/.bashrc:

# Android SDK configuration
export ANDROID_HOME=$HOME/Android/Sdk
export NDK_HOME=$ANDROID_HOME/ndk/25.1.8937393
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-arm64
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools

Note: Reload your shell or run source ~/.bashrc to apply these changes.

Build Commands Summary

Desktop (Works ✅)

# Development mode with hot reload
npm run tauri:dev
 
# Production build
npm run tauri:build

Android (Blocked ❌)

# These require x86_64 Linux or macOS
npm run tauri:android       # Development
npm run tauri:android:build # Production APK

Installed Tools

  • JDK: OpenJDK 17 (ARM64)
  • Rust: 1.90.0
  • Android SDK: Platform 34, Build Tools 34.0.0
  • Android NDK: 25.1.8937393 (x86_64 - incompatible)
  • Android Targets: aarch64-linux-android, armv7-linux-androideabi, i686-linux-android, x86_64-linux-android
  • Node.js: Installed with npm
  • QEMU: qemu-user-static (attempted for x86_64 emulation)

Next Steps

For Desktop Development

You’re all set! Continue developing and building for Linux ARM64.

For Android Development

Consider one of these approaches:

  1. GitHub Actions (Recommended)

    • Free for public repos
    • Runs on x86_64 Ubuntu
    • Can publish APKs as artifacts
  2. Remote x86_64 Linux Server

    • SSH into an x86_64 machine
    • Run builds remotely
  3. Docker with x86_64 Platform

    • Not recommended due to performance overhead
  4. Dual-Boot or VM

    • Install x86_64 Ubuntu on another partition/machine

Verification

To verify your setup:

# Test desktop build
npm run tauri:build
 
# Check environment variables
echo $ANDROID_HOME
echo $NDK_HOME
echo $JAVA_HOME
 
# Verify Rust targets
rustup target list --installed | grep android

Documentation Created

  • CLAUDE.md - AI development guidance
  • SETUP_STATUS.md - This file

Support

For Tauri support: