Ubuntu WiFi – How to Fix WiFi Suddenly Stopped Working on Ubuntu 18.04

iwlwifinetworkingUbuntu

I'm using a Ubuntu Budgie 18.04. I've been using it for a year without any problems, but suddenly the wifi stopped working, and in the network settings, I get the message "No Wifi Adapter Found".

The result of the iwconfig command is

enp59s0   no wireless extensions.

lo        no wireless extensions.

and the result of the lspci command tells me that I have a network controller: Intel Corporation Wireless-AC 9560[Jefferson Peak] (rev 10).

I tried some solutions I found but it doesn't work. Please, help me!

Update:

  • ifconfig output:
enp59s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.189.125.212  netmask 255.255.0.0  broadcast 10.189.255.255
        inet6 fe80::a47c:fa2:5210:181e  prefixlen 64  scopeid 0x20<link>
        ether 54:bf:64:37:5d:ac  txqueuelen 1000  (Ethernet)
        RX packets 126268  bytes 160092432 (160.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 47855  bytes 6451226 (6.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 17  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 988  bytes 97858 (97.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 988  bytes 97858 (97.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • iw list output:
    NOTHING
  • lshw -c network output:
*-network                 
       description: Network controller
       product: Wireless-AC 9560 [Jefferson Peak]
       vendor: Intel Corporation
       physical id: 14.3
       bus info: pci@0000:00:14.3
       version: 10
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix bus_master cap_list
       configuration: driver=iwlwifi latency=0
       resources: irq:16 memory:ed31c000-ed31ffff
  *-network
       description: Ethernet interface
       product: Killer E2400 Gigabit Ethernet Controller
       vendor: Qualcomm Atheros
       physical id: 0
       bus info: pci@0000:3b:00.0
       logical name: enp59s0
       version: 10
       serial: 54:bf:64:37:5d:ac
       size: 1Gbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi msix bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=alx duplex=full ip=10.189.125.212 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
       resources: irq:17 memory:ed200000-ed23ffff ioport:3000(size=128)
  • lsmod | grep iwlw output:
iwlwifi               286720  1 iwlmvm
cfg80211              622592  4 wl,iwlmvm,iwlwifi,mac80211
  • rfkill list output:
0: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
  • dmesg | grep iwl output
[    3.234002] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[    3.252973] iwlwifi 0000:00:14.3: loaded firmware version 34.3125811985.0 op_mode iwlmvm
[    3.314535] iwlwifi 0000:00:14.3: Detected Intel(R) Dual Band Wireless AC 9560, REV=0x318
[    3.360663] iwlwifi 0000:00:14.3: Microcode SW error detected. Restarting 0x0.
[    3.360668] iwlwifi 0000:00:14.3: Not valid error log pointer 0x00000000 for Init uCode
[    3.360825] iwlwifi 0000:00:14.3: SecBoot CPU1 Status: 0x3, CPU2 Status: 0x2459
[    3.360827] iwlwifi 0000:00:14.3: Failed to start INIT ucode: -5
[    3.372999] iwlwifi 0000:00:14.3: Failed to run INIT ucode: -5
  • sudo dmesg | grep iwl output after executing sudo rmmod iwlmvm && sudo modprobe iwlmvm:
[    3.255919] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[    3.273432] iwlwifi 0000:00:14.3: loaded firmware version 34.3125811985.0 op_mode iwlmvm
[    3.340146] iwlwifi 0000:00:14.3: Detected Intel(R) Dual Band Wireless AC 9560, REV=0x318
[    3.393635] iwlwifi 0000:00:14.3: base HW address: 34:e1:2d:c7:37:15
[    3.473579] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
[    3.534582] iwlwifi 0000:00:14.3 wlp0s20f3: renamed from wlan0
[    6.643197] iwlwifi 0000:00:14.3: BIOS contains WGDS but no WRDS
[  989.877842] iwlwifi 0000:00:14.3: Detected Intel(R) Dual Band Wireless AC 9560, REV=0x318
[  989.934163] iwlwifi 0000:00:14.3: base HW address: 34:e1:2d:c7:37:15
[  990.001012] ieee80211 phy1: Selected rate control algorithm 'iwl-mvm-rs'
[  990.010264] iwlwifi 0000:00:14.3 wlp0s20f3: renamed from wlan0
[  990.250978] iwlwifi 0000:00:14.3: BIOS contains WGDS but no WRDS

Best Answer

Per request, here is the solution to fixing the Failed to start INIT ucode: -5 issue

Solution

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

  2. Once inside your Linux distro (and this is a good situation where using root account is actually appropriate), first ascertain if your kernel can see your wireless controller.

This first one will tell you whether the wireless card/controller can be seen as a device at all by your kernel (even if the driver initialization fails)

lshw -c network

While this one will tell you whether the system actually initialized it as a wireless device.

iw list

Now, in the case of OP the first command did show the Intel AC 9560, while the second command had a null output, telling us that the kernel a) can see the card but b) fails to initialize it. This tells us that the problem is more than likely related to the module/driver of the card

Just to be safe all run

sudo rfkill list

and make sure your wifi device is unblocked or just execute

sudo rfkill unblock all

to be sure that everything radio related is unblocked.

  1. If you have disabled SecureBoot in your BIOS, yet for some reason your wifi is still not loaded correctly on reboot you can then run:

    sudo rmmod iwlmvm && sudo modprobe iwlmvm
    

and the kernel will reload the module and initialize it properly, and from then on it will work on every subsequent reboot. Why it often doesn't work right away upon the first reboot is a mystery to me, because as far as I know and have been taught, modules get freshly loaded upon every boot. It is also possible that simply rebooting twice might produce the same outcome as executing the above command.

  1. Once you have a stable internet connection, update your kernel headers and microcode packages.
Related Question