Is there a prebuild device driver for a LAN9500A usb to ethernet IC for iMX6 running angstrom linux on Colibri?

I am incorporating a USB to ethernet onto my project and am using LAN9500A from

There are linux drivers that are prebuilt for x86 and x64. The source appears to be in the tarball in the software library indicated above.

My questions are:

Is there a a driver that is already built for a LAN9500A for an iMX6 running angstrom linux on Colibri?

If I need to build it against a cross compiler, what are the steps?

Thanks in advance.

Brian

Support for this device appears to have been added to the mainline Linux kernel as of the latest iMX6 kernel. Simply add CONFIG_USB_NET_SMSC95XX=y or CONFIG_USB_NET_SMSC95XX=m to the kernel config.

To do so, follow the instructions for building the latest (3.14.52) iMX6 kernel. After make colibri_imx6_defconfig, enter make menuconfig.

Then you can browse to: Device DriversNetwork device supportUSB Network Adapters and select SMSC LAN95XX based USB 2.0 10/100 ethernet devices

Save the config. Then finish compiling and deploying the kernel & kernel modules.

Thanks Brandon.

I am a bit new to building and modifying the yocto project. After I have added the SMSC LAN95xx to the Device Driver, how do i repackage the image and the dtb files back as a tarball? Is there a webinar or a tech note that you could direct me to.

Thank you in advance.

Brian

@brian.ramos There are two possible approaches.

  • You can rebuild just the kernel/modules in a traditional manner as described above. This is perhaps a little better for a quick-turn development workflow. Once you build the kernel, you can simply copy the uImage and replace the uImage file on the SD card you used to flash the module. Then you can use the update commands to flash the lastest kernel (noteably run update_kernel). You will also need to deploy the kernel modules to the rootfs - this is already described in the article.
  • Or you can incorporate the changes into the kernel recipe used by our Yocto/OpenEmbedded build system. This build system would allow you to build individual components such as the kernel, bootloader or software packages as well as rebuild the entire image. This is the ideal long-term approach in terms of maintainability & reproducibility. In addition to the documentation provided on our developer website, we also have a 2-part webinar that provides an introduction to the Yocto project and a real-life example of customizing an image including the kernel:

Part 1: Introduction - Building Embedded Linux Images with the Yocto Project

Part 2: Advanced - Building Embedded Linux Images with the Yocto Project