2

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

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

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

4

1 回答 1

2

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

于 2018-08-09T12:16:36.410 回答