I updated the bios but still no luck, so I tried a manual procedure as described at [1]: I ran a recent live linux distro from a USB key and confirmed that interrupt remapping was disabled by default due to this BIOS bug. I then figured out the IOMMU and SMBus addresses using the described procedure and managed to get the live linux to boot with interrupt remapping and virtualization enabled as reported by dmesg.
I tried the same ivrs_ioapic mapping procedure for the Qubes installer, but it still raises that dialog saying no interrupt remapping, AMD-Vi, etc. Running dmesg in the Qubes installer console reports only that IOMMUv2 is not available, which the live linux also reported, but no other errors. The dmesg output is a little different though, so perhaps I missed something.
Any suggestions on what to do next?
[1] https://superuser.com/questions/1052023/ioapic0-not-in-ivrs-table
I just tried again passing in iommu=debug and loglvl=all as described at [1], and xl dmesg just reports:
(Xen) IVHD Error: Invalid IO-APIC 0
(Xen) AMD-Vi: Error initialization
(Xen) I/O virtualization disabled
No further information as to what's causing the issue seems to be available. I checked the xl dmesg also for a boot without explicitly passing in ivrs_ioapic and this output looks the same, so perhaps my explicit settings are ignored.
If that's the case, then I already know my BIOS doesn't provide the proper mappings which is why I try to do so explicitly. That might explain why virtualization appears disabled. If anyone knows this for sure and knows how I can specify the IOMMU/SMBus mappings explicitly, I'd appreciate it!
Sandro
What boot parameters did you add? I have the earlier rev.1 Sabertooth 990FX mobo that you have.
I'm not sure there's much advantage in sticking to Qubes without the hardware acceleration over a Linux distro I'm more familiar with that has virtualization working. I can just use accelerated VirtualBox instead of accepting the PV overheads for the workflows I have in mind, but I'd definitely like to use Qubes if I can get this working.
Sandro
If not, thanks for the suggestions everyone!
Sandro
[1] https://en.wikipedia.org/wiki/List_of_IOMMU-supporting_hardware#Motherboards_2
My mobo is rev.2, firmware 2901
I used (ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.2). I am not using anymore and my qubes 4.0 is working fine.
But ubuntu forum has a solved solution with different ioapic:
Quick solution for Sabertooth 990FX (R1.0):
Edit file /etc/default/grub, find line "GRUB_CMDLINE_LINUX_DEFAULT=", edit it to look like:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.1"
There are iommu info here too:
from Xen https://wiki.xen.org/wiki/VTd_HowTo
If you can not solve the iommu problem, change all vms to PV. Maybe this is the cause of libxenlight error. Change all vms to PV, including sys-net.
Later I will send you the commands to start networking.
My cpu is a AMD 1100T and PVH is not much more fast then PV.
If you want to test it without iommu:
Change the VMs to PV, including sys-net and sys-firewall (qvm-prefs yourvmname virt_mode PV)
Using sys-firewall terminal do:
sudo cp /etc/resolv2.conf /etc/resolv.conf (resolv2.conf has your preferred nameservers)
ping -c 2 10.137.0.8 (to create vif interface)
sudo ip link set vif3.0 up
sudo ip addr add 10.137.0.4//255.255.255.255 dev vif3.0
sudo ip route add 10.137.0.8/255.255.255.255 dev vif3.0
- Save the commands above in /rw/config/rc.local and make it executable (chmod +x /rw/config/rc.local):
Using sys-net terminal do:
Save then in /rw/config/rc.local and make it executable:
ip link set vif2.0 up
ip addr add 10.137.0.3/255.255.255.255 dev vif2.0
ip route add 10.137.0.4 dev vif2.0
It should works.