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.
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.
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.
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".
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.
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.