我有 Ubuntu 22.04 作为虚拟机和 Raspberry Pi 0W,在 Pi 0W 上我有一个 CAN-Bus USB 适配器,我已经设置了它,这样我就可以使用 Raspberry Pi 0W 和 CAN-Bus 适配器连接到我的 Tesla ODBC-II 端口。
它工作得很好,我可以在 Ubuntu 实例中看到 CAN 总线上的活动,就像直接插入 USB 一样。
然后我想到了另一个有用的应用程序。我正在远程工作,而我想要连接的硬件距离超过 200 英里。连接到硬件的正常方法是使用 Lonworks USB 适配器。我尝试以与 CAN 总线适配器相同的方式设置此适配器,但它不起作用。
供应商是否可以在自己的 USB 设备中采取某些措施来防止其被共享?
使用 USB CAN-Bus 适配器,我在 Ubuntu 的终端中执行:
usbip list -r 192.168.5.185
上面的IP是我网络上的Raspberry Pi 0W,这会返回一个可以导出的设备,这将返回:
Exportable USB devices
==================
- 192.168.5.185
1-1: OpenMoko, Inc. : Geschwister Schneider CAN adapter (1d50:60f6)
: /sys/devices/platform/soc/209800000.usb/usb1/1-1
: (Defined at Interface level) (00/00/00)
当 Lonworks 适配器存在时,不会返回任何内容,结果是:
usbip: error: could not connect 192.168.5.185:3240: System error
我今天在这里创建了另一篇文章:
https://raspberrypi.stackexchange.com/questions/147150/making-usb-device-stable-and-reliable
https://forum.linux-hardware.org/index.php?topic=150.msg246#msg246
答案1
回答你的问题
不是真的没有。无法保证连接的延迟足够低以允许特定设备正常工作,但当通信已经正常工作时,您所看到的与失败无关。
试图解决手头的问题
如果usbip list --local
在您的远程计算机上工作,那么通常设置正确。我怀疑没有,您可能需要正确加载 usbip 内核模块。在尝试连接时检查 usbip 的日志输出,如果问题确实出在内核模块上,请检查dmesg
加载模块后的情况。