WSL2のUbuntu 20.04にUSB Webカメラを接続または切断しました。usbipd-win使用説明書USBデバイスの接続。 PowerShellでは:
usbipd wsl attach --busid 2-4
完了したら切り離します。
usbipd wsl detach --busid 2-4
ただし、同じコマンドを使用して同じUSB Webカメラデバイスを2番目に接続しようとすると、次のようになります。
usbipd wsl attach --busid 2-4
...PowerShellコンソールに次のエラーが表示されます。
usbip: error: Attach Request for 2-4 failed - Device busy (exported)
USBウェブカメラを使用しているとはどういう意味ですか?
以前にウェブカメラを取り外していましたが、なぜウェブカメラはまだ使用されていますか?
こんにちは。 WSL2を使用しようとすると、次のようになります。
~$ sudo usbip port
示す:
Imported USB devices
====================
Power Shellで試してみると、次のようになります。
PS C:\Windows\System32> usbipd wsl list
BUSID DEVICE STATE
2-2 USBIP Shared Device, NexiGo N950P 4K Webcam, NexiGo N950P... Not attached
また、PSを使ってみると次のようになります("wsl"はありません)。
PS C:\Windows\System32> usbipd unbind --busid 2-2
今はエラーが発生せず、動作しません。
私が試した場合:
PS C:\Windows\System32> usbipd bind --busid 2-2
usbipd:情報:バスIDが '2-2'のデバイスはすでに共有されています。
答え1
私はいません。回答まだではありませんが、コメントで説明できるレベルを超えているので、この問題を解決しながらここにいくつかの情報を追加します。
ご意見で次のことをお試しいただきました。
usbipd wsl unbind --busid <busid>
...PowerShellでエラーが発生します。これは予想されます。ランニング:
$ usbipd wsl -h
usbipd-win 2.2.0
Description:
Convenience commands for attaching and detaching devices to Windows Subsystem for Linux.
Usage:
usbipd wsl [command] [options]
Options:
-?, -h, --help Show help and usage information
Commands:
attach Attach a USB device to a WSL instance
detach Detach a USB device from a WSL instance
list List USB devices
したがって、従うことができる唯一の有効なコマンドusbipd
はattach
、detach
であることがわかりますlist
。
言ったように、これらは「コンビニオーダー」。それらは略語です。
usbipd wsl attach -b <busid>
2つのことをしました:- PowerShellでは共有するデバイスが通過します。
usbipd bind -b <busid>
- デフォルトのWSLインスタンスでは付録共有デバイス経由
sudo usbip attach -r $(hostname).local -b <busid>
。sudo
デフォルトではコマンドを使用するため、これを行うためにパスワードは必要ありませんwsl -u root
。
たとえば、PowerShellでは、次のコマンドは上記の便利なバージョンと同じ効果を持つ必要があります。
usbipd bind -b <busid> wsl -u root -e usbip attach -r "$(hostname.exe).local" -b <busid>
または、PowerShell で最初のコマンドを実行した後、Ubuntu に移動して以下を実行できます。
sudo usbip attach -r $(hostname).local -b <busid>
3つとも同じ効果があります。
- PowerShellでは共有するデバイスが通過します。
usbipd wsl detach -b <busid>
同様で、次の2つのことを行います。- WSLでは、
usbip detach
デバイス - PowerShellでは、
usbipd unbind
デバイス
- WSLでは、
usbipd wsl list
Ubuntu / WSL2には実際に似たものはありません。これはusbipd list
、デバイスが接続されたWSL2インスタンスを表示する機能を追加するのと似ています。
重要なヒント:これら2つのコマンドは非常に似ているため、2つの異なるコマンドであることを見落としやすいです。
- PowerShellでは、コマンドは次のようになります。
usbipd
- WSL2以降、コマンドは
usbip
(「d」を除く)です。
トラブルシューティング
これを念頭に置いて問題が発生した場合は、Ubuntuでいくつかのコマンドを実行してみてください。
努力する:
sudo usbip port
sudo usbip detach -p 00 # Or whatever the previous command showed
原因を特定するのに役立つ他のメッセージが表示されていることを確認してください。
usbipd wsl attach --busid 2-4
...エラーが発生します。
答え2
間違い
usbip:エラー:2-4への接続要求が失敗しました - デバイスが使用中(エクスポート済み)
ペリフェラルを使用するWindowsの側面に関連しています。
Windows側でタスクマネージャを実行し、周辺機器を使用しているアプリケーションを識別してタスクを終了します。
今、それがうまくいくのを見ることができます。私の場合は、Android adb管理者でした。私はそれを終了し、すべてが大丈夫だった。
答え3
一部のプログラムではこのポートを使用できます。私の場合、G-helperはこのポートを使用します。 G-helperをオフにしてwsl2に接続できます。このポートを使用している可能性のあるプログラムを確認して閉じます。