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.
NO NETWORK.
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!
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. 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 bysys-net
some-name=$(some-command)
stores the output ofsome-command
in a variable namedsome-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, pluspci=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. 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! 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.
Cheers!
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.