Socket-CAN虚拟总线

问题描述:

如何创建多个虚拟套接字并将它们链接在一起以创建虚拟总线?Socket-CAN虚拟总线

我想模拟一个应用程序,其中许多节点通过CAN相互通信。

所有你需要的是cangw工具从can-utils。创建两个虚拟接口:

ip link add dev vcan0 type vcan 
ip link add dev vcan1 type vcan 
ip link set up vcan0 
ip link set up vcan1 

创建路由规则,让所有的数据包来vcan0将被发送到vcan1

cangw -A -s vcan0 -d vcan1 -e 

听在一个终端vcan1:

candump vcan1 

并从另一个终端发送数据包:

cansend vcan0 123#0011 

你会看到,这candump将获得此CAN数据包:

vcan1 123 [2] 00 11 
+0

我不断收到 “网络链路错误-95(不支持操作)” 什么想法? – Mozly

+0

确保在内核中激活CONFIG_CAN_GW。您可以将它作为内核的一部分或作为模块进行编译。 – yegorich

+0

我不得不加载它“modprobe can-gw” – Mozly