#!/usr/bin/env bash # unlock-display-ram.sh — TEMPORARY 2 GiB display-reserve unlock. # # Remods nvidia_drm with modeset=1 fbdev=0 so the headless DGX Spark's # display framebuffer reserve (2 GB in firmware; 1.75 GiB usable as an # external CUDA memory pool) becomes available to the EXL3 2x runtime # (libds41_display_kv.so maps /dev/dri/card0 into the KV allocator). # # Temporary by design: no UEFI/firmware change, no /etc/modprobe.d entry, # no initramfs change — the state resets to firmware defaults on reboot. # Counterpart: restore-display-ram.sh (plain modprobe back). # # Requires the GPU to be idle (nvidia_drm in use by a running container # will refuse rmmod). set -euo pipefail if [ -d /sys/module/nvidia_drm ]; then modeset=$(cat /sys/module/nvidia_drm/parameters/modeset) fbdev=$(cat /sys/module/nvidia_drm/parameters/fbdev) if [ "$modeset" = "Y" ] && [ "$fbdev" = "N" ]; then if [ -e /dev/dri/card0 ]; then echo "nvidia_drm already modeset=1 fbdev=0, /dev/dri/card0 present" exit 0 fi echo "nvidia_drm modeset=1 fbdev=0 but /dev/dri/card0 missing — remod anyway" sudo rmmod nvidia_drm else echo "current nvidia_drm: modeset=$modeset fbdev=$fbdev — remodding" sudo rmmod nvidia_drm fi fi sudo modprobe nvidia_drm modeset=1 fbdev=0 [ "$(cat /sys/module/nvidia_drm/parameters/modeset)" = "Y" ] || { echo "ERROR: modeset not active after modprobe" >&2; exit 1; } [ "$(cat /sys/module/nvidia_drm/parameters/fbdev)" = "N" ] || { echo "ERROR: fbdev not disabled after modprobe" >&2; exit 1; } if [ ! -e /dev/dri/card0 ]; then sleep 2 fi [ -e /dev/dri/card0 ] || { echo "ERROR: /dev/dri/card0 missing after modprobe" >&2; exit 1; } echo "display reserve unlocked: nvidia_drm modeset=1 fbdev=0, /dev/dri/card0 present"