I solved the first real problem I’ve had with my hardware/OS combo
Trying to use sleep had issues – first the wireless adapter putting the device to sleep, then the video card failing to resume
First lets fix the mt7925e wireless adapter by using modprobe
mt7925e wireless adapter
Single-file solution: one sleep hook script (pre + post)
Create the file:
sudo nano /lib/systemd/system-sleep/mt7925e-wifiPaste this:
#!/bin/sh
# Unload/reload MediaTek mt7925e around suspend/hibernate to avoid PM timeout (-110)
case "$1" in
pre)
# Optional but helps the unload succeed cleanly
systemctl stop NetworkManager 2>/dev/null || true
# Unload wifi module (ignore errors if already unloaded)
/usr/sbin/modprobe -r mt7925e 2>/dev/null || true
;;
post)
# Reload wifi module
/usr/sbin/modprobe mt7925e 2>/dev/null || true
# Bring networking back
systemctl start NetworkManager 2>/dev/null || true
;;
esac
exit 0Make it executable:
sudo chmod +x /lib/systemd/system-sleep/mt7925e-wifiThat’s it — no systemctl enable needed. systemd automatically runs it on suspend/resume and hibernate/resume.
NVIDIA resume
Enable VRAM preservation (common “black screen on resume” fix)
Create:
sudo nano /etc/modprobe.d/nvidia-s2idle.confAdd:
options nvidia NVreg_PreserveVideoMemoryAllocations=1
options nvidia NVreg_TemporaryFilePath=/var/tmpThen rebuild initramfs and reboot:
sudo update-initramfs -u
sudo rebootDone! Hopefully your sleep issues are resolved.
Edit: 2025-1-5
Welp, that didn’t get the job done.
Put it to sleep last night and when I tried to boot it up today I couldn’t. Power LED was still breathing, but nothing caused it to resume. Hard shutdown and reboot
journalctl showed a couple different things mucking up
Disable hibernate attempts and keep pure suspend
sudo mkdir -p /etc/systemd/sleep.conf.d
sudo tee /etc/systemd/sleep.conf.d/00-no-hibernate.conf >/dev/null <<'EOF'
[Sleep]
AllowHibernation=no
AllowSuspendThenHibernate=no
EOF
sudo systemctl daemon-reloadFix the AMDGPU soft lockups
Add this kernel parameter (start conservative):
- Edit
/etc/default/grub, add toGRUB_CMDLINE_LINUX_DEFAULT:
amdgpu.dcdebugmask=0x10- Apply + reboot:
sudo update-grub
sudo rebootThis is a widely-used workaround for laptop-panel PSR/idle issues in amdgpu’s DC path.
If you still hit lockups after long uptime, escalate to:
amdgpu.dcdebugmask=0x12Alright. Hope that solves it! We’ll leave it sleep overnight again and see what happens. If you don’t see any updates after this, I’ve solved it, or disabled sleep entirely
Update:
Two days later and no errors resuming from sleep so far!