I'm working to enable PCI pass through on a fanless PC running an Intel Celeron N3350 CPU.
Intel says VT-d is supported on this processor.
I've enabled all virtualization in the UEFI firmware settings.
I've enabled IOMMU at boot (see below /proc/cmdline)
Still, only one IOMMU group.
I've read through this relevant thread. The thread ends because the OP's CPU does not support VT-d. The N3350 does.
Intel says VT-d is supported on this processor.
I've enabled all virtualization in the UEFI firmware settings.
I've enabled IOMMU at boot (see below /proc/cmdline)
Still, only one IOMMU group.
I've read through this relevant thread. The thread ends because the OP's CPU does not support VT-d. The N3350 does.
Code:
root@appserver:~# dmesg | grep -e DMAR -e IOMMU
[ 0.037102] DMAR: IOMMU enabled
root@appserver:~# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-6.5.11-8-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on
root@appserver:~# lsmod | grep vfio
vfio_pci 16384 0
vfio_pci_core 86016 1 vfio_pci
irqbypass 12288 2 vfio_pci_core,kvm
vfio_iommu_type1 49152 0
vfio 57344 3 vfio_pci_core,vfio_iommu_type1,vfio_pci
iommufd 77824 1 vfio
root@appserver:~# for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nnks "${d##*/}"; done
IOMMU group * 00:00.0 Host bridge [0600]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Host Bridge [8086:5af0] (rev 0b)
Subsystem: Elitegroup Computer Systems Celeron N3350/Pentium N4200/Atom E3900 Series Host Bridge [1019:9cc7]
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 500 [8086:5a85] (rev 0b)
Subsystem: Elitegroup Computer Systems HD Graphics 500 [1019:9cc7]
Kernel driver in use: i915
Kernel modules: i915
00:0f.0 Communication controller [0780]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Trusted Execution Engine [8086:5a9a] (rev 0b)
Subsystem: Elitegroup Computer Systems Celeron N3350/Pentium N4200/Atom E3900 Series Trusted Execution Engine [1019:9cc7]
Kernel driver in use: mei_me
Kernel modules: mei_me
00:12.0 SATA controller [0106]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SATA AHCI Controller [8086:5ae3] (rev 0b)
Subsystem: Elitegroup Computer Systems Celeron N3350/Pentium N4200/Atom E3900 Series SATA AHCI Controller [1019:9cc7]
Kernel driver in use: ahci
Kernel modules: ahci
00:13.0 PCI bridge [0604]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #1 [8086:5ad8] (rev fb)
Subsystem: Elitegroup Computer Systems Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A [1019:9cc7]
Kernel driver in use: pcieport
00:13.1 PCI bridge [0604]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #2 [8086:5ad9] (rev fb)
Subsystem: Elitegroup Computer Systems Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A [1019:9cc7]
Kernel driver in use: pcieport
00:13.2 PCI bridge [0604]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #3 [8086:5ada] (rev fb)
Subsystem: Elitegroup Computer Systems Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A [1019:9cc7]
Kernel driver in use: pcieport
00:15.0 USB controller [0c03]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series USB xHCI [8086:5aa8] (rev 0b)
Subsystem: Elitegroup Computer Systems Celeron N3350/Pentium N4200/Atom E3900 Series USB xHCI [1019:9cc7]
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
00:1c.0 SD Host controller [0805]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series eMMC Controller [8086:5acc] (rev 0b)
Subsystem: Elitegroup Computer Systems Celeron N3350/Pentium N4200/Atom E3900 Series eMMC Controller [1019:9cc7]
Kernel driver in use: sdhci-pci
Kernel modules: sdhci_pci
00:1f.0 ISA bridge [0601]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Low Pin Count Interface [8086:5ae8] (rev 0b)
Subsystem: Elitegroup Computer Systems Celeron N3350/Pentium N4200/Atom E3900 Series Low Pin Count Interface [1019:9cc7]
Kernel driver in use: lpc_ich
Kernel modules: lpc_ich
00:1f.1 SMBus [0c05]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SMBus Controller [8086:5ad4] (rev 0b)
Subsystem: Elitegroup Computer Systems Celeron N3350/Pentium N4200/Atom E3900 Series SMBus Controller [1019:9cc7]
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
01:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Subsystem: Elitegroup Computer Systems RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [1019:9cc7]
Kernel driver in use: r8169
Kernel modules: r8169
02:00.0 Network controller [0280]: Intel Corporation Wireless 3165 [8086:3165] (rev 81)
Subsystem: Intel Corporation Dual Band Wireless AC 3165 [Stone Peak 1x1] [8086:4010]
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Subsystem: Elitegroup Computer Systems RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [1019:9cc7]
Kernel driver in use: r8169
Kernel modules: r8169
root@appserver:~#