I am incorporating a USB to ethernet onto my project and am using LAN9500A from
http://www.microchip.com/wwwproducts/en/LAN9500A
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 Drivers → Network device support → USB 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