如何连接Linux中的两个VCAN端口?

How to connect two VCAN ports in Linux?

我设置了两个 vcan 设备,我想将它们视为连接在一起。我希望能够使用 can-utils candump 在一条线路上收听,并从另一条线路发送 can 消息。如果没有物理设备,我该怎么做?

为澄清起见,我正在编写软件以通过我已经具备的 CAN 进行通信,但为​​了便于实际数据收集和进一步开发,我需要两个启用 can 的设备相互通信。虽然在现实世界中是一个简单的解决方案,通过将设备物理连接在一起来解决,但我需要一个可以在计算机上运行的编程解决方案。

添加can网关内核模块:

sudo modprobe can-gw

然后通过can-utils自带的cangw为各个接口创建网关规则。
例如,对于从 vcan0 到 vcan1 的路由消息:

sudo cangw -A -s vcan0 -d vcan1 -e 

反之亦然:

sudo cangw -A -s vcan1 -d vcan0 -e

现在您将能够在 vcan0 上看到所有在 vcan0 上发送的消息,反之亦然。