Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Intel X553 NICs (on C3758 SoC) not detected by pfSense 2.4/2.4.1

    Scheduled Pinned Locked Moved Hardware
    42 Posts 16 Posters 15.6k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ? This user is from outside of this forum
      Guest
      last edited by

      I have a Supermicro 5019A-FTN4 server, which has a A2SDi-8C-HLN4F mainboard with a C3758 SoC. It has 4 GbE ports which are powered by Intel X553 NICs.

      Both the X553 (1 GBit/s) and X557 (10 GbE) ports are still not working yet due to the lag of support for the entire
      C3000 SoC, this ports are integrated in the SoC. If you draw in an Intel i340-T4, or i350-T4 or Intel Pro 1000 PT
      adapter it should run out of the box because these adapters are fully supported.

      I was originally planning to run it as a VM in Proxmox VE but I'm having some issues with throughput in that setup, so I'm trying to narrow down the cause of that issue, which has brought me to attempting to install pfSense bare metal. However, when installing pfSense (I've tried both 2.4 and 2.4.1) on the server, no interfaces are detected.

      Link 1 OpenSSL benchmark
      Link 2 Intel Atom C3958 16-Core Top End Embedded QAT Linux Benchmarks and Review

      From everything I can see, the new FreeBSD 11.0 base in pfSense 2.4+ should support the X553 NICs out of the box. Is that not correct?

      Now we are on FreeBSD 11.1 and there were much things that was fast changing between the version 2.4.0 and
      version 2.4.1 and there fore I personally think this will be not all worked out, and there will be perhaps the primary view
      on at this time as I see it right, and it rumors too that Netgate the company behind pfSense will be launch their own
      C3000 based hardware and due to that date they perhaps are actually working on it and they are not fully finished up
      all things according to that platform.

      I've been attempting to load the drivers into pfSense manually, but I'm not very proficient in FreeBSD so while I could probably succeed at some point, it would take a long time, and given that FreeBSD 11.0 should support the X553 anyways, I'm not even sure that this would fix the issue.

      Fairly said if this will be only an Intel NIC chip that is soldered alone on the board I would say try it out, but while this
      NICs or LAN ports are integrated into that C3000 SoC I will say try it out but on your own risk.

      Does anyone have any tips or suggestions?

      if you are willing to try it out really, install a fresh and fulla FreeBSD 11.1 OS on that system and see what
      is going on then! And then you might be able to get the driver out from there and put it on the pfSense 2.4.1
      system you must install again on that platform (hardware) then you can see what happens really, all other things
      are pure guess work until one of us were just doing and report it!

      1 Reply Last reply Reply Quote 0
      • E Offline
        EditioN
        last edited by

        The driver exists, was just not added in PFSense.
        Working fine in FreeNAS beta, just need to find out how to export the driver…

        https://bugs.freenas.org/issues/26292

        1 Reply Last reply Reply Quote 0
        • E Offline
          EditioN
          last edited by

          Ok, so I finally got it to work but still need to find some better way to do it, limited freebsd knowledge over here.

          I installed freebsd 11.1 RELEASE, same as pfsense 2.4.1, which doesn't have the updated driver (STABLE already includes it).
          Downloaded the 10Gb freebsd driver from intel website:
          https://downloadcenter.intel.com/download/14688/Intel-Network-Adapters-Driver-for-PCIe-10-Gigabit-Network-Connections-Under-FreeBSD-

          Compiled the driver and saved to an usb stick.

          Then installed pfsense 2.4.1, copied the driver to /boot/modules/ but got an error trying to load it

          module_register: cannot register pci/ix from if_ix_updated.ko; already loaded from if_ix.ko
          

          Then I ran

          kldunload /boot/kernel/if_ix.ko
          

          Followed by the load command again

          kldload -v /boot/modules/if_ix_updated.ko
          

          I know this is far from ideal but how can I make this work in boot?

          Do I need to compile a new kernel with the driver built in or is there a way to "tell" the kernel to load this module instead?
          I guess replacing it in /boot/kernel/ folder is not a good idea?

          Thanks.

          1 Reply Last reply Reply Quote 0
          • ? This user is from outside of this forum
            Guest
            last edited by

            I know this is far from ideal but how can I make this work in boot?

            Try out to run a script that is unloading and loading this for you after booting.

            Do I need to compile a new kernel with the driver built in or is there a way to "tell" the kernel to load this module instead?

            This would be not so easy as you could think about.
            /boot/modules is the right position here.

            At least only to be sure, now the NIC is running fine and able to use for you?
            A small thread about that and worth the time to read it too

            1 Reply Last reply Reply Quote 0
            • M Offline
              Mullet Scandinavia AB
              last edited by

              Turn off VT-d support in the A2SDI BIOS and pfSense will find all  the NIC:s

              Supermicro reseller in Sweden
              FreeBSD user since 2.1.5

              1 Reply Last reply Reply Quote 0
              • E Offline
                EditioN
                last edited by

                Well, that would be interesting but not working here…
                Can you be more specific regarding the options to disable?

                1 Reply Last reply Reply Quote 0
                • ? This user is from outside of this forum
                  Guest
                  last edited by

                  Can you be more specific regarding the options to disable?

                  @Mullet Scandinavia AB said:

                  Turn off VT-d support in the A2SDI BIOS and pfSense will find all  the NIC:s

                  1 Reply Last reply Reply Quote 0
                  • E Offline
                    EditioN
                    last edited by

                    wow, thanks…
                    But of course I did that already and even reinstalled pfsense.
                    NICs are not there, the only way I can make it work is with the newer driver...

                    1 Reply Last reply Reply Quote 0
                    • M Offline
                      Mullet Scandinavia AB
                      last edited by

                      This is weird. I had it up an running this morning with VT-d off but now it don't work again!

                      And there are so few tools in the pfsense image so it's hard to debug no lspci and no network to fetch it either…

                      Have tried new beta BIOS und updated LAN EEPROM but still not working. Strange that it works sometimes.

                      Supermicro reseller in Sweden
                      FreeBSD user since 2.1.5

                      1 Reply Last reply Reply Quote 0
                      • M Offline
                        MarvinFS
                        last edited by

                        Guys any news on X553 driver?
                        It's still not working on 2.4.2_1 and it'a January already.
                        I've bought 6 pcs SYS-E200-9A with A2SDi-4C-HLN4F boards.
                        It's perfect all in all even Windows 2016 server works perfectly there, but not pfsense.
                        Any updates of manually putting FreeBSD drivers in there?
                        disabling virtualization or VT-d in BIOS does nothing for pfsense and NIC detection.

                        1 Reply Last reply Reply Quote 0
                        • stephenw10S Offline
                          stephenw10 Netgate Administrator
                          last edited by

                          The drivers were not in 11.1 release which is what we build on so until they are included in our base we may not get them.

                          You can build the kernel module yourself as explained by EditioN above. To load it at boot time just create the file /boot/loader.conf.local and then put in that file:

                          if_ix_load="YES"
                          

                          Steve

                          1 Reply Last reply Reply Quote 0
                          • M Offline
                            MarvinFS
                            last edited by

                            Thanks for the answer ,

                            Will it survive the updates then? I mean how frequent PFsense updates modules in /boot? or it's more like image updates for the whole partition?
                            So for now we may use that solution, but if will need to put it manually to /boot on every update i'm not sure it's usable as those will be in remote offices with hardly proper IT personnel avail.

                            1 Reply Last reply Reply Quote 0
                            • stephenw10S Offline
                              stephenw10 Netgate Administrator
                              last edited by

                              The imported kernel module will be specific to that version. It probably won't work in 11.2 for example. We won't have tested anything against it so there's no guarantees that any pfSense update won't break it.

                              Really you should wait for support to be included in the release. Certainly before deploying it in any critical application in my opinion.

                              Steve

                              1 Reply Last reply Reply Quote 0
                              • M Offline
                                MarvinFS
                                last edited by

                                Managed to get it working somehow.
                                Anyhow, we have bought those appliances already for all the offices, sadly before checking if it's supported yet! :)
                                I failed to find a proper way to disable existing module, so i just rename it and load a module manually compiled from Intel sources.
                                After that don't forget to fix permissions chmod 555 /boot/kernel/if_ix.ko and u'r good to go. (reboot)

                                So yeah, it works just fine after that, but don't survive upgrades as far as i understand pfsense updates kernel also, along with modules apparently.

                                Instructions:

                                on 1st boot after install press any key on PFsense logo

                                boot in Single User mode
                                press enter for /bin/sh shell

                                #connect your USB stick (Fat32 formatted) with driver
                                #check what's it's name
                                ls /dev/da*
                                #mount usb
                                mount_msdosfs /dev/da0s1 /media
                                #unload existing if_ix module - check it's ID if necessary /sbin/kldstat )
                                /sbin/kldunload -i 2
                                #mount root as RW
                                mount -rw /
                                #rename existing if_ix.ko module
                                mv /boot/kernel/if_ix.ko /boot/kernel/if_ix.ko.blacklisted
                                #copy new module from USB
                                cp /media/if_ix.ko /boot/modules/
                                #fix permissions
                                chmod 555 /boot/modules/if_ix.ko
                                #make loader.conf.local
                                echo 'if_ix_load="YES"' >> /boot/loader.conf.local
                                #enjoy
                                reboot

                                In case somebody needs it - here's yandex.cloud direct link (compiled for FreeBSD 11.1 release) https://yadi.sk/d/F92wgHSy3RNDS9

                                1 Reply Last reply Reply Quote 0
                                • D Offline
                                  daddygrant
                                  last edited by

                                  You sir, have saved my bacon.  Your instructions and file has worked perfectly for me.

                                  Cheers.

                                  @MarvinFS:

                                  Managed to get it working somehow.
                                  Anyhow, we have bought those appliances already for all the offices, sadly before checking if it's supported yet! :)
                                  I failed to find a proper way to disable existing module, so i just rename it and load a module manually compiled from Intel sources.
                                  After that don't forget to fix permissions chmod 555 /boot/kernel/if_ix.ko and u'r good to go. (reboot)

                                  So yeah, it works just fine after that, but don't survive upgrades as far as i understand pfsense updates kernel also, along with modules apparently.

                                  Instructions:

                                  on 1st boot after install press any key on PFsense logo

                                  boot in Single User mode
                                  press enter for /bin/sh shell

                                  #connect your USB stick (Fat32 formatted) with driver
                                  #check what's it's name
                                  ls /dev/da*
                                  #mount usb
                                  mount_msdosfs /dev/da0s1 /media
                                  #unload existing if_ix module - check it's ID if necessary /sbin/kldstat )
                                  /sbin/kldunload -i 2
                                  #mount root as RW
                                  mount -rw /
                                  #rename existing if_ix.ko module
                                  mv /boot/kernel/if_ix.ko /boot/kernel/if_ix.ko.blacklisted
                                  #copy new module from USB
                                  cp /media/if_ix.ko /boot/modules/
                                  #fix permissions
                                  chmod 555 /boot/modules/if_ix.ko
                                  #make loader.conf.local
                                  echo 'if_ix_load="YES"' >> /boot/loader.conf.local
                                  #enjoy
                                  reboot

                                  In case somebody needs it - here's yandex.cloud direct link (compiled for FreeBSD 11.1 release) https://yadi.sk/d/F92wgHSy3RNDS9

                                  1 Reply Last reply Reply Quote 0
                                  • M Offline
                                    MarvinFS
                                    last edited by

                                    @daddygrant:

                                    You sir, have saved my bacon.  Your instructions and file has worked perfectly for me.

                                    Cheers.

                                    Glad it worked and happy to help! Guess we'd wait for official support now and upgrade afterwards…

                                    1 Reply Last reply Reply Quote 0
                                    • A Offline
                                      andrewjoy
                                      last edited by

                                      @MarvinFS:

                                      Managed to get it working somehow.
                                      Anyhow, we have bought those appliances already for all the offices, sadly before checking if it's supported yet! :)
                                      I failed to find a proper way to disable existing module, so i just rename it and load a module manually compiled from Intel sources.
                                      After that don't forget to fix permissions chmod 555 /boot/kernel/if_ix.ko and u'r good to go. (reboot)

                                      So yeah, it works just fine after that, but don't survive upgrades as far as i understand pfsense updates kernel also, along with modules apparently.

                                      Instructions:

                                      on 1st boot after install press any key on PFsense logo

                                      boot in Single User mode
                                      press enter for /bin/sh shell

                                      #connect your USB stick (Fat32 formatted) with driver
                                      #check what's it's name
                                      ls /dev/da*
                                      #mount usb
                                      mount_msdosfs /dev/da0s1 /media
                                      #unload existing if_ix module - check it's ID if necessary /sbin/kldstat )
                                      /sbin/kldunload -i 2
                                      #mount root as RW
                                      mount -rw /
                                      #rename existing if_ix.ko module
                                      mv /boot/kernel/if_ix.ko /boot/kernel/if_ix.ko.blacklisted
                                      #copy new module from USB
                                      cp /media/if_ix.ko /boot/modules/
                                      #fix permissions
                                      chmod 555 /boot/modules/if_ix.ko
                                      #make loader.conf.local
                                      echo 'if_ix_load="YES"' >> /boot/loader.conf.local
                                      #enjoy
                                      reboot

                                      In case somebody needs it - here's yandex.cloud direct link (compiled for FreeBSD 11.1 release) https://yadi.sk/d/F92wgHSy3RNDS9

                                      This is  very clear thanks !!!

                                      Do we know when this is going to be in the live and stable builds ? Its working for now but don't want to put it into production until its part of the default kernel.

                                      Hopefully its soon before the power supply in the old Dell R300 changes its mind about not being on fire :)

                                      1 Reply Last reply Reply Quote 0
                                      • O Offline
                                        Ofloo
                                        last edited by

                                        @stephenw10:

                                        The drivers were not in 11.1 release which is what we build on so until they are included in our base we may not get them.

                                        You can build the kernel module yourself as explained by EditioN above. To load it at boot time just create the file /boot/loader.conf.local and then put in that file:

                                        if_ix_load="YES"
                                        

                                        Steve

                                        or just i beleve it was ```
                                        if_ix_updated_load=yes

                                        1 Reply Last reply Reply Quote 0
                                        • E Offline
                                          EditioN
                                          last edited by

                                          Hey guys,

                                          The new XG-7100 model includes the Atom C3000.
                                          I guess this is a good sign that the drivers will be built in soon?

                                          I must say that I have no issues so far with the driver I compiled but official support would be quite good to have.

                                          1 Reply Last reply Reply Quote 0
                                          • B Offline
                                            BenDroid
                                            last edited by

                                            @MarvinFS:

                                            Managed to get it working somehow.
                                            Anyhow, we have bought those appliances already for all the offices, sadly before checking if it's supported yet! :)
                                            I failed to find a proper way to disable existing module, so i just rename it and load a module manually compiled from Intel sources.
                                            After that don't forget to fix permissions chmod 555 /boot/kernel/if_ix.ko and u'r good to go. (reboot)

                                            So yeah, it works just fine after that, but don't survive upgrades as far as i understand pfsense updates kernel also, along with modules apparently.

                                            Instructions:

                                            on 1st boot after install press any key on PFsense logo

                                            boot in Single User mode
                                            press enter for /bin/sh shell

                                            #connect your USB stick (Fat32 formatted) with driver
                                            #check what's it's name
                                            ls /dev/da*
                                            #mount usb
                                            mount_msdosfs /dev/da0s1 /media
                                            #unload existing if_ix module - check it's ID if necessary /sbin/kldstat )
                                            /sbin/kldunload -i 2
                                            #mount root as RW
                                            mount -rw /
                                            #rename existing if_ix.ko module
                                            mv /boot/kernel/if_ix.ko /boot/kernel/if_ix.ko.blacklisted
                                            #copy new module from USB
                                            cp /media/if_ix.ko /boot/modules/
                                            #fix permissions
                                            chmod 555 /boot/modules/if_ix.ko
                                            #make loader.conf.local
                                            echo 'if_ix_load="YES"' >> /boot/loader.conf.local
                                            #enjoy
                                            reboot

                                            In case somebody needs it - here's yandex.cloud direct link (compiled for FreeBSD 11.1 release) https://yadi.sk/d/F92wgHSy3RNDS9

                                            Hello Everybody

                                            I would like to chime in and report aswell. I have e SuperMicro SuperServer E200-9A with the new C3558 in it. It also has four X553 NICs which I cannot get running under pfSense. I tried your instructions but they didn't work. Seems like I need to give myself permission somewhere (see attached picture). I set the system up with ZFS but I tried it with UFS and it didn't work aswell. Maybe I'm just missing something?

                                            Can anybody give me a tip here? Any help would be appreciated.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.