Intel Wi-fi 6 AX200 adapter not found on Ubuntu 20.04

The wifi settings page complained that no wifi adapter can be found. here's some relevant information

lshw -C network

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

lspci -knn | grep Net; rfkill list

04:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200 [8086:2723] (rev 1a)
0: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no

i also tried to follow the instructions on this page https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi/core_release and also downloaded the firmware file from here https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi and copied it over to /lib/firmware

i also tried to boot in insecure mode but doesnt work either.

FYI, my kernel version is 5.4.0-42-generic and I'm running only ubuntu 20.04 on my PC (not dual-booting)

Does anyone know of a solution to this problem?


Solution 1:

I had the same issue with AX200 (rev1a). I have a dual-boot (Windows 10, Ubuntu) and I turned both Fast Boot and Secure Boot in BIOS off, but the Wi-Fi still didn't work. After running the command:

sudo dmesg | grep iwl

I saw an error:

failed with error -110

And I found in a conversation, that I need turn off Fast Boot in Windows too.

It helped me. It was a lot of time.

Solution 2:

I had the same thing and tried a lot of different fixes. What i think fixed it was updating my kernel.

wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
chmod a+x ubuntu-mainline-kernel.sh
sudo ./ubuntu-mainline-kernel.sh

I restarted the PC and it didnt initially work so i turned the machine off. When i turned it back on in the morning, the wifi was back!

Im now running the following kernel and the wifi seems to be reliable.

#~ uname -r
5.8.0-050800-generic

The error i was getting was something about failing to load the module -110. Now i get the following:

#~ sudo dmesg | grep iwl                                                                                                                        
[    4.603886] iwlwifi 0000:52:00.0: enabling device (0000 -> 0002)
[    4.616449] iwlwifi 0000:52:00.0: Direct firmware load for iwlwifi-cc-a0-56.ucode failed with error -2
[    4.616872] iwlwifi 0000:52:00.0: Direct firmware load for iwlwifi-cc-a0-55.ucode failed with error -2
[    4.616974] iwlwifi 0000:52:00.0: Direct firmware load for iwlwifi-cc-a0-54.ucode failed with error -2
[    4.617037] iwlwifi 0000:52:00.0: Direct firmware load for iwlwifi-cc-a0-53.ucode failed with error -2
[    4.617393] iwlwifi 0000:52:00.0: Direct firmware load for iwlwifi-cc-a0-52.ucode failed with error -2
[    4.617447] iwlwifi 0000:52:00.0: Direct firmware load for iwlwifi-cc-a0-51.ucode failed with error -2
[    4.617503] iwlwifi 0000:52:00.0: Direct firmware load for iwlwifi-cc-a0-50.ucode failed with error -2
[    4.617559] iwlwifi 0000:52:00.0: Direct firmware load for iwlwifi-cc-a0-49.ucode failed with error -2
[    4.620011] iwlwifi 0000:52:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 43.2.23.17
[    4.620022] iwlwifi 0000:52:00.0: Found debug destination: EXTERNAL_DRAM
[    4.620027] iwlwifi 0000:52:00.0: Found debug configuration: 0
[    4.620484] iwlwifi 0000:52:00.0: loaded firmware version 48.4fa0041f.0 cc-a0-48.ucode op_mode iwlmvm
[    4.620500] iwlwifi 0000:52:00.0: Direct firmware load for iwl-debug-yoyo.bin failed with error -2
[    4.636288] iwlwifi 0000:52:00.0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340
[    4.658356] iwlwifi 0000:52:00.0: Applying debug destination EXTERNAL_DRAM
[    4.658499] iwlwifi 0000:52:00.0: Allocated 0x00400000 bytes for firmware monitor.
[    4.826168] iwlwifi 0000:52:00.0: base HW address: a8:7e:ea:6c:93:f5
[    5.128612] iwlwifi 0000:52:00.0 wlp82s0: renamed from wlan0
[    7.117844] iwlwifi 0000:52:00.0: Applying debug destination EXTERNAL_DRAM
[    7.285828] iwlwifi 0000:52:00.0: FW already configured (0) - re-configuring

Some of the other things i tried were making sure i didnt have the hardware switch on and removing/reloading the kernel module:

sudo rmmod iwlmvm
sudo rmmod iwlwifi
sudo rfkill unblock all
sudo modprobe iwlwifi
sudo modprobe iwlmvm

I tried installing the driver direct from intel - https://www.intel.co.uk/content/www/uk/en/support/articles/000005511/network-and-i-o/wireless-networking.html But that didnt seem to work.

I tried installing the backports as well but again, that didnt seem to work for me.

sudo apt install backport-iwlwifi-dkms

In my /lib/firmware, i have a lot of iwlwifi ucode files now....

#~ ls *iwl
iwlwifi-1000-5.ucode   iwlwifi-3168-22.ucode    iwlwifi-7260-16.ucode   iwlwifi-7265D-16.ucode  iwlwifi-8265-22.ucode              iwlwifi-9260-th-b0-jf-b0-43.ucode
iwlwifi-100-5.ucode    iwlwifi-3168-27.ucode    iwlwifi-7260-17.ucode   iwlwifi-7265D-17.ucode  iwlwifi-8265-27.ucode              iwlwifi-9260-th-b0-jf-b0-46.ucode
iwlwifi-105-6.ucode    iwlwifi-3168-29.ucode    iwlwifi-7260-7.ucode    iwlwifi-7265D-21.ucode  iwlwifi-8265-31.ucode              iwlwifi-cc-a0-46.ucode
iwlwifi-135-6.ucode    iwlwifi-3945-2.ucode     iwlwifi-7260-8.ucode    iwlwifi-7265D-22.ucode  iwlwifi-8265-34.ucode              iwlwifi-cc-a0-48.ucode
iwlwifi-2000-6.ucode   iwlwifi-4965-2.ucode     iwlwifi-7260-9.ucode    iwlwifi-7265D-27.ucode  iwlwifi-8265-36.ucode              iwlwifi-Qu-b0-hr-b0-48.ucode
iwlwifi-2030-6.ucode   iwlwifi-5000-5.ucode     iwlwifi-7265-10.ucode   iwlwifi-7265D-29.ucode  iwlwifi-9000-pu-b0-jf-b0-33.ucode  iwlwifi-Qu-b0-jf-b0-48.ucode
iwlwifi-3160-10.ucode  iwlwifi-5150-2.ucode     iwlwifi-7265-12.ucode   iwlwifi-8000C-13.ucode  iwlwifi-9000-pu-b0-jf-b0-34.ucode  iwlwifi-Qu-c0-hr-b0-48.ucode
iwlwifi-3160-12.ucode  iwlwifi-6000-4.ucode     iwlwifi-7265-13.ucode   iwlwifi-8000C-16.ucode  iwlwifi-9000-pu-b0-jf-b0-38.ucode  iwlwifi-Qu-c0-jf-b0-48.ucode
iwlwifi-3160-13.ucode  iwlwifi-6000g2a-5.ucode  iwlwifi-7265-16.ucode   iwlwifi-8000C-21.ucode  iwlwifi-9000-pu-b0-jf-b0-41.ucode  iwlwifi-QuZ-a0-hr-b0-48.ucode
iwlwifi-3160-16.ucode  iwlwifi-6000g2a-6.ucode  iwlwifi-7265-17.ucode   iwlwifi-8000C-22.ucode  iwlwifi-9000-pu-b0-jf-b0-43.ucode  iwlwifi-QuZ-a0-jf-b0-48.ucode
iwlwifi-3160-17.ucode  iwlwifi-6000g2b-6.ucode  iwlwifi-7265-8.ucode    iwlwifi-8000C-27.ucode  iwlwifi-9000-pu-b0-jf-b0-46.ucode
iwlwifi-3160-7.ucode   iwlwifi-6050-5.ucode     iwlwifi-7265-9.ucode    iwlwifi-8000C-31.ucode  iwlwifi-9260-th-b0-jf-b0-33.ucode
iwlwifi-3160-8.ucode   iwlwifi-7260-10.ucode    iwlwifi-7265D-10.ucode  iwlwifi-8000C-34.ucode  iwlwifi-9260-th-b0-jf-b0-34.ucode
iwlwifi-3160-9.ucode   iwlwifi-7260-12.ucode    iwlwifi-7265D-12.ucode  iwlwifi-8000C-36.ucode  iwlwifi-9260-th-b0-jf-b0-38.ucode
iwlwifi-3168-21.ucode  iwlwifi-7260-13.ucode    iwlwifi-7265D-13.ucode  iwlwifi-8265-21.ucode   iwlwifi-9260-th-b0-jf-b0-41.ucode

So if updating the kernel driver dosent work, try those other things.

I found that when i updated my kernel driver, i had to switch my nvidia graphics to the open source driver as well as the kernel update seemed to break the graphics so that i couldnt connect external monitors. I did this through the UI by selecting Additional Drivers -> Using NVIDIA driver metapackage from nvidia-driver-450 (open source)

(Previously it was on 440-proprietary)

Solution 3:

You can update the intel backports and wifi driver using this. It will update the kernel needed for the wifi driver. It worked for me

sudo add-apt-repository ppa:canonical-hwe-team/backport-iwlwifi
sudo apt-get update
sudo apt-get install backport-iwlwifi-dkms