No wifi after hibernate or suspend


I have this issue since a few updates. My wifi card is not recognized after a hibernate or suspend.
I have no dual boot (only garuda), I did not update my bios. I have no idea how to fix it aside from a complete reboot which is a huge pain.

I have a huge stacktrace in the dmesg.

  Kernel: 6.1.4-zen2-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=0516cc77-cb27-4964-8ac0-ccdb9cfccc68 rw [email protected]
    resume_offset=29140226 quiet splash mem_sleep_default=deep
    rd.udev.log_priority=3 vt.global_cursor_default=0 loglevel=3 ibt=off
  Desktop: KDE Plasma v: 5.26.5 tk: Qt v: 5.15.8 info: latte-dock
    wm: kwin_wayland vt: 2 dm: SDDM Distro: Garuda Linux base: Arch Linux
  Type: Laptop System: Framework product: Laptop v: AB
    serial: <superuser required>
  Mobo: Framework model: FRANBMCP0B v: AB serial: <superuser required>
    UEFI: INSYDE v: 03.07 date: 12/14/2021
  ID-1: BAT1 charge: 27.2 Wh (51.5%) condition: 52.8/55.0 Wh (96.1%)
    volts: 15.3 min: 15.4 model: NVT Framewo type: Li-ion serial: <filter>
    status: discharging
  Info: model: 11th Gen Intel Core i7-1165G7 bits: 64 type: MT MCP
    arch: Tiger Lake gen: core 11 level: v4 note: check built: 2020
    process: Intel 10nm family: 6 model-id: 0x8C (140) stepping: 1
    microcode: 0xA6
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache:
    L1: 320 KiB desc: d-4x48 KiB; i-4x32 KiB L2: 5 MiB desc: 4x1.2 MiB
    L3: 12 MiB desc: 1x12 MiB
  Speed (MHz): avg: 2127 high: 2800 min/max: 400/4700 scaling:
    driver: intel_pstate governor: powersave cores: 1: 799 2: 2800 3: 1217
    4: 2800 5: 2800 6: 1001 7: 2800 8: 2800 bogomips: 44851
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities: <filter>
  Device-1: Intel TigerLake-LP GT2 [Iris Xe Graphics] driver: i915 v: kernel
    arch: Gen-12.1 process: Intel 10nm built: 2020-21 ports: active: eDP-1
    empty: DP-1, DP-2, DP-3, DP-4 bus-ID: 00:02.0 chip-ID: 8086:9a49
    class-ID: 0300
  Display: wayland server: v: with: Xwayland v: 22.1.7
    compositor: kwin_wayland driver: X: loaded: modesetting
    alternate: fbdev,intel,vesa dri: iris gpu: i915 display-ID: 0
  Monitor-1: eDP-1 res: 2256x1504 size: N/A modes: N/A
  API: OpenGL v: 4.6 Mesa 22.3.2 renderer: Mesa Intel Xe Graphics (TGL GT2)
    direct render: Yes
  Device-1: Intel Tiger Lake-LP Smart Sound Audio driver: snd_hda_intel
    v: kernel alternate: snd_sof_pci_intel_tgl bus-ID: 00:1f.3
    chip-ID: 8086:a0c8 class-ID: 0403
  Sound API: ALSA v: k6.1.4-zen2-1-zen running: yes
  Sound Server-1: PulseAudio v: 16.1 running: no
  Sound Server-2: PipeWire v: 0.3.63 running: yes
  Device-1: Intel Wi-Fi 6 AX210/AX211/AX411 160MHz driver: iwlwifi v: kernel
    pcie: gen: 2 speed: 5 GT/s lanes: 1 bus-ID: aa:00.0 chip-ID: 8086:2725
    class-ID: 0280
  IF: wlp170s0 state: up mac: <filter>
  Device-1: Intel AX210 Bluetooth type: USB driver: btusb v: 0.8
    bus-ID: 3-10:4 chip-ID: 8087:0032 class-ID: e001
  Report: bt-adapter ID: hci0 rfk-id: 0 state: up address: <filter>
  Local Storage: total: 465.76 GiB used: 198.74 GiB (42.7%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
    model: WDS500G1X0E-00AFY0 size: 465.76 GiB block-size: physical: 512 B
    logical: 512 B speed: 63.2 Gb/s lanes: 4 type: SSD serial: <filter>
    rev: 614600WD temp: 33.9 C scheme: GPT
  ID-1: / raw-size: 465.46 GiB size: 465.46 GiB (100.00%)
    used: 198.74 GiB (42.7%) fs: btrfs dev: /dev/dm-0 maj-min: 254:0
    mapped: luks-a8f9f78c-37f2-44e1-af31-1aaa655af8d6
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 752 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 465.46 GiB size: 465.46 GiB (100.00%)
    used: 198.74 GiB (42.7%) fs: btrfs dev: /dev/dm-0 maj-min: 254:0
    mapped: luks-a8f9f78c-37f2-44e1-af31-1aaa655af8d6
  ID-4: /var/log raw-size: 465.46 GiB size: 465.46 GiB (100.00%)
    used: 198.74 GiB (42.7%) fs: btrfs dev: /dev/dm-0 maj-min: 254:0
    mapped: luks-a8f9f78c-37f2-44e1-af31-1aaa655af8d6
  ID-5: /var/tmp raw-size: 465.46 GiB size: 465.46 GiB (100.00%)
    used: 198.74 GiB (42.7%) fs: btrfs dev: /dev/dm-0 maj-min: 254:0
    mapped: luks-a8f9f78c-37f2-44e1-af31-1aaa655af8d6
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 31.14 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
  ID-2: swap-2 type: file size: 32 GiB used: 0 KiB (0.0%) priority: -2
    file: /var/swap/swapfile
  System Temperatures: cpu: 40.0 C mobo: N/A
  Fan Speeds (RPM): N/A
  Processes: 318 Uptime: 15m wakeups: 1 Memory: 31.14 GiB
  used: 7.26 GiB (23.3%) Init: systemd v: 252 default: graphical
  tool: systemctl Compilers: gcc: 12.2.0 clang: 14.0.6 Packages: pm: pacman
  pkgs: 1459 libs: 331 tools: octopi,paru Shell: fish v: 3.5.1 default: Bash
  v: 5.1.16 running-in: kitty inxi: 3.3.24
Garuda (2.6.14-1):
  System install date:     2022-06-19
  Last full system update: 2023-01-12 ↻
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager mkinitcpio
  Windows dual boot:       No/Undetected
  Failed units:            

any idea ?

There are a few possibly related recent kernel bug. Only e.g.:

You may want to try switching to the linux-lts kernel.


As already mentioned the legitimate fix is try a different kernel to correct this. The other most frequent remedy is to either change the suspend state settings in your bios, or update your bios to a newer version, (if available).

The next option that is more of a workaround rather than a fix is to write a custom service to correct this. Normally I would simply link to one of the many of my services I'd written for users to correct this in the past. Unfortunately, this documentation was all archived on another Arch derivative distros old forum and they recently killed off this important source of information. That is why I will no longer post any links to the Manjaro forum. They have a bad habit of regularly depracating all the knowledge stored in their forum's information archive. I also discourage others from posting links to the Manjaro forum as well, as it only leads to dead links on our forum where the thread becomes useless once the link is down.

I am currently only on my cell. If you can't correct your issue via a kernel or bios change I will search my saved files for a service that may fix your issue. Writing a new service is not that difficult, but I'm not going to attempt that on my Cel phone at the moment.


I would be happy to write a service or a script, if I could find a way to actually reset the wifi card, but I have no idea how to do that. No combination of rmmod / modprobe / systemctl restart NetworkManager.service worked.

Maybe this, changing the driver and interface names of course?


Most of the services I've written for this work by unloading the driver, bringing down the network card, and disabling network manager prior to suspension. The service then reactivates all the components after resuming from suspend.

1 Like

Disabling the Intel iwlwifi driver is a little more complicated than most wifi drivers. I have a dedicated line of code for that:

lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod

You would also have to change your wifi device from wlp3s0 to wlp170s0 in the service @filo linked.


I've done that (without the fancy grep), but loading the module back with modprobe iwlwifi does not change anything. I can see the module is loaded in the dmesg log, but nothing more happens, even after a NetworkManager restart.

Is your bluetooth also not working after resuming?

If BT is affected as well, then you should try disabling BT in the service as well.

I have responded to thousands of networking help requests. The one thing this experience teaches you, is that unless irrefutable evidence of all steps taken is presented... it never happened. I hate to be so skeptical, but I have wasted far too much time in the past taking users statements about what they have done in the way of troubleshooting as the gospel truth.

How did you do this? Was it done manually by issuing terminal commands? If so, where is the copy of all inputs and outputs issued from the terminal?

Or, was this done automatically via a service you wrote?

If so, where is the documentation of the service you wrote? We need to see a copy of the services contents to be sure there is no errors.

Not to harp, but again. Where is the terminal output of the services status? How do we even know the service was enabled properly and ran correctly without a status report?

We require hard evidence to be able to troubleshoot effectively from half way around the globe. We are not there looking over your shoulder to verify that all steps were executed correctly. The only way we can verify this is by getting it in black and white before our own eyes. Sorry if I'm coming off as rude, but without properly documented feedback, troubleshooting remotely is next to impossible.

Statements such as "It didn't work" just doesn't cut it. We need textual confirmation on all steps taken during remote troubleshooting sessions. Without it we are simply pointlessly blundering around in the dark.


Is your bluetooth also not working after resuming?

Nope, it's working perfectly. My Bluetooth mouse hand headset are not impacted. I've tried disabling/enabling Bluetooth through the kde widget, I could probably tried harder with some rfkill.

How did you do this? Was it done manually by issuing terminal commands? If so, where is the copy of all inputs and outputs issued from the terminal?

through terminal commands, before writing a service, I would tried to make it work "manually".

Combing my shell history I have done.

sudo modprobe -r iwlmvm cfg80211 mac80211 iwlwifi
sudo systemctl stop NetworkManager.service
sudo modprobe -r iwlmvm cfg80211 mac80211 iwlwifi
sudo systemctl start NetworkManager.service

Plus some logout/login from my session, hopefully to reset plasma, but no changes.

The modules load (show up in lsmod), but ip link, rfkill, hwinfo nor garuda-inxi show my wifi device / interface, unless I reboot.

I dit not write a service, never said so, only acknowledge the idea from here that it could be an automatically applied workaround, if and only if I could find said workaround.

I have provided the dmesg.log post resume from suspend/hibernate, and my inxi info. What else do you need, I would be happy to provide it to you.

LKML: Thomas Witt: Re: [Bug 216877] New: Regression in PCI powermanagement breaks resume after suspend really looks like my issue, I'll wait and hope that next kernel kernel will fix it.

That's exactly:



While those steps are usually sufficient, in my services I usually add many more steps to insure things work properly.

In addition I usually lower the network adapter for extra insurance before suspending. You have also either edited your inputs, or you missed the modprobing step before restarting network manager. Instead of modprobe iwlwifi you have done modprobe -r twice, This is obviously incorrect. We need unedited inputs and outputs of all terminal commands run to get the full picture of what is going on.

In addition to testing the LTS kernel, I would highly suggest testing linux-mainline & linux-hardened.

Sometimes changing your sleep state settings in your bios can help, but newer computers often have limited options for this. If your bios is not of the most recent version then it should be updated.


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.