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

vid*_*woy 4 linux virtual can-bus socketcan canutils

我已经设置了两个 vcan 设备,我想将它们视为连接在一起。我希望能够使用 can-utils candump 在一行上侦听,并从另一行发送 can 消息。没有物理设备我怎么能做到这一点?

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

小智 9

添加 can 网关内核模块:

sudo modprobe can-gw
Run Code Online (Sandbox Code Playgroud)

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

sudo cangw -A -s vcan0 -d vcan1 -e 
Run Code Online (Sandbox Code Playgroud)

反之亦然:

sudo cangw -A -s vcan1 -d vcan0 -e
Run Code Online (Sandbox Code Playgroud)

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