首页 > 解决方案 > RPI/Raspbian SocketCAN 配置问题

问题描述

Python 和 RPi n00b 在这里。试图让 CANopen 在我的 RPI 上工作,并认为我已经完成了 8/10 的通信方式。

目标设备是一个 RPi 3+,安装了 Raspbian Buster 和 5.4.51-v7+ linux 内核,连接到 Kvaser Leaf USB CANopen 适配器。众所周知,CANopen 适配器硬件很好,可以很好地与 Windows 软件配合使用。

相关信息: - 已安装 can-utils - 已安装 python-can 4.0.0 -
似乎已成功安装 Kvaser 驱动程序(最终使 make 完成且没有错误) - vcan 似乎工作正常 - 已使用此方便成功传输和接收测试数据包使用 can-utils 的虚拟 can 适配器

我最初可以设置罐头插座:

sudo modprobe can

但是当我尝试初始化实际硬件时,它会失败并出现以下错误:

sudo ip link add dev can0 type can
RTNETLINK answers:Operation not supported

显然我错过了一些东西,但无法弄清楚是什么。我注意到其他人也有类似的问题(尽管硬件不同)。请告知解决方案和 TIA。

标签: raspberry-pican-bussocketcancanopen

解决方案


您需要卸载 CANlib,然后重新启动 socketcan 才能工作。

请遵循以下程序:

如果您不再拥有 linuxcan 压缩包,请再次下载:http://www.kvaser.com/downloads 提取 linuxcan: tar -xf linuxcan.tar.gz 在 linuxcan 目录中,运行 make 以构建您之前需要的所有内容可以卸载 现在使用 sudo make uninstall 卸载 CANlib 您应该会看到如下内容:

Uninstalling pciefd
Remove SocketCAN Kvaser PCI driver from blacklist.
Uninstalling pcican2
Remove SocketCAN Kvaser PCI driver from blacklist.
Uninstalling pcican
Remove SocketCAN Kvaser PCI driver from blacklist.
Uninstalling virtualcan
Uninstalling usbcanII
Remove SocketCAN Kvaser USB driver from blacklist.
Uninstalling mhydra
Uninstalling leaf
Remove SocketCAN Kvaser USB driver from blacklist.
Uninstalling common

现在您可以重新启动并且 ip link 命令应该可以工作了。


推荐阅读