Intel WiFi 6 AX200 not working on Ubuntu 16.04

According to Intel, Intel® Wi-Fi 6 AX200 160MHz device is only guaranteed to work with the kernel version 5.1+. (For your information, it works on Ubuntu 18.04.4 LTS with kernel version 5.3.0-28.)

What I want to achieve

However, I need to get Intel Wi-Fi 6 AX200 working on Ubuntu 16.04.6 LTS with kernel version 4.15.0-88. (The reason is that I need CUDA 10 Toolkit, and the highest version of kernel supported by CUDA 10, as of this post, is 4.15 according to NVIDIA.)

Is there any way to get this work in Ubuntu 16.04.6 with kernel 4.15?

What I tried

  • I tried copying the firmware, by following this, but no differnce:

    git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
    cd linux-firmware
    cp iwlwifi-*.ucode /lib/firmware
    
  • I tried installing the backport driver by following this guide but it gives the following error:

    git clone https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git
    cd backport-iwlwifi
    make defconfig-iwlwifi-public
    sed -i 's/CPTCFG_IWLMVM_VENDOR_CMDS=y/# CPTCFG_IWLMVM_VENDOR_CMDS is not set/' .config
    make -j4
    sudo make install
    ...
    ...
    At main.c:160:
    - SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
    - SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178
    sign-file: certs/signing_key.pem: No such file or directory
    ...
    
    

    The Wifi does get detected after reboot. However, Ubuntu freezes just right after trying to connect.

    Here are some of the information.

    user@laptop:~$ sudo modprobe iwlwifi
    
    user@laptop:~$ modinfo iwlwifi | grep file
    filename:       /lib/modules/4.15.0-91-generic/updates/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
    parm:           nvm_file:NVM file name (charp)
    
    user@laptop:~$ dmesg | grep iwl
    [    4.857473] Loading modules backported from iwlwifi
    [    4.857474] iwlwifi-stack-public:master:8324:9176b151
    [    4.931567] iwlwifi 0000:04:00.0: enabling device (0000 -> 0002)
    [    4.938095] iwlwifi 0000:04:00.0: Direct firmware load for iwl-dbg-cfg.ini failed with error -2
    [    4.938218] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-55.ucode failed with error -2
    [    4.938328] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-54.ucode failed with error -2
    [    4.938555] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-53.ucode failed with error -2
    [    4.938567] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-52.ucode failed with error -2
    [    4.938577] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-51.ucode failed with error -2
    [    4.940246] iwlwifi 0000:04:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 58.3.35.22
    [    4.940249] iwlwifi 0000:04:00.0: Found debug destination: EXTERNAL_DRAM
    [    4.940251] iwlwifi 0000:04:00.0: Found debug configuration: 0
    [    4.940498] iwlwifi 0000:04:00.0: loaded firmware version 50.3e391d3e.0 cc-a0-50.ucode op_mode iwlmvm
    [    4.940511] iwlwifi 0000:04:00.0: Direct firmware load for iwl-debug-yoyo.bin failed with error -2
    [    4.958898] iwlwifi 0000:04:00.0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340
    [    5.128296] iwlwifi 0000:04:00.0: base HW address: 50:eb:71:74:fc:52
    [    5.216966] iwlwifi 0000:04:00.0 wlp4s0: renamed from wlan0
    [    7.615869] iwlwifi 0000:04:00.0: BIOS contains WGDS but no WRDS
    
    user@laptop:~$ rfkill list all
    0: hci0: Bluetooth
        Soft blocked: yes
        Hard blocked: no
    1: phy0: Wireless LAN
        Soft blocked: nob
        Hard blocked: no
    
    user@laptop:~$ cat /var/log/syslog | grep -e iwl -e wlp
    Mar 19 21:55:26 laptop kernel: [    4.089819] Loading modules backported from iwlwifi
    Mar 19 21:55:26 laptop kernel: [    4.089820] iwlwifi-stack-public:master:8324:9176b151
    Mar 19 21:55:26 laptop kernel: [    4.120067] iwlwifi 0000:04:00.0: enabling device (0000 -> 0002)
    Mar 19 21:55:26 laptop kernel: [    4.127062] iwlwifi 0000:04:00.0: Direct firmware load for iwl-dbg-cfg.ini failed with error -2
    Mar 19 21:55:26 laptop kernel: [    4.127308] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-55.ucode failed with error -2
    Mar 19 21:55:26 laptop kernel: [    4.128596] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-54.ucode failed with error -2
    Mar 19 21:55:26 laptop kernel: [    4.128618] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-53.ucode failed with error -2
    Mar 19 21:55:26 laptop kernel: [    4.129199] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-52.ucode failed with error -2
    Mar 19 21:55:26 laptop kernel: [    4.129220] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-51.ucode failed with error -2
    Mar 19 21:55:26 laptop kernel: [    4.129318] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-50.ucode failed with error -2
    Mar 19 21:55:26 laptop kernel: [    4.129334] iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-cc-a0-49.ucode failed with error -2
    Mar 19 21:55:26 laptop kernel: [    4.131300] iwlwifi 0000:04:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 43.2.23.17
    Mar 19 21:55:26 laptop kernel: [    4.131308] iwlwifi 0000:04:00.0: Found debug destination: EXTERNAL_DRAM
    Mar 19 21:55:26 laptop kernel: [    4.131311] iwlwifi 0000:04:00.0: Found debug configuration: 0
    Mar 19 21:55:26 laptop kernel: [    4.131728] iwlwifi 0000:04:00.0: loaded firmware version 48.4fa0041f.0 cc-a0-48.ucode op_mode iwlmvm
    Mar 19 21:55:26 laptop kernel: [    4.131751] iwlwifi 0000:04:00.0: Direct firmware load for iwl-debug-yoyo.bin failed with error -2
    Mar 19 21:55:26 laptop kernel: [    4.174508] iwlwifi 0000:04:00.0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340
    Mar 19 21:55:26 laptop kernel: [    4.186490] iwlwifi 0000:04:00.0: Applying debug destination EXTERNAL_DRAM
    Mar 19 21:55:26 laptop kernel: [    4.187531] iwlwifi 0000:04:00.0: Allocated 0x00400000 bytes for firmware monitor.
    Mar 19 21:55:26 laptop kernel: [    4.344711] iwlwifi 0000:04:00.0: base HW address: 50:eb:71:74:fc:52
    Mar 19 21:55:26 laptop kernel: [    4.360401] iwlwifi 0000:04:00.0 wlp4s0: renamed from wlan0
    Mar 19 21:55:26 laptop NetworkManager[1003]: <info>  [1584629726.7886] rfkill1: found WiFi radio killswitch (at /sys/devices/pci0000:00/0000:00:1d.5/0000:04:00.0/ieee80211/phy0/rfkill1) (driver iwlwifi)
    Mar 19 21:55:26 laptop NetworkManager[1003]: <info>  [1584629726.8192] devices added (path: /sys/devices/pci0000:00/0000:00:1d.5/0000:04:00.0/net/wlp4s0, iface: wlp4s0)
    Mar 19 21:55:26 laptop NetworkManager[1003]: <info>  [1584629726.8192] device added (path: /sys/devices/pci0000:00/0000:00:1d.5/0000:04:00.0/net/wlp4s0, iface: wlp4s0): no ifupdown configuration found.
    Mar 19 21:55:26 laptop NetworkManager[1003]: <info>  [1584629726.8499] (wlp4s0): using nl80211 for WiFi device control
    Mar 19 21:55:26 laptop NetworkManager[1003]: <info>  [1584629726.8512] device (wlp4s0): driver supports Access Point (AP) mode
    Mar 19 21:55:26 laptop NetworkManager[1003]: <info>  [1584629726.8523] manager: (wlp4s0): new 802.11 WiFi device (/org/freedesktop/NetworkManager/Devices/0)
    Mar 19 21:55:26 laptop NetworkManager[1003]: <info>  [1584629726.8535] device (wlp4s0): state change: unmanaged -> unavailable (reason 'managed') [10 20 2]
    Mar 19 21:55:26 laptop kernel: [    4.780946] IPv6: ADDRCONF(NETDEV_UP): wlp4s0: link is not ready
    Mar 19 21:55:26 laptop kernel: [    4.792594] iwlwifi 0000:04:00.0: Applying debug destination EXTERNAL_DRAM
    Mar 19 21:55:27 laptop kernel: [    4.942557] iwlwifi 0000:04:00.0: FW already configured (0) - re-configuring
    Mar 19 21:55:27 laptop kernel: [    4.948463] iwlwifi 0000:04:00.0: BIOS contains WGDS but no WRDS
    Mar 19 21:55:27 laptop kernel: [    4.950788] IPv6: ADDRCONF(NETDEV_UP): wlp4s0: link is not ready
    Mar 19 21:55:27 laptop NetworkManager[1003]: <info>  [1584629727.1088] device (wlp4s0): supplicant interface state: init -> starting
    Mar 19 21:55:27 laptop wpa_supplicant[1193]: Could not read interface p2p-dev-wlp4s0 flags: No such device
    Mar 19 21:55:27 laptop NetworkManager[1003]: <info>  [1584629727.1881] device (wlp4s0): supplicant interface state: starting -> ready
    Mar 19 21:55:27 laptop NetworkManager[1003]: <info>  [1584629727.1882] device (wlp4s0): state change: unavailable -> disconnected (reason 'supplicant-available') [20 30 42]
    Mar 19 21:55:27 laptop kernel: [    5.115444] IPv6: ADDRCONF(NETDEV_UP): wlp4s0: link is not ready
    Mar 19 21:55:30 laptop NetworkManager[1003]: <info>  [1584629730.4391] device (wlp4s0): supplicant interface state: ready -> inactive
    Mar 19 21:55:52 laptop NetworkManager[1003]: <info>  [1584629752.8460] device (wlp4s0): Activation: starting connection 'AndroidAPA24A' (fbf53422-d295-49ed-b45c-6c5383cb931c)
    Binary file (standard input) matches
    

Notes

  • In a similar post, the provided answer is to upgrade the kernel to 5.1+, which doesn't meet the requirement in my case.

Solution 1:

I have completely no idea how this repository is different from the official backport driver from Intel. But it does work on my laptop.

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