I've tried this but I still get a freeze on exit from sleep (you left out the "fi" part of your script btw). I created for the external build module: cat /usr/lib/systemd/system-sleep/suspend_rtw8723de #!/bin/sh if [ "${1}" == "pre" ]; then modprobe -rv rtw_8723de elif [ "${1}" == "post" ]; then modprobe -v rtw_8723de fi and for the kernel's driver: cat /usr/lib/systemd/system-sleep/suspend_rtw88_8723de #!/bin/sh if [ "${1}" == "pre" ]; then modprobe -rv rtw88_8723de elif [ "${1}" == "post" ]; then modprobe -v rtw88_8723de fi I've made /etc/modprobe files for both flavors as well. That's step one, step two is to make the module load as if I had booted to runlevel 1 and then executed init 5 to bring up the gui and I can rattle along until something happens to either the hp's bios or the kernel to reverse whatever brought this on. With the 6.0 kernels I was experiencing spurious wifi disabling and blue tooth enabling on exit from sleep. Then the 6.1.0 kernel caused a lockup as the gui was about to start. The 6.1.1 kernel made things worse in that I can only boot as far as the wifi start stage. It's also possible that my bios was updated by windows 10 and brought on the problem. How can I get logs of the process when it fails? I'm a bit confused by the difference between logs generated by journalctl, /var/log/ Can you see anything wrong with what I have done?