passing through nics to pfsense


dgs2001

Recommended Posts

Hi All,

 

Whilst setting up a pfsense VM I am getting stuck. Once the install is done the VM will not start, it reports the following error -

Quote

"No Interfaces found"

 

Looking at the log I can see the following-

Quote

2019-10-24T10:33:23.264367Z qemu-system-x86_64: vfio-pci: Cannot read device rom at 0000:43:00.0
Device option ROM contents are probably invalid (check dmesg).
Skip option ROM probe with rombar=0, or load from file with romfile=

 

I have had a poke around using my limited skills and discovered the following -

Quote

Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff

 

The hardware in question is an Intel quad port nic card which is passed through IOMMU (vfio-pci.ids=8086:10bc) as so -

Quote

IOMMU group 38:[111d:8018] 42:02.0 PCI bridge: Microsemi / PMC / IDT PES12N3A 12-lane 3-Port PCI Express Switch (rev 0e)

[8086:10bc] 43:00.0 Ethernet controller: Intel Corporation 82571EB/82571GB Gigabit Ethernet Controller (Copper) (rev 06)

[8086:10bc] 43:00.1 Ethernet controller: Intel Corporation 82571EB/82571GB Gigabit Ethernet Controller (Copper) (rev 06)

IOMMU group 39:[111d:8018] 42:04.0 PCI bridge: Microsemi / PMC / IDT PES12N3A 12-lane 3-Port PCI Express Switch (rev 0e)

[8086:10bc] 44:00.0 Ethernet controller: Intel Corporation 82571EB/82571GB Gigabit Ethernet Controller (Copper) (rev 06)

[8086:10bc] 44:00.1 Ethernet controller: Intel Corporation 82571EB/82571GB Gigabit Ethernet Controller (Copper) (rev 06)

 

 

Can somebody please explain how I would pass

Quote

rombar=0

to the VM?

or even pass the option rom file which I have?

 

Thanks

 

Edited by dgs2001
added info
Link to comment
  • 2 months later...
6 minutes ago, bza said:

Hi,

I know that this is an old thread, but did you manage to resolve this problem? I have the exact same card and the same errors are returned and I can't seem to find a solution for this.

Thanks

Alas no I did not.

 

I set up a physical pfSense Box and sorting the virutual machine kind of took a back seat and still has not been sorted!

 

Please let me know if you work it out

 

Thanks

Link to comment

@Actua, thank you for the replay.

I was looking at first at exactly that tutorial the problem is that only one of my ports are detected if I follow those steps, it is something to do with how the card is pass through to the VM.

I have found another post that somehow solves part of my problem.

For a more detailed explanation on what is the problem that we have in fact please what the below tutorial from @SpaceInvaderOne for GPU but the same applies to our problem.

 

But for now only 2 ports are working following those steps, below it is noted how to make all 4 ports be displayed the problems is that only the first 2 are detected the other 2 are displayed in VM(which is an improvement) but no connection is detected on those 2 ports.

I will try to figure out and if I find a solution I will post it.

For now for the first 2 to work and also for the other 2 to be displayed below is the xml configuration.

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x05' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x2'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x06' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x3'/>
    </hostdev>

 

Link to comment
  • 3 months later...
  • 6 months later...

Hi, I had also a lot of problems with the same Intel 4 port card.

 

This is what I did to resolve this after 2 days troubleshooting

1. set the vfio-pci.ids=8086:10bc  

 

image.png.aca5fb31523dfa87f1b21572b60c0f15.png

 

2. Under the VM manager, set VFIO allow unsafe interrupts: YES

image.png.4f6db75afc63baf20eb1c62c5be0f440.png

 

3. In your created pfSense VM set the machine to i440fx-4.2 and your NIC will be available to assign.

image.png.1e8e2605e131b9ae1c6e6ca2e35e4fe2.png

 

Link to comment

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.