I decided to repair a dell laptop (Dell XPS 9560) that the screen had gone bad a couple years ago. Was using it as a linux laptop at the time and doing the same again. Decided to do a fresh install and everything seemed to work properly until I unplugged the system and let it sleep. At that point when waking up the system resulted in my inability to connect to wifi, restarting network services would not resovle the issue. Looking at the logs I saw a message related to a deep sleep state s3, so I went to the bios disabled that sleep state and the problem went away, but the issue turned into the battery getting drained while sleeping since it wouldnt enter a deep sleep.
Looking around I found some hacks using sleep scripts that allow for it to work, which essentially unloads and the reloads the intelwifi at sleep and wake times. This is the solution I am currently going with, but it seems like a bit of a hack. Was wondering if there is a better solution that anyone has found, I searched the forums but didnt find much so here I am.
Release info:
# VERSION="20240930"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20240930"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
# CPE 2.3 format, boo#1217921
CPE_NAME="cpe:2.3:o:opensuse:tumbleweed:20240930:*:*:*:*:*:*:*"
#CPE 2.2 format
#CPE_NAME="cpe:/o:opensuse:tumbleweed:20240930"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"
How I resolved the issue. Created a script in /usr/lib/systemd/system-sleep/ called iwifi which contains
#!/bin/sh
case "$1" in
post)
/usr/sbin/modprobe iwlwifi
/usr/sbin/modprobe iwlmvm
;;
pre)
/usr/sbin/rmmod iwlmvm
/usr/sbin/rmmod iwlwifi
;;
esac
As I said this works, but was wondering if there was a better solution to the problem.