usbip:エラー:追加要求失敗 - デバイスが使用中(エクスポート)

usbip:エラー:追加要求失敗 - デバイスが使用中(エクスポート)

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

したがって、従うことができる唯一の有効なコマンドusbipdattachdetachであることがわかります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つとも同じ効果があります。

  • usbipd wsl detach -b <busid>同様で、次の2つのことを行います。

    • WSLでは、usbip detachデバイス
    • PowerShellでは、usbipd unbindデバイス
  • usbipd wsl listUbuntu / 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に接続できます。このポートを使用している可能性のあるプログラムを確認して閉じます。

関連情報