AX200/201 iwlwifi and kernel-latest for sys-net

Hi,

I don’t get the wifi network in my sys-net network applet.

The chipset (PCI 8086:06f0) is rather new and https://linux-hardware.org/index.php?id=pci:8086-06f0&page=4#status says: "The device is supported by kernel versions 5.7 and newer ". Thank you, @ludovic, for your explanations.

Therefore, I would like to use a newer kernel in sys-net.

sys-net currently uses:

[user@sys-net ~]$ uname -r
4.19.155-1.pvops.qubes.x86_64

Dom0 currently uses:

[cubes@dom0 ~]$ uname -r
5.9.14-1.qubes.x86_64

I have read Managing VM kernel | Qubes OS and tried these commands in Dom0 to make 5.9.14-1 available to sys-net:

[cubes@dom0 ~]$ rpm -qa 'kernel-qubes-vm*'
kernel-qubes-vm-4.19.155-1.pvops.qubes.x86_64
kernel-qubes-vm-4.19.94-1.pvops.qubes.x86_64

[cubes@dom0 ~]$ rpm -qa 'kernel-latest*'
kernel-latest-5.9.14-1.qubes.x86_64

[cubes@dom0 ~]$ qvm-prefs -s sys-net kernel 5.9.14-1
qvm-prefs: error: Kernel '5.9.14-1' not installed

The “Advanced” tab of the GUI for sys-net only shows two options:
4.19.155-1
4.19.94-1
How could 5.9.14-1 become available as well?

Thank you for your help!

PS:

[cubes@dom0 ~]$ lspci -s "00:14.3" -vnnn
00:14.3 Network controller [0280]: Intel Corporation Device [8086:06f0]
	Subsystem: Intel Corporation Device [8086:0074]
	Flags: bus master, fast devsel, latency 0, IRQ 16
	Memory at c5414000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel driver in use: pciback
	Kernel modules: iwlwifi


[user@sys-net-huawei ~]$ lspci -s "00:07.0" -vnnn
00:07.0 Network controller [0280]: Intel Corporation Comet Lake PCH CNVi WiFi [8086:06f0]
	Subsystem: Intel Corporation Wi-Fi 6 AX201 160MHz [8086:0074]
	Physical Slot: 7
	Flags: bus master, fast devsel, latency 0, IRQ 5
	Memory at f2028000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
lspci: Unable to load libkmod resources: error -12

I hope the new kernel would help solve this “lspci: Unable to load libkmod resources: error -12” error.

kernel-latest-qubes-vm is what you need.

1 Like

Thanks for your answer, @fieryrajang , I had not properly understood the article.

sys-net unfortunately does not behave better with kernel-latest ( 5.9.14-1.qubes.x86_64) applied (with or without “iwlwifi.disable=rxq_1” ).

I have found this post that says it might work with kernel version 5.8.11-3.

I am quite new to this kind of stuff. So, which commands should I type to download this precise kernel version 5.8.11-3 and apply it to sys-net?

Thanks for your help!

I’ve used that post as my guide to set up WiFi as well for AC9560 and AX200 cards. So I’m not sure what the exact issue you are facing.
5.9.14 should be no different from 5.8.11 in this case.

I’d like to just confirm a few things:
What template is sys-net running on? Fedora32 or Debian10 (or older if using Fedora 30/31 if on 4.0.4). Base template or any additional packages on these?

qvm-prefs sys-net ‘nopat iommu=soft swiotlb=8192 iwlwifi.disable_rxq=1’

Please double check your kernel options as you reversed the equal and underscore.

Also double check kernel is set properly in GUI, Network controller is passed through, and the VM is set to HVM.

Thanks for that, that saved me!
It works now!

Fedora-32.
Debian-10 does not seem to work.

Silly me, that was the problem! Thanks for noticing and writing back!!

1 Like

For the record, here is a summary to make the AX201 wifi card (8086:06f0) work:

  1. Download kernel-latest

    Dom0: sudo qubes-dom0-update kernel-latest

    Maybe not necessary but if you need kernel-latest to make to wifi card work, there are chances that you need it in Dom0 to make the rest of your (recent) hardware work as well.

  2. Download package to make kernel-latest available to AppVMs:

    Dom0: sudo qubes-dom0-update kernel-latest-qubes-vm

  3. Stop sys-net

  4. (Setting a Fedora template might be needed, not sure)

  5. Update kernel for sys-net:

    Qube Manager → sys-net → Advanced tab → kernel → Select kernel-latest

  6. Set the right kernel options for sys-net:

    Dom0:

    opt=$(qvm-prefs --get sys-net kernelopts)
    qvm-prefs --set sys-net kernelopts "$opt iwlwifi.disable_rxq=1"
    
  7. Start sys-net. Wifi should now be available.

Hope this will help someone!

3 Likes

Glad to hear you’re sorted out :slight_smile:

For debian-10 you need to enable buster backports and then install firmware-iwlwifi for it to work.

You can also download the kernel-latest-qubes-vm package from Index of /qubes/repo/yum/ and put on a USB. so after installation but before reboot, swap to TTY2 and mount USB to /mnt/sysimage/mnt

chroot /mnt/sysimage/
cd /mnt
rpm -ivh --nodeps kernel-latest-qubes-vm

then swap back to TTY6 and hit the GUI reboot button to continue setup of QubesOS. Note if you setup default VMs as Debian templates in the R4.1 Install, sys-net will still not work due to needing the buster backport firmware so that can be obtained before hand as well.

I like doing this method so I do not need an Ethernet connection and have everything I need to get up and running.

Also note, installing the kernel via this way will set all VM kernels to latest. So once in dom0 I set default back to stable and then change sys-net kernel and opts.

Hi @katiehill ,
thanks for the step-by-step summary.

I think you forgot the end of the above line, if I’m right, please edit your post and fix it.

1 Like

That step isn’t actually needed. Yes you should update your system always, but kernel-latest is not needed for this.

I tried to install firmware-iwlwifi and… No wifi section available in the network manager applet.

The more I am on this forum, the more I realize how a newbie I am. A good occasion to learn!

What I did (to be sure I understood your procedure correctly):

  1. In debian-10:

    echo "deb http://ftp.debian.org/debian buster-backports main" | sudo tee /etc/apt/sources.list.d/backports.list`
    sudo apt update
    sudo apt install firmware-iwlwifi
    sudo poweroff
    
  2. Start sys-net with debian-10:

    dpkg -s firmware-iwlwifi gives:

    user@sys-net:~$ dpkg -s firmware-iwlwifi
    Package: firmware-iwlwifi
    Status: install ok installed
    Priority: optional
    Section: non-free/kernel
    Installed-Size: 44028
    Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
    [...]
    

    Looks like iwlwifi is correctly installed.


    sudo dmesg gives:

    [    2.080861] Intel(R) Wireless WiFi driver for Linux
    [    2.081350] xen: --> pirq=16 -> irq=40 (gsi=40)
    [    2.091017] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-56.ucode failed with error -2
    [    2.091050] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-55.ucode failed with error -2
    [    2.091080] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-54.ucode failed with error -2
    [    2.091110] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-53.ucode failed with error -2
    [    2.091143] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-52.ucode failed with error -2
    [    2.091172] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-51.ucode failed with error -2
    [    2.091200] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-50.ucode failed with error -2
    [    2.091229] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-49.ucode failed with error -2
    [    2.091258] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-48.ucode failed with error -2
    [    2.091287] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-47.ucode failed with error -2
    [    2.091315] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-46.ucode failed with error -2
    [    2.091343] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-45.ucode failed with error -2
    [    2.091372] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-44.ucode failed with error -2
    [    2.091401] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-43.ucode failed with error -2
    [    2.091430] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-42.ucode failed with error -2
    [    2.091471] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-41.ucode failed with error -2
    [    2.091506] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-40.ucode failed with error -2
    [    2.091535] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-39.ucode failed with error -2
    [    2.192829] iwlwifi 0000:00:06.0: no suitable firmware found!
    [    2.192843] iwlwifi 0000:00:06.0: minimum version required: iwlwifi-QuZ-a0-hr-b0-39
    [    2.192895] iwlwifi 0000:00:06.0: maximum version supported: iwlwifi-QuZ-a0-hr-b0-56
    [    2.192908] iwlwifi 0000:00:06.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
    

    Did I miss something from your instructions?


I was curious to compare with fedora-32 on sys-net (where wifi works):

sudo dmesg:

    [...]
    [    2.753533] Intel(R) Wireless WiFi driver for Linux
    [    2.757907] xen: --> pirq=16 -> irq=40 (gsi=40)
    [    2.790148] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-QuZ-a0-hr-b0-56.ucode failed with error -2
    [    2.796199] iwlwifi 0000:00:06.0: api flags index 2 larger than supported by driver
    [    2.796225] iwlwifi 0000:00:06.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 65.3.35.22
    [    2.796242] iwlwifi 0000:00:06.0: Found debug destination: EXTERNAL_DRAM
    [    2.796254] iwlwifi 0000:00:06.0: Found debug configuration: 0
    [    2.796498] iwlwifi 0000:00:06.0: loaded firmware version 55.d9698065.0 QuZ-a0-hr-b0-55.ucode op_mode iwlmvm
    [    2.887287] iwlwifi 0000:00:06.0: Detected Intel(R) Wi-Fi 6 AX201 160MHz, REV=0x354
    [    2.975992] usb 1-1: new high-speed USB device number 2 using ehci-pci
    [    3.061454] iwlwifi 0000:00:06.0: base HW address: [redacted]
    [    3.074882] thermal thermal_zone0: failed to read out thermal zone (-61)
    [    3.090925] iwlwifi 0000:00:06.0 wls6f0: renamed from wlan0
    [...]

I don’t see the problem from the logs. Are they clearer to you?

Interesting, I might try an install on a USB stick to test your procedure, practice and simply… learn more!

:+1:

I did. Thanks!

I added a comment in the procedure there above to reflect that point.

Thanks again for all your support and explanations! Much appreciated!!

Hi @katiehill ,

What is the installed version (Version: line of the above command) for this package?

From buster-backports, should be 20200918-1~bpo10+1 (see all available firmware-iwlwifi package versions by repository).

@fieryrajang : what is your firmware-iwlwifi package version? For a reference for @katiehill

From the fedora logs you provided, the successful loaded firmware is 55 :

But the 55 fails from Debian, and I don’t know the reason:

You should explore this way, I think.

Also I see that the last available firmware is 59 iwlwifi-QuZ-a0-hr-b0-59.ucode from linux-firmware.git (Note: I don’t know if a so recent version is useful! It’s just an information).

@katiehill

I added the following line to /etc/sources.list in the templateVM

deb Index of /debian buster-backports main contrib non-free

Continue in TemplateVM:

sudo apt update
sudo apt -t buster-backports install firmware-iwlwifi
modprobe -r iwlwifi
modprobe iwlwifi

Shutdown TemplateVM.
Start sys-net with appropriate kernel & opts, it should show available WiFi networks.

@deeplow Is it possible to change the title of this thread to reflect better for subsequent search help? Or if OP is able to, I am not familiar with discourse.

Perhaps:
AX200/201 iwlwifi and kernel-latest for sys-net

Edit: @ludovic Sorry I didn’t see your mention. It is as you listed.

Section: non-free/kernel
Installed-Size: 87050
Source: firmware-nonfree
Version: 20200918-1~bpo10+1

You nailed it, @ludovic.
Version here is: Version: 20190114-2, which is the version of buster(stable) according to your firmware-iwlwifi link.

From your link and from @fieryrajang 's feedback here below, my package version should be: 20200918-1~bpo10+1: all.

I changed, in debian-10:

  • in the file /etc/apt/sources.list.d/backports.list:
    deb http://ftp.debian.org/debian buster-backports main
    into
    deb https://deb.debian.org/debian buster-backports main contrib non-free
  • sudo apt install firmware-iwlwifi
    into
    sudo apt -t buster-backports install firmware-iwlwifi

and… It worked!
sys-net with debian-10 connects to my wifi!

Thank you so much to both of you, @ludovic and @fieryrajang, for all your help!!

PS:

@deeplow, I tried to change the title of this thread but did not manage to. I think @fieryrajang’s suggestion would be great.
Thanks!

2 Likes

Thank you both! It’s changed now :slight_smile: OP can only edit up to 24h after. But I’m always up to making the titles more adequate. Ping me just like you did, whenever that’s the case :wink: .

1 Like