4.2-RC4: WiFi stopped working in sys-net

Hello, Apparatus. Thank you for your suggestion. Before I try it, I would like to know, in the case permissive=True does not work, if I can simply revert it and plug any security hole by running the same commands with permissive=False.

You can revert it by running the same commands without permissive option:

qvm-pci detach sys-net dom0:xx_xx.x
qvm-pci attach --persistent sys-net dom0:xx_xx.x

Can you execute the following command in sys-net and share the output: ll /usr/lib/firmware/iwlwifi-*

I confirm. After updates and reboot networking stops working completley. Wi-fi stops working. Ethernet doesnt see any cable “no-carrier”.

Have you tried downgrading the firmware?

Im not sure if its firmware. Tried to boot with another template - debian12, fedora37 - didnt help. Tried to boos QO with previous kernels - didnt help.


On 26 october there was massive dom0 update with a lots of firmware upgrades. Maybe this is the cause? Can i rollback?

I just checked, downgrading the firmware in fedora shows a lot of conflicts so it won’t be easy.
Can you execute the following command in sys-net and paste the output here? ls /usr/lib/firmware/

Why? It’s not related to root filesystem – i used old templates of august and june fedora-37 and debian-12. No difference.
It seems that reason is in dom0 updates

The PCI controller is attached to sys-net, so what updates in dom0 have no impact. The same kind of firmware update is installed in the template too and sys-net uses it. I asked you to do this command to check which ucode version you are using.
If possible, provide your dmesg logs too: sudo dmesg

Try to use permissive=True option or pci=nomsi.


SOLVED. It started to work with permissive=True

Big thanks!

1 Like

Try to use pci=nomsi kernel option, it’s better to use this option instead of permissive=True if it works.

Yes, permissive=True has also restored my WiFi access! Thank you, @apparatus and @DVM, for your help troubleshooting.

Side-note: I’m not thrilled that the temporary solution involved opening new attack surface, and I hope that this can be resolved in the current RC. :crossed_fingers: Have a great day!

Did you try pci=nomsi? It won’t increase attack surface as the permissive flag does.

I would be happy to try using pci=nomsi. Can you please let me know what the full command would look like, and where to run it?

s=$(qvm-prefs -- sys-net kernelopts) && qvm-prefs -- sys-net kernelopts "pci=nomsi $s"


Probably worth explaining:

  • qvm-prefs -- sys-net kernelopts displays the current kernel options used by sys-net
  • some-name=$(some-command) stores the output of some-command in a variable named some-name. The content of that variable can later be recalled as $some-name.
  • && allows to chain two commands. The second will run once the first succeeds.
  • qvm-prefs -- sys-net kernelopts "option1=some-value option2=some-other-value" is different from the first item in this list, because there is a list of options at the end. The command sets those options. (Instead of displaying the current options.)
  • If you followed, the first part of the command did store all the current kernel options in a variable called s, so "pci=nomsi $s" is a clever way to make a list of all the current variables, plus pci=nomsi which is the option you wanted to add.

When you combine everything, what @apparatus suggests is:

Taking all the current options, whatever they are, add pci=nomsi to the list and set that as the new list of kernel options. :slightly_smiling_face: Does that make sense to you @gatocallejero ?

And you run that in a dom0 terminal.


I had to chew on that code for a second, but yes! :sweat_smile: Thank you @apparatus for the code and @gonzalo-bulnes for the qubes-for-dummies explainer.

I revoked permissive=True and put pci=nomsi in its place and yes, my internet is working! Though I wonder if it had something to do with the updates to dom0 in the past two days.


1 Like

Update: I am back to square one with my WiFi card not working, despite granting permissive=True and pci=nomsi. Now, under WiFi Networks in my panel, I see “device not ready” and no networks to connect to.