raspberry-pi - 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。
解决方案
您需要卸载 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 命令应该可以工作了。
推荐阅读
- android - 在构建时将变量传递到 Android 中的 externalNativeBuild
- drag-and-drop - ASP.NET/VB Telerik RadTreeList 拖放值赋值
- php - Laravel,如何从自定义表的 jwt 令牌中获取登录用户
- c - 在 C 中交换两个结构(动态内存分配)
- c - 访问超出最初声明的指针的内存
- python - Python - TypeError: __init__() 接受 3 个位置参数,但给出了 4 个
- git - 为什么 git bisect 为我提供了一个相当古老的提交?
- python - 为什么 subprocess 在 shell 脚本中使用时返回双“\”(例如“1\\n2”)?
- reactjs - 反应路由器在实时站点上的某些页面上不起作用
- java - vlcj Mediastatistic do not show stats