vboxpci: IOMMU not found (not registered)
As a passing curiosity with the new office desktop motherboard, an Asus Z170-K, I wondered if the system supported PCI pass-through. A little digging revealed that such support existed. Yet when I probed my Slackware 14.2 64-bit system I saw the following:
dmesg | grep -i mmu DMAR-IR: IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1 vboxpci: IOMMU not found (not registered)
A quick web search led me to a discussion with a person posting the same question with the same motherboard.
I jotted some notes and rebooted the computer. In the BIOS/EFI I modified the following:
Advanced -> Platform Misc Configuration PCI Express Native Power Management -> Enabled Native ASPM -> Enabled
As I was using VirtualBox, I had already enabled the following:
Advanced -> CPU Configuration Intel Virtualization Technology -> Enabled Advanced -> System Agent (SA) Configuration VT-d -> Enabled
Still no change in the dmesg
output. Next I modified the GRUB configuration by adding intel_iommu=on
.
After booting the system I saw the following output:
dmesg | grep -i mmu [ 0.000000] DMAR: IOMMU enabled [ 0.048548] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1 [ 0.420298] iommu: Adding device 0000:00:00.0 to group 0 [ 0.420306] iommu: Adding device 0000:00:02.0 to group 1 [ 0.420314] iommu: Adding device 0000:00:14.0 to group 2 [ 0.420322] iommu: Adding device 0000:00:16.0 to group 3 [ 0.420329] iommu: Adding device 0000:00:17.0 to group 4 [ 0.420339] iommu: Adding device 0000:00:1b.0 to group 5 [ 0.420356] iommu: Adding device 0000:00:1c.0 to group 6 [ 0.420366] iommu: Adding device 0000:00:1c.2 to group 6 [ 0.420375] iommu: Adding device 0000:00:1c.3 to group 6 [ 0.420385] iommu: Adding device 0000:00:1d.0 to group 7 [ 0.420435] iommu: Adding device 0000:00:1f.0 to group 8 [ 0.420442] iommu: Adding device 0000:00:1f.2 to group 8 [ 0.420448] iommu: Adding device 0000:00:1f.3 to group 8 [ 0.420454] iommu: Adding device 0000:00:1f.4 to group 8 [ 0.420460] iommu: Adding device 0000:02:00.0 to group 6 [ 0.420465] iommu: Adding device 0000:03:00.0 to group 6 [ 0.420469] iommu: Adding device 0000:04:00.0 to group 6 [ 0.420474] iommu: Adding device 0000:05:00.0 to group 6 [ 25.101307] vboxpci: IOMMU found
From what I have read thus far, I need to add more modifications. The basic approach is to use lspci
to obtain the bus address. Then use lspci -n | grep ${bus address}
to obtain a stub ID. Something like this:
lspci -n | grep "04:00.0"
Then add that stub ID as a kernel boot parameter or create an /etc/modprobe.d
file.
intel_iommu=on pci-stub.ids=14f1:5b7a
Or
/etc/modprobe.d/vfio.conf options vfio-pci ids=10de:13c2,10de:0fbb
Looks like getting PCI pass-through working involves more, but that is a project for another day.
Posted: Usability Tagged: General
Category:Next: GRUB Disappears With Above 4G Decoding
Previous: Digging Deeper With Server Issues