ubuntudriverscan-bussocketcan

socketCAN vs manufacturer's drivers


I am slightly confused as to what is the difference between socketCAN and manufacturer's drivers for CAN.

I have a mPCIE CAN card from Kvaser in my Ubuntu machine. It comes with its own drivers that are apparently based on socketCAN. But socketCAN comes with standard Ubuntu distributions, which is also a driver for CAN. I am able to read CAN bus data using socketCAN only without even installing Kvaser's drivers.

So my question is, what's the point of installing manufacturer's CAN drivers when socketCAN can take care of the comms alone?


Solution

  • The manufacturer's drivers are using socketCAN functionalities. Some devices are working with the default socketCAN implementation, but in most cases the devices (in your case mPCIE CAN Card) are dependend on some special commands that the firmware is working correctly.
    It is very likely, that your Kvaser device is working properly, because most of the Kvaser devices are already part of the Linux-Kernel.
    PCI-drivers are here /lib/modules/KERNEL_VERSION/kernel/drivers/net/can