Linux SocketCAN上虚拟CAN(vcan)的CAN FD支持

Linux SocketCAN上虚拟CAN(vcan)的CAN FD支持,linux,can-bus,socketcan,canutils,Linux,Can Bus,Socketcan,Canutils,我一直在使用SocketCAN,尤其是虚拟CAN vcan已有相当长的一段时间了。然而,到目前为止,我从未使用过CAN FD(灵活数据速率) 今天早上我用can utils试过了: cansend vcan0 123##122 然而,我得到的回答是“CAN接口不支持CAN FD”。 已使用以下终端命令创建vcan接口: ip link add dev vcan0 type vcan ip link set up vcan0 有人知道vcan是否支持CAN FD吗? 如果是,如何设置支持CAN

我一直在使用SocketCAN,尤其是虚拟CAN vcan已有相当长的一段时间了。然而,到目前为止,我从未使用过CAN FD(灵活数据速率)

今天早上我用can utils试过了:

cansend vcan0 123##122
然而,我得到的回答是“CAN接口不支持CAN FD”。 已使用以下终端命令创建vcan接口:

ip link add dev vcan0 type vcan
ip link set up vcan0
有人知道vcan是否支持CAN FD吗? 如果是,如何设置支持CAN FD的vcan接口

系统配置:VirtualBox上的Ubuntu 14.04.1

提前感谢,,
MAW

我的一位同事找到了一个解决方案:

ip link add dev vcan0 type vcan
ip link set vcan0 mtu 72
选项“mtu 72”设置CAN FD的正确最大传输尺寸。之后,vcan接受CAN FD消息


太棒了,妈

它是一种魅力。以下是我按照你的建议所做的。请注意,命令是通用的,我不想讨论环境准备

要在Linux内核下设置socketCAN框架(我使用的是4.17.2),请以root用户身份:

lsmod | grep can
modprobe can
modprobe can_raw
modprobe can-bcm
modprobe can-dev
modprobe can-gw
modprobe vcan
lsmod | grep can
要设置socketCAN Fd框架,应执行以下操作(也作为根目录):

测试socketCAN Fd框架需要can utils包。此外,还需要以下内容:

而且,一切都像瑞士钟一样运转着!:-)

在xmit端:cangen-f vcan0-v vcan0

2C3#0.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.DC.BD.42.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.DC.BD.42.42.25.5A.FF.1E.DC.BD.42.CB.42.42

在接收端:candump vcan0

vcan0 2C3[64]25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42

太好了!非常感谢你

无人

“ip链接集can0 mtu 72”返回,“RTNETLINK回答:无效参数”您是否对更改mtu做了任何不同的操作?
ip link add dev vcan0 type vcan
ip link set vcan0 mtu 72
ip link set dev vcan0 up
ifconfig