내 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 0W에 연결되어 있고 해당 네트워크 IP는 192.168.5.185입니다. 루트 및 SSH가 활성화되어 있으며 Raspberry Pi에 연결되어 있습니다. SSH 터미널에서 CAN-BUS USB 장치가 있습니다.
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에 매핑하는 것입니다. 일주일 전에 이 작업을 수행했지만 다른 이유로 다시 시작해야 했으며 이제 Ubuntu 터미널에 원격 USB 장치를 나열하려고 하면 문제가 발생합니다.
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 드라이버를 열 때 오류 발생
우분투 터미널과 원격 버전을 확인했습니다.
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
버그가 있는 업데이트로 인해 문제가 발생했다고 확신합니다.