Linux支持虚拟can接口。它是通过以下方式启用的:
modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ifconfig vcan0 up
在使用cam-utils
诸如camsniffer
和cansend
cansend vcan0 321#1212
cansniffer vcan0
我可以看到罐头数据包;但仅在同一主机内。我试过 Ubuntu VirtualBox 机器。来宾和主机操作系统都使用主机专用适配器互连vboxnet0
。
还尝试了 SocketCAN socket(PF_CAN, SOCK_RAW, CAN_RAW)
,但无法在其他机器上接收(在同一台机器上工作)尝试使用广播管理器socket(PF_CAN, SOCK_DGRAM, CAN_BCM)
执行时stderr
说“不支持操作”
简而言之,可以在 Linux 主机之间发送和接收 CAN 数据包吗?它的虚拟机(vboxnet0)或物理连接(以太网)无关紧要。
注意:我分别使用 Ubuntu 16.04 和 12.04 作为主机和来宾操作系统。