All three node90x hosts are NVIDIA Jetson Nano 2GB Developer Kits with Tegra T210 SoCs. They have an integrated GPU on the SoC chip — it is not a discrete card, it is literally part of the processor die. And yet from the host OS, there is absolutely no access to that GPU.

No nvidia-smi. No OpenCL platforms. No CUDA runtime libraries. No /dev/nvhost-* device nodes. The hardware exists; the software stack does not.

The Hardware Reality

Jetson Nano 2GB specs:

  • SoC: NVIDIA Tegra T210 (4x Cortex-A57 @ 1.4 GHz)
  • GPU: NVIDIA Maxwell architecture, 128 CUDA cores
  • RAM: 1.9 GB LPDDR4 (shared with GPU — no VRAM buffer)
  • Disk: eMMC on node900/node901 (30-118GB), SD card on node903
  • OS: Debian 12 (installed by Franklin, not NVIDIA's L4T)
  • ul>

    The key insight: these are SoCs. The GPU is baked into the T210 chip. It requires specific kernel drivers (the nvidia-l4t package family) and device tree overlays that standard Debian does not include.

    Why Standard Debian Doesn't Work

    The node90x hosts run Debian 12 with the stock Linux kernel 5.15 (6.x series on newer installs). The GPU requires:

    1. nvidia-l4t-kernel packages — custom kernel modules compiled against Tegra's device tree, not available in Debian main repos
    2. nvidia-l4t-core and nvidia-l4t-toolkit — provides nvidia-smi, CUDA runtime, and the /dev/nvhost-*//dev/nvmap* device nodes
    3. Device tree overlays — the T210 GPU is enabled via DTB configuration that Debian's boot process does not apply
    4. User-space libraries — libcuda.so, OpenCL ICD, TensorRT binaries — all NVIDIA L4T-specific, version-locked to the JetPack release
    5. ol>

      The mismatch: NVIDIA ships the Jetson Nano with L4T (Linux for Tegra) — a custom Debian-based distribution that bundles everything together. Franklin installed stock Debian, which has no path to install nvidia-l4t packages without switching to an NVIDIA-supported base.

      What It Would Take to Fix

      Option 1: Switch to L4T Ubuntu base (recommended).

      # On each node90x:
      # 1. Flash NVIDIA's JetPack image (JetPack 5.x for T210)
      # 2. Set up SSH key auth (currently password-only: franklin/123)
      # 3. Verify GPU access:
      nvidia-smi
      clinfo  # lists OpenCL platforms
      python3 -c "import torch; print(torch.cuda.is_available())"

      This is a full OS reinstall on three hosts but gives the correct foundation for edge inference workloads.

      Option 2: Backport nvidia-l4t packages to Debian (not recommended).

      The nvidia-l4t package chain has strict dependency version-locking between kernel headers, driver modules, and user-space libraries. Breaking the chain will produce a non-functional state that is harder to debug than starting fresh.

      Edge Inference Potential

      If the GPU were accessible, each node90x host could run:

      • TensorRT-optimized inference for small language models (nomic-embed-text, devstral-small)
      • OpenCL-accelerated image processing for camera pipeline endpoints on the lab network
      • Local vector search using GPU-backed embeddings — eliminating the need to send embedding requests to chonk over the network
      • ul>

        The constraint is RAM: 1.9 GB shared between CPU and GPU means the practical model size limit is ~300M parameters for inference at reasonable speed. But for edge-level classification and encoding tasks, this is perfectly adequate.

        Current State Summary

        | Host | Status | Uptime | Keytabs | SSH Auth | GPU |

        | node900 | online (106d) | 30GB eMMC 63% | No | Password `123` | Inaccessible |

        | node901 | online (106d) | 118GB eMMC 23% | No | Password `123` | Inaccessible |

        | node903 | online (19d) | 59GB eMMC 50% | No | Password `123` | Inaccessible |

        | node902 | powered off | — | — | — | Offline |

        Three hosts, one GPU family, zero access. The lab has a cluster of edge inference accelerators that are effectively bricks until L4T is installed. This is not unusual for Jetson hardware on non-NVIDIA distros — it is expected behavior.

        Action required: Before assigning any GPU workloads to node90x, plan an L4T flash operation across nodes 900 and 901 (both at 106 days uptime — good candidates for fresh provisioning). Node903 is newer and can wait. node902 must be powered on first.