Skip to content

Install Guide

Kyle Drake edited this page Oct 3, 2025 · 1 revision

Install Guide

This guide explains how to install Arch Linux on the NVIDIA Jetson Orin Nano 8GB, prepare the environment, and configure system-level dependencies for projection, SDR processing, and dashboard functionality.


1. Prerequisites

  • Hardware

    • NVIDIA Jetson Orin Nano 8GB Developer Kit
    • NVMe SSD (≥256 GB, PCIe Gen3 x4)
    • USB-C power supply or car 12V→5V DC-DC converter
    • Raspberry Pi Zero 2 W (for USB gadget projection)
    • Monitor, keyboard, and Ethernet (for initial setup)
  • Software

    • Arch Linux ARM root filesystem
    • Jetson Linux BSP (from NVIDIA SDK Manager, for bootloader + drivers)
    • Etcher or dd (for flashing boot media)

2. Base System Installation

Step 2.1: Flash Jetson Bootloader

  1. On a host Linux machine, install NVIDIA SDK Manager.
  2. Use SDK Manager to flash Jetson Orin Nano with Jetson Linux (L4T).
  3. Verify the Jetson boots into NVIDIA’s Ubuntu-based reference OS.

Step 2.2: Replace Root Filesystem with Arch

  1. Download the latest Arch Linux ARM aarch64 rootfs.
  2. Partition and format the NVMe SSD:
    parted /dev/nvme0n1 mklabel gpt
    parted /dev/nvme0n1 mkpart primary ext4 1MiB 100%
    mkfs.ext4 /dev/nvme0n1p1
  3. Mount and extract Arch rootfs:
    mount /dev/nvme0n1p1 /mnt
    bsdtar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C /mnt
  4. Copy boot files from NVIDIA reference OS to /boot partition to maintain Jetson compatibility.
  5. Update extlinux.conf to point to the Arch root partition.

Step 2.3: First Boot

  1. Insert NVMe into Jetson carrier board.
  2. Power on — Jetson should boot into Arch Linux.
  3. Set root password and enable SSH:
    passwd
    systemctl enable sshd

3. System Configuration

Step 3.1: Package Manager

Install base tooling:

pacman -Syu base-devel git vim htop networkmanager

Step 3.2: Networking

Enable NetworkManager:

systemctl enable --now NetworkManager

Configure Wi-Fi autoconnect to iPhone hotspot:

nmcli dev wifi connect "iPhone" password "your_hotspot_password"
nmcli connection modify "iPhone" connection.autoconnect yes

Step 3.3: GPU & Acceleration

Install CUDA + TensorRT:

pacman -S nvidia nvidia-utils cuda cudnn tensorrt

Verify GPU:

nvidia-smi

4. Desktop & Projection

Step 4.1: KDE / Wayland Minimal Interface

pacman -S plasma-meta konsole dolphin sddm
systemctl enable sddm

Step 4.2: USB Gadget Projection

  • On Raspberry Pi Zero 2 W, enable OTG mode:
    dtoverlay=dwc2
  • Configure g_ether or g_multi module to present as an Android Auto device.
  • Bridge Pi Zero ↔ Jetson over USB Ethernet.
  • Run weston or Plasma session on Jetson, streamed through gadget to the head unit.

5. SDR and DSP Setup

Step 5.1: SDR Drivers

pacman -S gnuradio soapyuhd soapysdr hackrf rtl-sdr

Step 5.2: Verify Hardware

hackrf_info
rtl_test
uhd_find_devices

Step 5.3: GNU Radio

Run a test FFT flowgraph to confirm streaming from SDR to Jetson GPU.


6. OBD & Telemetry

Step 6.1: Pair OBDLink MX+

pacman -S bluez bluez-utils
systemctl enable --now bluetooth
bluetoothctl
# pair, trust, and connect OBDLink MX+

Step 6.2: Python-OBD

pacman -S python-pip
pip install obd

Test:

import obd
c = obd.OBD()
print(c.query(obd.commands.RPM))

7. Logging & Storage

  • Mount /var/log and /data on NVMe.
  • Configure journald to persistent mode.
  • Add a custom logging service for radar/telemetry events.

8. AI Environment (Optional)

Install LLM runtime:

pacman -S cmake
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && make

Run quantized model:

./main -m models/7B/ggml-model-q4_0.gguf -p "Hello Jetson"

9. Finalization

  • Enable auto-login for kiosk-style boot into Plasma session.
  • Configure watchdog timer for auto-reboot on failure.
  • Validate head unit projection, SDR reception, and OBD telemetry end-to-end.

Next: Head Unit Projection