iPod Touch 5G와 Windows 7 VM이 있습니다. Windows에서 인식할 수 있도록 iPod Touch를 VM에 전달하려고 하는데 qemu 모니터에서 다음 오류가 발생합니다.
(qemu) usb_add host:05ac:12aa Warning: speed mismatch trying to attach usb device "iPod" (high speed) to bus "usb-bus.0", port "2.1" (full speed) (qemu) qemu-system-x86_64: Warning: speed mismatch trying to attach usb device "iPod" (high speed) to bus "usb-bus.0", port "2.1" (full speed) qemu-system-x86_64: Warning: speed mismatch trying to attach usb device "iPod" (high speed) to bus "usb-bus.0", port "2.1" (full speed) (qemu)
답변1
2~3일 정도 이것저것 고민하다가 해결방법을 찾았습니다. 실제로 오픈 소스 소프트웨어는 소프트웨어 사용 방법에 대한 더 나은 문서를 개발해야 합니다!!
위의 USB 속도 불일치 경고는 장치가 usb2.x/usb-ehci 또는 usb3.x/usb-xhci인 반면 이전 USB 호스트 컨트롤러 드라이버(usb-bus = usb1.x)를 로드하고 있기 때문에 발생합니다. 따라서 USB 속도 불일치가 발생합니다.
qemu 명령과 함께 USB 호스트 컨트롤러를 로드합니다.
qemu-system-x86_64 --enable-kvm -m 4G -monitor stdio -usb -device nec-usb-xhci,id=xhci -device usb-ehci,id=ehci /pathtovirtdiskfile.vmdk
아래 명령을 실행하여 qemu 터미널에서 USB 호스트 장치를 확인하세요.
info usbhost
Apple 장치는 아래와 같이 여기에 나열됩니다.
Bus 3, Addr 8, Port 3, Speed 480 Mb/s Class 00: USB device, iPhone
위 명령에서 반환된 USB 호스트 장치를 게스트 시스템에 추가합니다.
device_add usb-host,hostbus=3,hostaddr=8,id=usb2.0,bus=ehci.0,port=3
이제 게스트 시스템에 Apple 장치가 나타납니다.
답변2
sccott의 솔루션을 개선하고 싶습니다.
이것을 qemu 부팅 매개변수에 추가했는데, 장점은 Vendorid/productid와 일치한다는 것입니다. 따라서 USB가 언제/어디에 플러그인되어 있든 자동으로 작동합니다.
-device usb-ehci,id=ehci -device usb-host,vendorid=0x05ac,productid=0x12a8,bus=ehci.0,port=1
각 플래그에 대한 간략한 설명입니다.
-device usb-ehci,id=ehci
Apple 장치에 연결할 수 있는 ehci USB 컨트롤러를 만듭니다.-device usb-host,vendorid=0x05ac,productid=0x12a8
공급업체 ID와 제품 ID로 USB 장치를 통과합니다. (비슷한 구문이 있지만-usbdevice host:05ac:12a8
나중에 매개변수를 사용하지 않기 때문에 이것은 까다롭습니다.bus=ehci.0
Apple 장치를 USB2.0 허브에 연결했습니다. Scocott이 말했듯이 이렇게 하면 속도 불일치 경고가 제거됩니다.port=1
Apple 장치에는 단일 주소(USB 케이블)의 여러 USB 포트가 있으므로 동기화를 위해 첫 번째 포트를 선택해야 합니다.