Fixing Sleep Issues with Bazzite on a Gigabyte Motherboard
Bazzite had a nasty case of insomnia on my Gigabyte B550M DS3H
Windows 11 was getting bloated & clunky on the gaming PC hooked to my living room TV. So I decided to install Bazzite on it to give it a little boost.
I've had a Steam Deck for close to a year, and I've become accustomed to the UI. So I wasn't afraid of this transition. Not to mention, gaming with Linux & Proton is often faster than the Windows platform that games were meant to run on.
At first, once I got Bazzite all setup, everything seemed great. The Steam Gaming Mode UI ran much smoother than Steam Big Picture on Windows. And every game I tested ran perfectly. (They ran nearly perfectly, at least... Baldur's Gate 3 had some random sparkly pixels on the initial loading splash screens.)
Then I put the PC to sleep... and it immediately woke itself back up. At least, it seemed to wake itself back up. The lights & fans were on; but the screen was black and the PC wouldn't respond to any buttons I pressed. This included holding the power button for 5-10 seconds. I actually had to unplug the PC from the wall to power it down so I could reboot it.
After some searching, I found that this is not an uncommon problem on Gigabyte motherboards running Bazzite – specifically Bazzite running KDE as the underlying UI (which is what the default "Home Theater PC" flavor of Bazzite uses).
I found an automatic script that supposedly fixes this broken sleep on Gigabyte motherboards. It didn't work.
Then I found this post by @Voyded on Github, with detailed instructions to fix the issue. However, on my Gigabyte B550M DS3H, even this still didn't work at first. When I setup the service and ran cat /proc/acpi/wakeup, it was showing GPP8 as properly disabled. However, GPP0 was now enabled.
It turned out that I needed to only disable GPP8, and not GPP0. Attempting to "disable" GPP0 actually enabled it, and broke sleep in a whole new way.
Here are the instructions to fix sleep in Bazzite, specific to the Gigabyte B550M DS3H:
Fire up the Linux terminal, and get ready to enter some commands:
First, let's check whether GPP0 & GPP8 are enabled:
cat /proc/acpi/wakeup
If only GPP8 is enabled, then this guide should work as written.
If only GPP0 is enabled, replace "GPP8" with "GPP0" in the file you create below.
If both GPP0 and GPP8 are enabled, uncomment the line as noted in the callout below.
If neither are enabled, then you're dealing with something outside of what this guide will cover.
Alright, let's keep going...
sudo touch /etc/systemd/system/gpp-disable.servicesudo nano /etc/systemd/system/gpp-disable.service
[Service]
#ExecStart=/bin/sh -c '/bin/echo GPP0 > /proc/acpi/wakeup'
ExecStart=/bin/sh -c '/bin/echo GPP8 > /proc/acpi/wakeup'
Type=oneshot
[Install]
WantedBy=multi-user.targetContents of /etc/systemd/system/gpp-disable.service
Once you're done, to exit Nano, hit Ctrl-X, and then y to save the file.
Now, to enable these changes, enter these commands:
sudo systemctl daemon-reloadsudo systemctl enable --now gpp-disable.service
Reboot your Bazzite PC. Now, fire up the command line again, and check the output after running cat /proc/acpi/wakeup
If everything worked correctly, GPP0 and GPP8 should both show as disabled.