| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/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=$(sudo cat /sys/module/nvidia_drm/parameters/modeset)
- fbdev=$(sudo 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
- [ "$(sudo cat /sys/module/nvidia_drm/parameters/modeset)" = "Y" ] || {
- echo "ERROR: modeset not active after modprobe" >&2; exit 1; }
- [ "$(sudo 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"
|