WSL2의 Ubuntu 20.04에 USB 웹캠을 연결하거나 분리했습니다.usbipd-win사용 지침USB 장치 연결. PowerShell에서:
usbipd wsl attach --busid 2-4
완료되면 분리하겠습니다.
usbipd wsl detach --busid 2-4
그러나 동일한 명령을 사용하여 동일한 USB 웹캠 장치를 두 번째로 연결하려고 하면 다음과 같습니다.
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>
두 가지 일을 했습니다:- 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>
세 가지 모두 동일한 효과를 갖습니다.
- PowerShell에서는공유하다장치가 통과합니다.
usbipd wsl detach -b <busid>
유사하며 다음 두 가지 작업을 수행합니다.- WSL에서는
usbip detach
장치 - PowerShell에서는
usbipd unbind
장치
- WSL에서는
usbipd wsl list
Ubuntu/WSL2에는 실제로 비슷한 것이 없습니다. 이는usbipd list
장치가 연결된 WSL2 인스턴스를 표시하는 기능을 추가하는 것과 비슷합니다.
중요한 팁: 이 두 명령은 매우 유사하기 때문에 서로 다른 두 명령이라는 사실을 간과하기 쉽습니다.
- 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에 연결할 수 있습니다. 이 포트를 사용하고 있을 수 있는 프로그램을 확인하고 닫습니다.