socketCAN 与制造商的驱动程序

socketCAN vs manufacturer's drivers

我对 socketCAN 和制造商的 CAN 驱动程序有什么区别感到有点困惑。

我的 Ubuntu 机器上有一张 Kvaser 的 mPCIE CAN 卡。它带有自己的驱动程序,这些驱动程序显然基于 socketCAN。但是 socketCAN 带有标准 Ubuntu 发行版,它也是 CAN 的驱动程序。我什至无需安装 Kvaser 的驱动程序就可以仅使用 socketCAN 读取 CAN 总线数据。

所以我的问题是,当 socketCAN 可以单独处理通信时,安装制造商的 CAN 驱动程序有什么意义?

制造商的驱动程序正在使用 socketCAN 功能。有些设备使用默认的 socketCAN 实现,但在大多数情况下,设备(在您的情况下是 mPCIE CAN 卡)依赖于固件正常工作的一些特殊命令。
很可能您的 Kvaser 设备工作正常,因为大多数 Kvaser 设备已经是 Linux-内核的一部分。
PCI 驱动程序在这里 /lib/modules/KERNEL_VERSION/kernel/drivers/net/can