|
|
@@ -0,0 +1,43 @@
|
|
|
+#!/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"
|