ubuntu 22.04,Raspberry Pi 上的远程 USB 0 W

ubuntu 22.04,Raspberry Pi 上的远程 USB 0 W

在我的 iMAC 上:

Retina 5K, 27-inch, Late 2015
4 GHz Quad-Core Intel Core i7
16 GB 1867 MHz DDR3
AMD Radeon R9 M395X 4 GB

我正在运行 VirtualBox:

Version 7.0.14 r161095 (Qt5.15.2)

我有一个Linux虚拟机:

Description: Ubuntu 22.04.4 LTS
Release:     22.04
Codename:    jammy

我连接到 Raspberry Pi 0 W,其网络 IP 为 192.168.5.185,我已启用 root 和 ssh,连接到 Raspberry Pi 我有一个 CAN-BUS USB 设备,来自 ssh 终端:

root@RPi0:~# lsusb
Bus 001 Device 003: ID 1d50:606f OpenMoko, Inc. Geschwister Schneider CAN adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

使用 ssh 我启用了 USB 设备:

root@RPi0:~# usbip list
 - busid 1-1 (1d50:606f)
   OpenMoko, Inc. : Geschwister Schneider CAN Adapter (1d50:606f)

目标是将远程 CAN 总线适配器映射到 Ubuntu,这是我一周前完成的,由于另一个原因我必须重新开始,现在当我尝试列出远程 USB 设备时遇到问题Ubuntu 终端:

usbip list -r 192.168.5.185
usbip: info no exportable devices found on 192.168.5.185

我重新启动了 Pi 0,然后在我的 Ubuntu 终端中:

sy@Linux:~$ usbip list -r 192.168.5.185
Exportable USB devices
======================
 - 192.168.5.185
        1-1: OpenMoko, Inc. : Geschwister Schneider CAN adapter (1d50:606f)
           : /sys/devices/platform/soc/20980000.usb/usb1/1-1
           : (Defined at Interface level) (00/00/00)

sy@Linux:~$ sudo usbip attach -r 192.168.5.185 -b 1-1
[sudo] password for sy:
libqsbip: error: udev_device_new_from_subsystem_sysname failed
usbip: error: open vhci_driver (is vhci_hcd loaded?)

我找到了这个: usbip 打开 vhci 驱动程序时出错

我已经检查了 ubuntu 终端和远程版本:

sy@Linux: ~$ usbip version
usbip (usbip-utils 2.0)
sy@Linux: ~$ sudo ssh [email protected]
root:192.168.5.185's password:
Linux RPi0 6.1.21+ #1642 Mon Apr  3 17:19:14 BST 2023 armv6l

The programs included with Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the 
individual files in /usr/share/doc/*/copyright.


Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last Login Sun Feb 25 11:26:32 2024 from 192.168.5.220
root@RPi0:~# usbip version
usbip (usbip-utils 2.0)

因此两个版本都匹配,这与其他堆栈溢出报告的消息无关。

有趣的是,如果我关闭 Raspberry Pi 上的电源,那么 CAN 总线模块就会在没有设置的情况下启动,然后一旦我可以 ping 通设备,我就从 Ubuntu 中执行:

usbip list -r 192.168.5.185
Exportable USB devices
======================
 - 192.168.5.185
        3-1: OpenMoko, Inc. : Geschwister Schneider CAN adapter (1d50:606f)
           : /sys/devices/platform/soc/20980000.usb/usb1/1-1
           : (Defined at Interface level) (00/00/00)

仍然得到相同的结果:

sy@Linux:~$ sudo usbip attach -r 192.168.5.185 -b 3-1
[sudo] password for sy:
libqsbip: error: udev_device_new_from_subsystem_sysname failed
usbip: error: open vhci_driver (is vhci_hcd loaded?)

然后我在 Pi /etc/modules 上编辑并删除了 vhci_driver,该模块现在回到 1-1,但报告的消息相同:

sy@Linux:~$ sudo usbip attach -r 192.168.5.185 -b 1-1
[sudo] password for sy:
libqsbip: error: udev_device_new_from_subsystem_sysname failed
usbip: error: open vhci_driver (is vhci_hcd loaded?)

我认为 vhci_hcd 也许应该由 Ubuntu 加载?如何 ?


在 Raspberry Pi 0 WI 上添加:

sudo usbip bind —busid=X

其中 X 是分配给 USB 设备的总线 ID,可以通过以下方式显示:

usbip list -p -l

就我而言,它想出了:

busid=1-1#usbid=1d50:606f#

因此 X 将被替换为 1-1。我现在遇到的唯一问题是,如果我执行以下操作,一切都已连接:

sudo reboot

当我使用以下命令时,can0 设备不显示:

ip link

然后我必须通过拉动电缆并重新连接来断开设备,这是不可接受的。

来自 dmesg 的一些信息:

[46.529564] IPv6 ADDRCONF(NETDEV_CHANGE): can0: link becomes ready
[53.136367] usbip-host 1-1: usbip-host: register new device (bus 1 dev 2)

任何人都可以帮助解决这个问题吗?

答案1

您尝试过加载vhci_hcd驱动程序吗?这对我的情况有帮助,并显示相同的错误消息:

sudo modprobe vhci_hcd

答案2

最后我再次用 Raspbian 11 重新格式化了 SD 卡,我按照以前的方式设置了 CAN 模块,事实上一切都按照以前的方式设置,唯一的区别是我没有尝试运行:

sudo apt update
sudo apt upgrade

我确信该问题是由有错误的更新引起的。

相关内容