There’s a problem getting the Nvidia card to wake up after a suspend, apparently. I discovered this during development of some Theano / libgpuarray stuff (where the programming environment was tiresome to keep rebuilding). Until I found the fix, the only way to regain the Nvidia card was to reboot the machine.

So : Before suspending, execute the following commands as root :

Then the laptop can be safely suspended, and optirun (the regular bumblebee invocation) will resurrect the GPU.

NB: It’s a good idea (if you’re just using the GPU for ‘compute’) to use optirun --no-xorg since that simplifies the number of different processes with their fingers clutching at your GPU.

Pre-suspend hook

As root, create a file /usr/lib/systemd/system-sleep/turn-off-gpu.sh with the following contents (change the username path to somewhere relevant) :

(Remember to chmod 755 /usr/lib/systemd/system-sleep/turn-off-gpu.sh after creating it.)

To test (without suspending) try /usr/lib/systemd/system-sleep/turn-off-gpu.sh pre suspend-test, and check for new entries in the file /home/username/sleep.log : You should get an entry like ::

(with the final ‘OFF’ being the verification that it’s now safe for the suspend to take effect).