mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-01 20:28:16 +02:00
30 lines
952 B
Bash
30 lines
952 B
Bash
#!/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
|