#!/bin/bash # Use the Vfio to Integrated trick to turn off NVIDIA dgpu when in integrated mode # without needing to restart the computer. This is needed because computers like the Asus G14 # will wake after suspend in Hybrid mode, even if the system was in Integrated mode before # suspending. case "$1" in pre) # Before hibernating, switch to Vfio so the nvidia driver is detached from the dGPU. # Without this, hibernate resume fails because the nvidia driver can't freeze a # powered-off dGPU (returns -EIO), which aborts the entire resume. if [[ $2 == "hibernate" ]]; then /usr/bin/supergfxctl -m Vfio sleep 1 fi ;; post) # small delay so the device is fully re-enumerated sleep 4 # force-bind dGPU to vfio (fully detached from nvidia) /usr/bin/supergfxctl -m Vfio sleep 1 # then go back to Integrated, which powers it off again /usr/bin/supergfxctl -m Integrated ;; esac