Ubuntu – WiFi suddenly stopped working on Ubuntu 18

iwlwifinetworkingUbuntu

My Situation is exactly equal to OP's from this question (except for the exact hardware configuration; I can add some more details if needed), but the answer that fixed the issue there didn't work for me. In particular, the output to sudo dmesg |grep iwl is practically the same, i.e.

[    3.252011] iwlwifi 0000:00:14.3: loaded firmware version 34.3125811985.0 op_mode iwlmvm
[    3.299337] iwlwifi 0000:00:14.3: Detected Intel(R) Dual Band Wireless AC 9560, REV=0x318
[    3.343796] iwlwifi 0000:00:14.3: Microcode SW error detected. Restarting 0x0.
[    3.343813] iwlwifi 0000:00:14.3: Not valid error log pointer 0x00000000 for Init uCode
[    3.343932] iwlwifi 0000:00:14.3: SecBoot CPU1 Status: 0x3, CPU2 Status: 0x2458
[    3.343933] iwlwifi 0000:00:14.3: Failed to start INIT ucode: -5
[    3.356889] iwlwifi 0000:00:14.3: Failed to run INIT ucode: -5

However, there, the issue was resolved by the combination

sudo rmmod iwlmvm && sudo modprobe iwlmvm

When I execute this, the output of sudo dmesg |grep iwl just adds a few lines indicating more that isn't working:

[    3.252011] iwlwifi 0000:00:14.3: loaded firmware version 34.3125811985.0 op_mode iwlmvm
[    3.299337] iwlwifi 0000:00:14.3: Detected Intel(R) Dual Band Wireless AC 9560, REV=0x318
[    3.343796] iwlwifi 0000:00:14.3: Microcode SW error detected. Restarting 0x0.
[    3.343813] iwlwifi 0000:00:14.3: Not valid error log pointer 0x00000000 for Init uCode
[    3.343932] iwlwifi 0000:00:14.3: SecBoot CPU1 Status: 0x3, CPU2 Status: 0x2458
[    3.343933] iwlwifi 0000:00:14.3: Failed to start INIT ucode: -5
[    3.356889] iwlwifi 0000:00:14.3: Failed to run INIT ucode: -5
[  214.811314] iwlwifi 0000:00:14.3: Detected Intel(R) Dual Band Wireless AC 9560, REV=0x318
[  214.856704] iwlwifi 0000:00:14.3: Microcode SW error detected. Restarting 0x0.
[  214.856720] iwlwifi 0000:00:14.3: Not valid error log pointer 0x00000000 for Init uCode
[  214.856868] iwlwifi 0000:00:14.3: SecBoot CPU1 Status: 0x3, CPU2 Status: 0x2458
[  214.856877] iwlwifi 0000:00:14.3: Failed to start INIT ucode: -5
[  214.869585] iwlwifi 0000:00:14.3: Failed to run INIT ucode: -5

The output to iw list is also, still, nothing.

I also did (prior to following above linked answer)

sudo apt-get install --reinstall bcmwl-kernel-source

which also didn't help and might have been a mistake.

Any further help is very much appreciated!

EDIT: For some reason WiFi works again, I don't know why. I did two things (in this order):

  • I booted in Windows (to check whether WiFi works there; it does)
  • I connected and then disconnected to a VPN-service
  • I ran sudo ifup -a as suggested in the comments

Unfortunately I didn't check whether it worked in between the two steps, so I don't know what helped (I don't know why the first or second step should, but who knows?). It was not the reboot alone, I did that multiple times during the process.
Thanks a lot to everybody who participated in finding the solution!

Best Answer

I am the author of the linked [solution post] up top.

The fix sudo rmmod iwlmvm && sudo modprobe iwlmvm only becomes possible once you disable SecureBoot (this was mentioned in the initial comments followed by bolded disclaimer reiterating the necessity of this approach)

The disabling of the SecureBoot is the most fundamental step, as it is preventing the loading of corresponding drivers for your wifi.

[From my previous post] First, before you even move onto any steps having anything to do with the Linux kernel itself, make sure you have SecureBoot disabled in your BIOS. While SecureBoot was meant to be a security feature ensuring that all drivers are properly signed , from what I have seen this causes more problems than it solves in Linux kernel, especially when network and graphics drivers are concerned. This will more often than not, be the key to solving this issue and your wifi driver will be loaded properly upon reboot.

  1. Reboot into BIOS, disable SecureBoot, then reboot
  2. Once system is back up, execute the above
    sudo rmmod iwlmvm && sudo modprobe iwlmvm
    
    command
  3. Reboot, and in my original post, rebooting twice happened to be necessary (perhaps using sudo init 6 could accomplish this in one reboot, or even allowing the machine to sit completely powered off for some time).
Related Question