Unable to install NIC driver for Intel X710-DA2



  • Hi,

    I am unable to install the NIC driver for Intel X710-DA2, which I assigned as a PCIe device for SR-IOV, on pfSense (v 2.3.4) VM on ESXi 6.0. After downloading the driver from Intel's website and doing the "make install" as per the README file, I got this error "try setting compiler-type". I tried installing gcc, but still wasn't able to install the driver. Please help me.

    Thanks.


  • Netgate Administrator

    Are you running 2.3.4 or 2.3.4_1?

    Try a 2.4 snapshot to get the newest available drivers. Or upgrade to that.

    You cannot build those drivers on pfSense, it has none of the build tools required. If you really needed to you must build the kernel modules in the equivalent FreeBSD version and copy them across. But you don't need to do that, just try 2.4.

    What actual error are you seeing though?

    Steve



  • What version of pfSense has the drivers for X710-DA2 built in? I have the same issue. Cannot get 2.3.4-RELEASE-p1 to recognize the cards.

    I did the following to cpmpile:

    1. Build a VM on FreeBSD
    2. Downloaded the source files to the VM
    3. Downloaded the Intel driver source files
    4. Compiled as directed
    5. Copied the if_ix.ko file over to pfSense /boot/kernel
    6. Added the load line to the loader.conf file

    When the machine reboots, I see it trying to load the driver. The NICs are never recognized.

    Any help would be appreciated.

    Thanks!


  • Netgate Administrator

    It doesn't seem like an ix card, it should surely be ixl, or ixvl if it's virtualised.

    What does it report the PCI vendor and device IDs as? Try running:

    pciconf -lv
    

    Check for devices without a driver attached, noneX, that are class network. It's easy enough to check that against the driver.

    Steve



  • Hi Steve,

    I see the following on pciconf -lv

    none2@pci0:11:0:0:      class=0x020000 card=0x00008086 chip=0x154c8086 rev=0x01 hdr=0x00
        vendor    = 'Intel Corporation'
        device    = 'XL710/X710 Virtual Function'
        class      = network
        subclass  = ethernet
    none3@pci0:19:0:0:      class=0x020000 card=0x00008086 chip=0x154c8086 rev=0x01 hdr=0x00
        vendor    = 'Intel Corporation'
        device    = 'XL710/X710 Virtual Function'
        class      = network
        subclass  = ethernet

    I can see that X710 is present here without a driver.

    I have also set the Compiler type in /etc/src.conf after which I did not get the previous error "Try setting COMPILER_TYPE".

    However, now I got a new error: "Unable to locate kernel source tree, Set SYSDIR to override"

    Please guide me in installing the necessary drivers for X710 on pfSense 2.3.4

    Thanks



  • Update:

    I see the exact same issues in pfSense 2.4 version which I downloaded from here

    https://snapshots.pfsense.org/amd64/pfSense_RELENG_2_4_0/installer/

    The same error related to compiler crops up on doing make install of the driver:
    "make: "/usr/share/mk/bsd.compiler.mk" line 39: Unable to determine compiler type for cc.  Consider setting COMPILER_TYPE."

    I have seen in other threads in the forum that people have installed this driver before. Can someone please help me?



  • I can see the if_ixv.ko binary file in /boot/kernel, but still I cannot get the interface to show up in ifconfig. Any help is deeply appreciated.


  • Netgate Administrator

    Krishna,

    That device should be loaded by the ixlv driver that is included;
    https://github.com/pfsense/FreeBSD-src/blob/devel/sys/dev/ixl/i40e_devids.h

    Do you see it trying to load at boot? There is probably an error message if so.

    If you're building a newer driver you MUST do it in FreeBSD, you cannot build modules in pfSense.

    Steve



  • Steve,

    I don't see it loading at the boot time (things move pretty fast there, still with my best effort, I couldn't see that). But as I said, I can see a ixv.ko module in /boot/kernel.


  • Netgate Administrator

    Please attach the boot log for us to review: /var/log/dmesg.boot

    If it has just booted that will be in the system log which you can view anyway in Status > System logs.

    Steve



  • I have the latest 3.4 release. I installed the GBICs and rebooted. I still don't see the interfaces. I know the Interfaces work in these machines as I had them working with Vyos.

    pciconf -lv
    
    

    Does not show the device in the pci device listings. I even removed one of the Broadcom 4 ports NICs thinking that there was an IRQ Resource issue. Not the case.

    I then moved the 10 GB card to the other PCI slot and rebooted. Once that was done, The card was recognized and both ports show up:

    ixl0@pci0:8:0:0:        class=0x020000 card=0x00078086 chip=0x15728086 rev=0x01 hdr=0x00
        vendor    = 'Intel Corporation'
        device    = 'Ethernet Controller X710 for 10GbE SFP+'
        class      = network
        subclass  = ethernet
    ixl1@pci0:8:0:1:        class=0x020000 card=0x00008086 chip=0x15728086 rev=0x01 hdr=0x00
        vendor    = 'Intel Corporation'
        device    = 'Ethernet Controller X710 for 10GbE SFP+'
        class      = network
        subclass  = ethernet

    So the drivers work but there is something about one of the PCI slots that I don't understand.



  • I also installed on another host with 2.3.4 and the card in the other slot. The card was immediately recognized.

    Very strange.



  • Hi NoMofd,

    Do you mean changing the device slot and rebooting solved your problem even in 2.3.4 release?

    I have Intel X710-DA2 CNA 10G NIC, which I have configured for SR-IOV on ESXi 6.0 and have assigned it as a PCIe device to pfSense. The devices don't show up as interface because of missing drivers. How were you able to install the drivers in pfSense 2.3.4 given that they don't come by default in 2.3.4?

    It would be of great help if you could let me know.

    Thanks



  • I cannot explain why but changing the slot in which the card was installed and installing the current version of 2.3 showed the card as working with both NICs visible.

    That is all I know. Wish I had more insight.

    Just reporting the facts


  • Netgate Administrator

    I think you're seeing different issues here.

    @Krishna; we need to see a boot log to see any errors generated since your card is detected and had a PCIID that should be used by ixlv.

    Steve



  • Hi Steve..

    Attached is the dmesg.boot file. Please review.

    Thanks
    Krishna

    dmesg.txt


  • Netgate Administrator

    Ok, so the correct driver is trying to load for the card and failing:

    ixlv0: <intel(r) ethernet="" connection="" xl710="" x722="" vf="" driver,="" version="" -="" 1.4.6-k=""> mem 0xebaf0000-0xebafffff,0xebaec000-0xebaeffff at device 0.0 on pci4
    ixlv0: PF API 1.1 / VF API 1.1
    ixlv0: VSIs 1, QPs 4, MSIX 5, RSS sizes: key 52 lut 64
    ixlv0: Unable to allocate bus resource: AQ interrupt
    device_attach: ixlv0 attach returned 6</intel(r)>
    

    It's unable to hook to the Admin Queue which is how it communicates with the host device for some reason.

    That doesn't appear to be a common error. Do you have an interface options in the hypervisor that might relate to that?

    Steve



  • Hi Steve,

    I have assigned this device as a PCIe device after enabling SR-IOV at the hardware (globally, in boot menu) and also at the hypervisor (as in enabling the max_vfs for the device). Do you think this is the reason?

    Thanks,
    Krishna


  • Netgate Administrator

    Hard to say what the reason is right now. That driver is not the newest but if there was a known issue with it I would expect to see bug reports….

    There is a slightly newer version available from Intel. Or a significantly newer version in FreeBSD 11.1.

    You can try importing 1.4.12 into pfSense.

    A better test might be to try loading a FreeBSD 11.1 iso which has 1.7.12.

    Steve


Log in to reply