我正在尝试让 SocketCAN 接口工作。我添加了 slcan0 适配器并尝试以candump slcan0
我确定 CAN 设备正在运行的比特率运行。我没有看到终端中打印任何数据,但我确定 CAN 设备正在以 200Hz 的频率发送数据。
我正在使用 Lawicel CANUSB 设备并遵循以下步骤:http://pascal-walter.blogspot.com/2015/08/installing-lawicel-canusb-on-linux.html
绑定接口后,当我打印系统日志时,得到以下信息:
May 26 10:11:33 username gnome-software[3664]: Failed to load snap icon: local snap has no icon
May 26 10:11:34 username gnome-software[3664]: message repeated 4 times: [ Failed to load snap icon: local snap has no icon]
May 26 10:15:43 username systemd[1]: Started Session 3 of user aceinna.
May 26 10:15:57 username slcand[3923]: starting on TTY device /dev/ttyUSB0
May 26 10:15:57 username slcand[3923]: attached TTY /dev/ttyUSB0 to netdevice slcan0
May 26 10:15:57 username slcand[3923]: netdevice O#015 renamed to slcan0
May 26 10:15:57 username NetworkManager[1543]: <info> [1590513357.4839] manager: (slcan0): new Generic device (/org/freedesktop/NetworkManager/Devices/4)
May 26 10:15:57 username systemd-udevd[3925]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
May 26 10:15:57 username NetworkManager[1543]: <info> [1590513357.4957] devices added (path: /sys/devices/virtual/net/slcan0, iface: slcan0)
May 26 10:15:57 username NetworkManager[1543]: <info> [1590513357.4958] device added (path: /sys/devices/virtual/net/slcan0, iface: slcan0): no ifupdown configuration found.
May 26 10:16:23 username wpa_supplicant[1539]: wlp59s0: WPA: Group rekeying completed with bc:ee:7b:57:ed:fc [GTK=CCMP]
May 26 10:16:23 username wpa_supplicant[1539]: wlp59s0: WPA: Group rekeying completed with bc:ee:7b:57:ed:fc [GTK=CCMP]
May 26 10:17:01 username CRON[3944]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
问题是“未找到 ifupdown 配置”
如何配置 CAN 接口的 ifupdown 配置?
我尝试过的一件事是将以下几行添加到 /etc/network/interfaces
auto can0
iface can0 inet manual
#pre-up ip link set $IFACE type can bitrate 125000 listen-only off
pre-up /sbin/ip link set $IFACE type can bitrate 250000 triple-sampling on
up /sbin/ifconfig $IFACE up
down /sbin/ifconfig $IFACE down
注意:绑定接口时我尝试使用 can0 作为适配器名称,以便与 /etc/network/interfaces 中的接口名称匹配。
我还使用更新了 ifupdown 包
apt-get ifupdown
有人能指出正确的方向吗,我应该看什么?
提前致谢。
答案1
我最初尝试将我的 CAN 收发器连接到 Linux 并使用打印 CAN 数据包candump
。
当我使用以下方式将 CAN 接口绑定到 slcan 后,出现了此错误消息sudo slcand -o -c -f -sX /dev/ttyUSBX slcan0
此错误出现在 syslog 文件中,请使用以下命令sudo tail -n 10 -f /var/log/syslog
事实证明,当我在下一步中将 SocketCAN 接口设置为 UP 时,此问题得到解决sudo ip link set up slcan0
我想未发现 ifupdown 配置错误没有让 candump 打印 CAN 消息。我错了。问题出在 CAN 终端电阻上。我的 CAN 网络没有终端电阻。只要我在 CAN 设备中启用终端电阻,我就能够使用candump
在这里记录这个问题以防将来有人遇到这个问题。