Tanviper2020 Posted March 10, 2020 Share Posted March 10, 2020 Where to start... I have a 4 port Intel nic that is separated into 2 IOMMU groups: IOMMU group 15: [111d:8018] 07:02.0 PCI bridge: Microsemi / PMC / IDT PES12N3A 12-lane 3-Port PCI Express Switch (rev 0e) [8086:10bc] 08:00.0 Ethernet controller: Intel Corporation 82571EB/82571GB Gigabit Ethernet Controller (Copper) (rev 06) [8086:10bc] 08:00.1 Ethernet controller: Intel Corporation 82571EB/82571GB Gigabit Ethernet Controller (Copper) (rev 06) IOMMU group 16: [111d:8018] 07:04.0 PCI bridge: Microsemi / PMC / IDT PES12N3A 12-lane 3-Port PCI Express Switch (rev 0e) [8086:10bc] 09:00.0 Ethernet controller: Intel Corporation 82571EB/82571GB Gigabit Ethernet Controller (Copper) (rev 06) [8086:10bc] 09:00.1 Ethernet controller: Intel Corporation 82571EB/82571GB Gigabit Ethernet Controller (Copper) (rev 06) I have a VM running with OPNSense (20.1) installed, it doesn't see any valid nics when I try and assign a WAN and LAN ports. When I launch the OPNSense VM, I can choose launch the configuration, and get Valid Interfaces are: No interfaces found! On my flash drive (under the Dashboard tab in Unraid), I added the following line under Unraid OS kernel /bzimage append iommu=pt vfio-pci.ids=8086:10bc initrd=/bzroot Here's the form view of the VM with OPNSense: <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm'> <name>OpnSense</name> <uuid>21bad53d-288c-4bc5-e0be-c7507a7e8e16</uuid> <metadata> <vmtemplate xmlns="unraid" name="Linux" icon="Opnsense.png" os="linux"/> </metadata> <memory unit='KiB'>1048576</memory> <currentMemory unit='KiB'>1048576</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>1</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> </cputune> <os> <type arch='x86_64' machine='pc-q35-4.2'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/21bad53d-288c-4bc5-e0be-c7507a7e8e16_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> </features> <cpu mode='host-passthrough' check='none'> <topology sockets='1' cores='1' threads='1'/> </cpu> <clock offset='utc'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/user/domains/OpnSense/vdisk1.img'/> <target dev='hdc' bus='sata'/> <boot order='1'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/opensense/OPNsense-20.1-OpenSSL-dvd-amd64.iso'/> <target dev='hda' bus='usb'/> <readonly/> <boot order='2'/> <address type='usb' bus='0' port='2'/> </disk> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x10'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x11'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0x12'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0x13'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/> </controller> <controller type='pci' index='5' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='5' port='0x14'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/> </controller> <controller type='pci' index='6' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='6' port='0x15'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/> </controller> <controller type='pci' index='7' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='7' port='0x16'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </controller> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <interface type='bridge'> <mac address='52:54:00:8e:aa:30'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x08' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x09' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x09' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </hostdev> <memballoon model='none'/> </devices> </domain> What else do I need to do to get the OPNSense VM to see and use the NIC? My Info tab says this: Model: Custom M/B: ASUSTeK COMPUTER INC. Z97-AR Version Rev 1.xx - s/n: 150442590400757 BIOS: American Megatrends Inc. Version 3503. Dated: 04/18/2018 CPU: Intel® Core™ i5-4690 CPU @ 3.50GHz HVM: Enabled IOMMU: Enabled Cache: 256 KiB, 1024 KiB, 6144 KiB Memory: 16 GiB DDR3 (max. installable capacity 32 GiB) Network: bond0: bond down eth0: 1000 Mbps, full duplex, mtu 1500 Kernel: Linux 4.19.98-Unraid x86_64 OpenSSL: 1.1.1d so I know the hardware pass is enabled. Any advice would be appreciated. thanks! Quote Link to comment
Tanviper Posted March 16, 2020 Share Posted March 16, 2020 (edited) Just to provide an update, this link here got my issues fixed. I got PFSense to work with this video. I haven't tried an Opnsense VM yet, but I'm pretty sure it's the same. tanviper2020 and Tanviper are the same person. I just don't recall what the tanviper2020 password is 😃 Edited March 16, 2020 by Tanviper Quote Link to comment
NostalgicGnome Posted March 18, 2020 Share Posted March 18, 2020 I've been trying to get it to work with OPNsense and I can't seem to make progress. I am trying to pass through an i350-T4. All 4 interfaces are in separate IOMMU groups. I added the vfio-pci.ids entry to my boot config as he did in the video. I tried various versions of q35 (e.g., 4.2, 2.11, 2.9, 2.6 etc.) but nothing seems to work. Every time I boot up the VM it does not detect my NIC. I am not sure what else to do. Quote Link to comment
NostalgicGnome Posted March 18, 2020 Share Posted March 18, 2020 After doing some more research it seems there is a bug with FreeBSD and KVM/libvirt right now that causes issues with Q35. I used i440fx-4.2 and it detected my NICs. Quote Link to comment
mattz Posted July 6, 2020 Share Posted July 6, 2020 On 3/18/2020 at 4:57 PM, NostalgicGnome said: After doing some more research it seems there is a bug with FreeBSD and KVM/libvirt right now that causes issues with Q35. I used i440fx-4.2 and it detected my NICs. Wanted to confirm this. First install of OPNsense (v 20.1 DVD ISO), and I was unable to see the default UnRaid network interface with Q35. Reinstalled with i44fx-4.2 and it worked without a hitch. See the same on the OPNsense forum - https://forum.opnsense.org/index.php?topic=13607.0 I should be getting my quad port NIC this week. Excited to get running. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.