No Wi-Fi settings or connection after switching to NVIDIA graphics driver

Ubuntu 20.04

I've tried several answers from other similar questions.

After changing from Nouveau to NVIDIA driver, I now don't have any WiFI settings (no icon in the taskbar, nothing but VPN settings in network settings, no connection).

Switching back to Nouveau doesn't fix it.

My WiFI card is Intel 6 AX200

Out put of lshw -C Network (the WiFI part):

*-network UNCLAIMED
       description: Network controller
       product: Wi-Fi 6 AX200
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:03:00.0
       version: 1a
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix cap_list
       configuration: latency=0
       resources: memory:fc700000-fc703fff

Output of sudo modprobe iwlwifi:

     modprobe: ERROR: ../libkmod/libkmod-module.c:838 kmod_module_insert_module() could not find module by name='iwlwifi'
modprobe: ERROR: could not insert 'iwlwifi': Unknown symbol in module, or unknown parameter (see dmesg)

Seems the driver isn't being picked up(?) though I've manually downloaded it myself to try to fix this and moved it to /lib/firmware and rebooted.

Any ideas?

Output of dpkg -l | egrep -v '^ii|rc':

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
+++-==========================================-=====================================-============-======================================================================================================

Output of dpkg -l | grep linux:

ii  binutils-x86-64-linux-gnu                  2.34-6ubuntu1                         amd64        GNU binary utilities, for x86-64-linux-gnu target
ii  console-setup-linux                        1.194ubuntu3                          all          Linux specific part of console-setup
ii  libselinux1:amd64                          3.0-1build2                           amd64        SELinux runtime shared libraries
ii  libv4l-0:amd64                             1.18.0-2build1                        amd64        Collection of video4linux support libraries
ii  libv4lconvert0:amd64                       1.18.0-2build1                        amd64        Video4linux frame format conversion library
ii  linux-base                                 4.5ubuntu3.1                          all          Linux image base package
ii  linux-firmware                             1.187.2                               all          Firmware for Linux kernel drivers
ii  linux-generic-hwe-20.04                    5.4.0.51.54                           amd64        Complete Generic Linux kernel and headers
ii  linux-headers-5.4.0-42                     5.4.0-42.46                           all          Header files related to Linux kernel version 5.4.0
ii  linux-headers-5.4.0-42-generic             5.4.0-42.46                           amd64        Linux kernel headers for version 5.4.0 on 64 bit x86 SMP
ii  linux-headers-5.4.0-51                     5.4.0-51.56                           all          Header files related to Linux kernel version 5.4.0
ii  linux-headers-5.4.0-51-generic             5.4.0-51.56                           amd64        Linux kernel headers for version 5.4.0 on 64 bit x86 SMP
ii  linux-headers-generic-hwe-20.04            5.4.0.51.54                           amd64        Generic Linux kernel headers
ii  linux-image-5.4.0-42-generic               5.4.0-42.46                           amd64        Signed kernel image generic
ii  linux-image-5.4.0-51-generic               5.4.0-51.56                           amd64        Signed kernel image generic
ii  linux-image-5.4.0-52-generic               5.4.0-52.57                           amd64        Signed kernel image generic
ii  linux-image-generic-hwe-20.04              5.4.0.51.54                           amd64        Generic Linux kernel image
ii  linux-libc-dev:amd64                       5.4.0-51.56                           amd64        Linux Kernel Headers for development
ii  linux-modules-5.4.0-42-generic             5.4.0-42.46                           amd64        Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
ii  linux-modules-5.4.0-51-generic             5.4.0-51.56                           amd64        Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
ii  linux-modules-5.4.0-52-generic             5.4.0-52.57                           amd64        Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
ii  linux-modules-extra-5.4.0-42-generic       5.4.0-42.46                           amd64        Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
ii  linux-modules-extra-5.4.0-51-generic       5.4.0-51.56                           amd64        Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
ii  linux-modules-nvidia-450-5.4.0-52-generic  5.4.0-52.57                           amd64        Linux kernel nvidia modules for version 5.4.0-52
ii  linux-modules-nvidia-450-generic-hwe-20.04 5.4.0-52.57                           amd64        Extra drivers for nvidia-450 for generic-hwe-20.04
ii  linux-sound-base                           1.0.25+dfsg-0ubuntu5                  all          base package for ALSA and OSS sound systems
ii  pptp-linux                                 1.10.0-1build1                        amd64        Point-to-Point Tunneling Protocol (PPTP) Client
ii  python3-selinux                            3.0-1build2                           amd64        Python3 bindings to SELinux shared libraries
ii  syslinux                                   3:6.04~git20190206.bf6db5b4+dfsg1-2   amd64        collection of bootloaders (DOS FAT and NTFS bootloader)
ii  syslinux-common                            3:6.04~git20190206.bf6db5b4+dfsg1-2   all          collection of bootloaders (common)
ii  syslinux-legacy                            2:3.63+dfsg-2ubuntu9                  amd64        Bootloader for Linux/i386 using MS-DOS floppies
ii  util-linux                                 2.34-0.1ubuntu9                       amd64        miscellaneous system utilities

Solution 1:

You need to install linux-modules-extra-5.4.0-52 by

sudo apt install linux-modules-extra-5.4.0-52-generic

It is weird that it didn't install automatically on a kernel upgrade. Probably you've interrupted an upgrade.

Solution 2:

I also faced exact missing iwlwifi issue after installing recommended nvidia drivers using sudo ubuntu-drivers autoinstall. Ubuntu was using my country ppa mirrors which probably were outdated. I fixed this issue by

  1. rebooting to old kernel version using GRUB menu (2nd option)
  2. Switching PPA to global mirrors and reinstalling nvidia drivers using same autoinstall command.
  3. Running sudo apt update && sudo apt upgrade -y to update again to latest kernel
  4. Reboot. At this point GRUB entry pointing to latest kernel should work without any issue.