CAN drivers visible in "dmesg", but not in "lsmod" on Colibri-iMX6

Hi All.

I flashed https://developer1.toradex.com/files/toradex-dev/uploads/media/Colibri/Linux/Images/Colibri-iMX6_LXDE-Image_2.7-20180104.tar.bz2 on the Colibri-board successfully, and started receiving U-Boot messages fine via the USB.

Now, upon doing dmesg | grep can, following output is seen :

root@colibri-imx6:~# dmesg | grep can
[    0.140448] i2c i2c-1: can't use DMA
[    0.141132] i2c i2c-2: can't use DMA
[    1.255588] vcan: Virtual CAN interface driver
[    2.007130] snvs-secvio 20cc000.caam-snvs: can't get snvs clock
[    2.172600] can: controller area network core (rev 20120528 abi 9)
[    2.187157] can: raw protocol (rev 20120528)
[    2.193295] can: broadcast manager protocol (rev 20120528 t)
[    2.200834] can: netlink gateway (rev 20130117) max_hops=1

However, upon doing lsmod | grep can, absolutely nothing is seen.
Also, I searched in the entire filesystem, and could not find any of can.ko or vcan.ko

I am failing to understand what’s happening.
Will be grateful to hear back from you experts !!

Thanks and Regards,
Ajay

hi ajay

which carrier board are you using? what is your application?

Hi jaski.

Thanks for the reply.

The carrier-board is a Colabri-Evaluation-V3.1a.

Our application requires writing/reading CAN-packets via SocketCAN.
However, as of now, I am doing nothing in the application-layer, just analyzing the current kernel-state in the image. And I am terribly confused, as mentioned in the originating post.

Thanks and Regards,
Ajay

Hi

From arch/arm/configs/colibri_imx6_defconfig:

CONFIG_CAN=y
CONFIG_CAN_VCAN=y
CONFIG_CAN_FLEXCAN=y
CONFIG_CAN_MCP251X=y

The CAN subsystem and related drivers are compiled into the kernel binary in our demo image. So there are no kernel module files needed.


Some information on using CAN on our modules are here.

Max

Ahhh… I forgot that traditionally linux-kernel has been monolithic :slight_smile:
Thanks a ton Max !!