私の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にマッピングすることです。 1週間前にこれを行いましたが、別の理由で再起動する必要があり、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ドライバを開くときにエラーが発生する
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
バグのあるアップデートで問題が発生したと確信しています。