0

我已阅读文档并且知道:

要启用一个真正的你能做到

 $ sudo ip link set can0 type can bitrate 125000
 $ sudo ip link set up can0

并启用你做的vcan

 $ modprobe vcan
 $ sudo ip link add dev vcan0 type vcan
 $ sudo ip link set up vcan0

就我而言,我什至在启用之前禁用 vcan

 $ sudo ip link set dev vacn0 down
 $ sudo ip link set can0 type can bitrate 125000
 $ sudo ip link set up can0

我的问题是相反的情况如何?(从 can 到 vcan)?如果我的 can up ,我应该在启用 vcan 之前禁用它吗?如何?并且还启用 vcanadd不使用set...为什么?

4

1 回答 1

1

真实的 CAN 网络设备和虚拟的 CAN 设备之间没有连接,只是它们共享相同的套接字接口。

您在这里展示的是如何激活任何一种 CAN 设备(真实或虚拟)并进行设置。

在应用程序中如何在一个和另一个之间切换应该像为网络设备使用一个或另一个名称一样简单。

您可以同时使用真实的 CAN 和虚拟 CAN 设备,而无需担心。

至于为什么需要添加vcan0设备而不添加真实can0设备,操作系统通常会检测到您的 CAN 硬件并自动创建设备。

一个例外情况是,如果您使用带有 的 CAN 转串行适配器slcand,您需要先在其中运行slcand(它会创建名为 的设备slcan0):

 $ sudo slcand -o -s8 -t hw -S 3000000 /dev/ttyUSB0
 $ sudo ip link set up slcan0
于 2020-07-18T23:44:20.157 回答