[SOLVED] Pci passthrough: No IOMMU detected

fcymk2

Member
Sep 7, 2019
27
3
23
40
I installed proxmox on a debian buster mathine.
I add config from the wiki, `https://pve.proxmox.com/wiki/Pci_passthrough#Intel_CPU`
but Pci passthrough can't work
```
add pci devices:
No IOMMU detected, please activate it.See Documentation for further information.

```
I modify the `GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"`,

modify /etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

add `options vfio_iommu_type1 allow_unsafe_interrupts=1` in /etc/modprobe.d/pcie.con

dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
[ 0.027146] DMAR: IOMMU enabled

lsmod | grep kvm
kvm_intel 249856 0
kvm 655360 1 kvm_intel
irqbypass 16384 2 vfio_pci,kvm

Is there anything I missed? My Cpu is I5-7400
 
Check the BIOS/UEFI settings - sometimes IOMMU needs to be activated there (look for VT-d, ACS, ARI, virtualization,....)

also check the documentation of the mainboard and the chipset - this also needs support for IOMMU

I hope this helps!
 
Check the BIOS/UEFI settings - sometimes IOMMU needs to be activated there (look for VT-d, ACS, ARI, virtualization,....)

also check the documentation of the mainboard and the chipset - this also needs support for IOMMU

I hope this helps!

Check also your CPU. SOme ar not compatible ( pentium g3258 for example :( )
 
Check the BIOS/UEFI settings - sometimes IOMMU needs to be activated there (look for VT-d, ACS, ARI, virtualization,....)

also check the documentation of the mainboard and the chipset - this also needs support for IOMMU

I hope this helps!

I had open VT option in bios, and I test it use securable, vt is opened.

securable.jpg


mainboard and the chipset is H110, is this support IOMMU? Is there any way to test this?
```
dmidecode |grep -A16 "System Information$"
System Information
Manufacturer: TSINGHUA TONGFANG COMPUTER
Product Name: X850
Version:
Serial Number:
UUID:
Wake-up Type: Power Switch
SKU Number:
Family: JingRui

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: 1D05870D
Product Name: H110-4S REV2.0
Version: Rev 1.01
Serial Number:
Asset Tag: Default string
```
 
Last edited:
  • Like
Reactions: bramol
I don't know securable - but anyways - the VT option in the bios might be related to vtx and not vt-d (the flag you need for IOMMU)
Check our reference documentation on PCI(e) passthrough and the requirements section - maybe it contains the necessary pointers:
https://pve.proxmox.com/pve-docs/chapter-qm.html#qm_pci_passthrough

My BIOS only have VT options @_@
I test by this https://stackoverflow.com/questions...ed-without-having-to-reboot-in-linux/11118147

```
sudo modprobe msr
sudo rdmsr 0x3a
Values 3 and 5 mean it's activated.
```

My test result is 5.

```
sudo apt-get update
sudo apt-get install cpu-checker
sudo kvm-ok
```
INFO: /dev/kvm exists
KVM acceleration can be used

According to the test from the stackoverflow post, my vt-x is opened.

I will try to reinstall a new debian, and install pve on it...
 
Last edited:
that vt-x is enabled, should be clear (otherwise you would have a problem starting a qemu guest with KVM acceleration) - your question is relating to
IOMMU groups and PCI(e) passthrough which in intel terms (mostly) is referred to as vt-d

follow the guide from our reference documentation and paste the output of the various check commands
 
that vt-x is enabled, should be clear (otherwise you would have a problem starting a qemu guest with KVM acceleration) - your question is relating to
IOMMU groups and PCI(e) passthrough which in intel terms (mostly) is referred to as vt-d

follow the guide from our reference documentation and paste the output of the various check commands
I reinstall proxmox-ve_6.1-2.iso, not install on debian. but it can't passthrough also.

output of the various check commands:

root@pve:~# dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
[ 0.026627] DMAR: IOMMU enabled

root@pve:~# # find /sys/kernel/iommu_groups/ -type l
nothing, is this mean no vt-d?

attach file is full dmesg output
 

Attachments

Last edited:
root@pve:~# # find /sys/kernel/iommu_groups/ -type l
nothing, is this mean no vt-d?
Usually yes - it means that iommu is not enabled working.

Since your CPU (I5-7400) and the chipset (H110) (if i read that correctly) do support vt-d - maybe ask the manufacturer of the computer for a BIOS update or instructions how to enable that..
 
I just added a GPU to my Proliant server and got the same error, I have Intel(R) Xeon(R) CPU E5520, the BIOS for Xeon is far from as easy as "normal" BIOS/UEFI. Ill try to boot into BIOS and see if I can change it.
 
I have Gigabyte H110-2SH with F20 bios and Intel i5-7400T which i can't get it working.
The other system Gigabyte H110N-WIFI with 22E BIOS and Intel i5-6500T also can't get it to work
I will share my BIOS setting later on, but any help or suggestions in advance would be great!
 
i have solved this problem in my case from my vmware -> turning off my proxmox vm -> select the proxmox vm -> VM -> settings -> processors -> enable the engine virtualization options.
and don't forget to go to your vm and install the vm tools from VM option on vmware.
You are running Proxmox and VMWare together?