을 사용하여 가상 머신을 시작하고 있습니다 qemu-system-x86_64
. USB 장치를 통한 두 가지 방법을 알고 있습니다.
예를 들어, lsusb에 다음과 같이 나타나는 마우스가 있습니다.
Bus 003 Device 011: ID 6ade:9582 Amazing Mouse Maker
나는 이것을 사용하여 이것을 할 수 있습니다
-device usb-host,vendorid=0x6ade,productid=0x9582
또는
-device usb-host,hostbus=3,hostaddr=11
나는 이것들 중 어느 것도 좋아하지 않습니다. 공급업체/제품 ID로 가져오면 VM이 종료될 때까지 마우스를 재활용할 수 없습니다.
버스와 장치 번호로 가져오면 플러그를 뽑으면 Qemu에게 다시 가져오라고 지시해야 합니다.
포트(실제 물리적 슬롯)를 통해 보낼 수 있나요? 버스 3 포트 2에 연결되어 있다고 가정합니다. 우회할 수 있나요?
답변1
어떤 이유로 이것은 문서화되지 않았습니다.Qemu 2.12.50 사용자 문서내가 배운 것을 배워야 해이 남자
그들은 다음과 같이 언급했습니다.
-device usb-host,hostbus=bus,hostaddr=addr
Pass through the host device identified by bus and addr
-device usb-host,vendorid=vendor,productid=product
Pass through the host device identified by vendor and product ID
하지만 그들은 당신이 이것을 할 수도 있다고 언급하지 않습니다:
-device usb-host,hostbus=bus,hostport=port
예를 들어...
실행하면 lsusb -t
다음을 얻습니다.
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
|__ Port 10: Dev 8, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 11: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 12M
나는 다음과 같이 결정할 수 있습니다.
-device usb-host,hostbus=3,hostport=10 \
-device usb-host,hostbus=3,hostport=11 \
이는 물리적 슬롯에 해당합니다.
그러나 USB 3.0 슬롯의 버스와 포트는 USB 2.0 또는 USB 3.0 장치가 연결되어 있는지에 따라 다르지만 포트는 각 장치에 대해 일관되게 유지됩니다.
USB 2.0 슬롯에는 이러한 차이가 없습니다.
USB 허브의 경우 점을 사용하여 포트를 구분하세요. 그렇다면...
/: Bus 03
|__ Port 2: some stuff
|__ Port 1: some stuff
당신은 사용할 것이다-device usb-host,hostbus=3,hostport=2.1