我对 socketCAN 和 CAN 制造商驱动程序之间的区别有点困惑。
我的 Ubuntu 机器上有一个 Kvaser 的 mPCIE CAN 卡。它带有自己的驱动程序,显然是基于 socketCAN 的。但是socketCAN带有标准的Ubuntu发行版,它也是CAN的驱动程序。我可以仅使用socketCAN读取CAN总线数据,甚至无需安装Kvaser的驱动程序。
所以我的问题是,当 socketCAN 可以单独处理通信时,安装制造商的 CAN 驱动程序有什么意义?
最佳答案
制造商的驱动程序正在使用socketCAN 功能。某些设备使用默认的 socketCAN 实现,但在大多数情况下,设备(在您的情况下为 mPCIE CAN 卡)依赖于固件正常工作的一些特殊命令。
您的 Kvaser 设备很可能工作正常,因为大多数 Kvaser 设备已经是 Linux 内核的一部分。
PCI 驱动程序位于 /lib/modules/KERNEL_VERSION/kernel/drivers/net/can
关于ubuntu - socketCAN 与制造商的驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51208478/