Supported SFP+ Cards

  • Hey there,


    I'm not sure if I just missed the spot where I should have looked for the information, but does anyone know if there are any PCIe cards for SFP+ connections are supported by LibreELEC (regular PC version)?

    Maybe some from Mellanox or Intel?

    Thanks and regards,
    Felix

  • Go to Best Answer
  • This is our kernel defconfig https://github.com/LibreELEC/Libr…nux.x86_64.conf

    Fibre NICs aren't a thing among our domestic userbase, hence there's probably little/no info on the topic, but that ^ file is where to cross-reference the NIC driver that's required for a specific device and whether it's enabled by default or would need to be enabled to work. Some NICs may also require firmware blobs but that can always be solved by dropping things in /storage/.config/firmware folders so they are overlaid on /usr/lib/firmware on next boot.

  • Hi chewitt,


    I must confess that my Linux knowlage is on the "I can follow instructions" level😅


    I tried to look up the drivers in the file you linked, but I did not see any section that looks like ethernet drivers for me😅
    Could you point out which lines are from interest for me?

    Thanks and regards,
    Felix

  • As Linux dominates the server market where optical NICs are normal, it's unlikely that any NIC more than a year old is not supported in the kernel, although LibreELEC probably won't have the modules enabled.

    The CONFIG_NET_VENDOR sections define the top-level support for NIC families, but the defconfig is hierarchical and most vendors have multiple NIC families so when you enable a specific family; only then are it's options exposed so the defconfig is never showing you all possible options for all possible modules. If you know the specific NIC hardware tracing the config for it is simple. If you are working with hypothetical hardware it's not.

    Instructions on building an image: https://wiki.libreelec.tv/development/build-basics

    Then edit the defconfig to enable the module (uncomment and use =m) based on either looking at the file or some Google/GPT research on what's needed, then re-run the build command and the kernel will be rebuilt with the module enabled. Then tranfer the image to /storage/.update and reboot to see if it worked.

  • Thanks, got it!

    IDK why I did not found Mellanox in the list on the first try.

    So if I see it right, Mellanox in generally not enable, also nothing from the Intel X5xx series nor the Realtek RTL8127.


    Regarding specific cards, my favourites would be (in that order):
    Mellanox CX311
    Intel X520-DA1
    Realtek RTL8127
    Any Mellonox X2 to X4
    Any Intel X520

    Is there any way to install drivers later (per SSH or so) on LibreELEC, or is doing an own build a must?
    (And would I need to do it for every update of LibreELEC?)

    Regards,
    Felix

  • Modules need to be baked into the image. Something like that ^ should enable CX311 support.

    As a general rule we are okay to enable modules by default , but will want to:

    • Know the specific modules that need to be enabled?
    • Know if any firmware is required?
    • Understand what the increase to default image size is?
    • See some kind of proof of them working!

    In short, user does the research on what's needed, then we can take it over in the long term. We are likely to refuse niche hardware requests if the modules and/or firmware are large in size; we care deeply about being a minimal distro and this is not maintained by adding driver/firmware bloat that only a single handful of users might ever use.

    It's not hard to maintain a self-built image. As long as it works, there's no obligation to update and rebuild frequently.

  • Thanks chewitt,


    I'll try to take a closer look with a friend within the next weeks to give it a try.


    To be honest, I think the usecase is pretty niche (galvanic isolation to my backbone, more performance (just on the paper), "because more power is better *Tim Taylor grunt*"), while the hardware itself might be the first choice for all who want to go on 10G fiber.

    With kind regards,
    Felix

  • Hi chewitt and everyone,

    I am currently planning a high-end HTPC/Media PC build and I'd love to use a 10Gbps SFP+ connection. My main goal is to completely isolate my audio/video gear from electrical noise (galvanic isolation via fiber) while having enough bandwidth for high-bitrate 4K remuxes from my main server.

    I am looking to buy the Mellanox ConnectX-3 10GbE SFP+ (specifically the MCX311A-XCAT or MCX312A-XCBT). Seeing this thread, I wanted to add my voice that there is definitely a growing interest in SFP+ support for x86_64 builds among A/V purists.

    To answer the valid questions you raised earlier regarding the Mellanox ConnectX-3 (mlx4):

    1. Modules needed: CONFIG_NET_VENDOR_MELLANOX=y and CONFIG_MLX4_EN=m (which should also pull CONFIG_MLX4_CORE=m).

    2. Firmware: The ConnectX-3 cards run their firmware directly from the onboard EEPROM. No additional firmware blobs are required in /lib/firmware, so the impact on the LE default image size would be absolutely minimal (just the compiled kernel module itself).

    Before I pull the trigger and buy the card, would you be open to enabling this in the Nightly (master) branch? If you are willing to spin up a test build or just enable it in the next Nightly, I will gladly buy the card right now, test it thoroughly, and provide the dmesg logs here as proof of it working flawlessly.

    Thanks for all your hard work on LE!

  • Hi chewitt,

    I just saw that PR #11533 got merged into master! Thank you so much for the incredibly fast response and for enabling the Mellanox support (and bumping the kernel along with it).

    Just a quick heads-up: I am currently hunting for the specific 1-port version of the ConnectX-3 (MCX311A-XCAT) on the used enterprise market, so it might take a little while before I have it physically in my hands. However, as soon as I manage to grab one and get it installed, I will update to the latest Nightly, test the SFP+ connection, and post the dmesg logs here as promised.

    Thanks again to you and the rest of the team for your amazing work!