Windows 가상 머신이 USB 펜 드라이브에 액세스하도록 하려고 하는데 이 USB를 가상 머신에 전달하는 데 문제가 있습니다.
내 Linux 호스트에서 lsusb를 실행하고 내 장치는 다음과 같이 식별됩니다.
Bus 001 Device 018 : ID 8564:1000 Transcend Information, Inc. Jetflash
몇 가지 가이드를 살펴본 후 다음 명령을 사용하여 이 USB를 kvm에 전달해 보았습니다.
qemu-system-x86_64 -m 3G --enable-kvm "Windows 10.qcow2" -usb -device usb-host,hostbus=1,hostaddr=18
무엇을 시도하든 "usb-host"가 유효한 장치가 아니라는 오류가 발생합니다.
lsusb -t를 수행할 때 표시되는 장치 클래스이기 때문에 usb-storage로 변경해 보았지만 장치 ID로 무엇을 전달해야 할지 모르겠습니다. 공백으로 두면 ".drive" 속성이 예상대로 누락된 것으로 표시됩니다.
나는 몇 가지 정보를 인쇄하는 것을 만들려고 노력합니다 ls /sys/bus/usb/devices
.
1-0:10 1-1 1-1.1 ........usb1 usb2
하지만 어떤 ID를 명령에 전달하려고
qemu-system-x86_64 -m 3G --enable-kvm "Windows 10.qcow2" -usb -device usb-storage,drive=<one of the above>
해도
주어진 값의 그러한 속성이 존재하지 않는다고 말합니다.
그래서,
- usb-host가 유효한 장치가 아닌지 걱정해야 합니까?
usb-storage
장치 ID가 작동 하려면 어떻게 해야 합니까 ?- qemu-kvm은 USB 2, 3 및 스트리밍 카메라를 지원합니까?
나는 그것을 사용하고 있다QEMU emulator version 4.1.0
답변1
그냥 내가 2센트를 던져야겠다고 생각했어요. 가상 머신에 USB 프린터를 추가하려고 시도하고 전체 "qemu-kvm" 명령 경로를 시도했지만 소용이 없었습니다. 결국 아래와 같이 가상 머신의 도메인 xml에 xml 항목을 수동으로 추가했습니다.라이브러리 가상 머신협회. 호스트 시스템에서 실행:
lsusb
USB 장치를 나타내는 행을 찾으세요.
Bus 001 Device 003: ID 03f0:1617 HP, Inc LaserJet 3015
"ID"는 콜론으로 구분된 공급자 ID와 제품 ID를 나타냅니다. 그런 다음 아래 xml 코드에서 장치 공급업체 및 제품 ID(16진수 0x 포함)를 바꾸고 VM의 "devices" 블록에 요소로 추가하면 됩니다.
<hostdev mode='subsystem' type='usb'>
<source startupPolicy='optional'>
<vendor id='0x03f0'/>
<product id='0x1617'/>
</source>
<boot order='2'/>
</hostdev>
행운을 빌며 이것이 도움이 되기를 바랍니다. 참고로 도메인의 xml 파일을 편집하려면 다음을 실행하세요.
virsh dumpxml yourdomain
그런 다음
virsh edit yourdomain
그러면 편집할 수 있는 xml 파일이 로드됩니다.
답변2
그래픽 프런트 엔드를 사용할 수 있다면 virt-manager
USB 패스스루도 괜찮습니다.
정보 섹션을 클릭 add Hardware
하고 선택하세요 USB Host Device
.
저는 이를 Windows 10 게스트에게 펜 드라이브를 전달하는 데 사용했는데 지금까지는 아무런 문제도 발생하지 않았습니다.
USB 장치를 추가한 경우 장치가 감지되지 않으면 머신이 부팅되지 않습니다. 즉, 가상 머신을 시작하려면 펜 드라이브를 연결해야 합니다.
답변3
저는 이 플랫폼을 처음 사용하므로 형식을 지정하는 점 양해해 주시기 바랍니다. 앞서 언급했듯이 모든 것은 다음과 같이 시작됩니다.
lsusb
버스 및 장치 번호(귀하의 경우 1과 18)를 가져옵니다. 그런 다음 다음을 포함하는 jetflash.xml 파일을 만듭니다.
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<address bus='1' device='18'/>
</source>
</hostdev>
숫자가 어디로 가는지 알 수 있습니다! 이제 실행 중인 vmID에 연결/분리합니다.
virsh attach-device vmID /path/to/jetflash.xml
virsh detach-device vmID /path/to/jetflash.xml
이게 도움이 되길 바란다.
답변4
나는 매우 비슷한 문제가 있었지만 virt 관리자를 사용하고 있었고 문제가 무엇인지 알아내려고 몇 시간을 보냈습니다. 처음에는 내 xml 파일에 문제가 있다고 생각했습니다. 그런데 실행해 보니 이런 문제가 발생하더군요.sudo pacman -Syu
어떤 이유로 인해 내 qemu-hw-usb-host가 누락되어 USB 호스트가 유효한 장치 이름으로 인식되지 않게 되었습니다.
내 해결책은 libusb를 다시 설치하는 것이었고
sudo pacman -S libusb
(필요한지 확실하지 않음)sudo pacman -S qemu-hw-usb-host
이 문제가 발생하는 모든 사람에게 이것이 간단하고 유용한 해결책이 되기를 바랍니다.