This is a cache of https://discuss.96boards.org/t/poe-ethernet-mezzanine-card-with-ultra96-v2/8374. It is a snapshot of the page at 2024-10-31T11:33:43.981+0000.
PoE/Ethernet Mezzanine card with Ultra96 V2 - Ultra96 - 96Boards Forum

PoE/Ethernet Mezzanine card with Ultra96 V2

Hi,
I am looking for some guidance on how to enable the use of the 96Boards PoE Mezz card with Ultra96. The card uses a LAN78xx usb to ethernet device which is supported by some linux kernels. I am new to Petalinux and not sure how to add the drivers. On ubuntu, it is a modprobe command to load the driver module.

Any advice will be appreciated.

Thank you

Since the controller is connected through USB, the mezzanine will be automatically detected and enumerated. Based on some USB identifiers (class, vendor, product…) the kernel normally associate (probe) the device with the appropriate driver, which needs to be loaded (automatically) if built as an external module.

The PoE mezzanine requires the lan78xx USB driver. This one does not seem enabled (well, I run an old xilinx 2017 image). So you may have to rebuild the kernel with CONFIG_LAN78XX enabled (in kernel config) and reflash the system: PetaLinux Build Guide for Ultra96 - 96Boards

Thank you. Is there any way to install the driver from userspace without having to rebuild the kernel?

It may technically be possible to build the kernel module separately, but it is more complex to do so than to just rebuild the kernel.

In particular, you need to identify the EXACT kernel source that the binary kernel was built from, and build the module so that all of the version and magic numbers all match up precisely. If you’re going to go to that extreme to build it, you might as well just build the kernel and be done with it.

Usually the process for building a module to match an existing binary kernel will be used for supplying a module for binary kernels that are in widespread use, such as for servers.