Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Linux中连接两个VCAN端口?_Linux_Virtual_Can Bus_Socketcan_Canutils - Fatal编程技术网

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

如何在Linux中连接两个VCAN端口?,linux,virtual,can-bus,socketcan,canutils,Linux,Virtual,Can Bus,Socketcan,Canutils,我已经设置了两个vcan设备,我希望将它们视为连接在一起。我希望能够使用can-utils-candump在一条线路上侦听,并从另一条线路发送can消息。没有物理设备我怎么能做到这一点 为了澄清,我正在编写通过CAN进行通信的软件,我已经能够通过CAN进行通信,但为了便于实际数据收集和进一步开发,我需要两个能够通过CAN进行通信的设备。虽然在现实世界中是一个简单的解决方案,通过物理连接设备来解决,但我需要一个可在计算机上运行的编程解决方案。添加can网关内核模块: sudo modprobe c

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


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

添加can网关内核模块:

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

sudo cangw -A -s vcan0 -d vcan1 -e 
反过来说:

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

现在,您将能够看到在vcan0上发送的所有消息以及在vcan1上发送的所有消息。

这非常有效!您知道can gw的文档在哪里吗?我不确定是否存在文档。如果您在没有参数的情况下输入cangw,您将获得有关用法的详细信息和一些示例。在BBB上运行良好,连接can0和can1 cangw-A-s can0-d can1-e将不允许您设置此规则(如果modprobe无法设置)