Fix Hibernation resume on nvidia computers

This commit is contained in:
David Heinemeier Hansson
2026-02-21 09:22:17 +01:00
parent 76ab172334
commit ffd8509da6
2 changed files with 32 additions and 9 deletions
+20 -9
View File
@@ -5,14 +5,25 @@
# will wake after suspend in Hybrid mode, even if the system was in Integrated mode before
# suspending.
if [[ $1 == "post" ]]; then
# small delay so the device is fully re-enumerated
sleep 4
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
# 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
fi
# then go back to Integrated, which powers it off again
/usr/bin/supergfxctl -m Integrated
;;
esac