Tôi có thể chuyển qua Cổng USB qua Dòng lệnh qemu không?


10

Tôi đang khởi chạy VM bằng cách sử dụng qemu-system-x86_64. Tôi biết hai cách để đi qua một thiết bị USB.

Nói ví dụ, tôi có một con chuột xuất hiện trong lsusb như

Bus 003 Device 011: ID 6ade:9582 Amazing Mouse Maker

Tôi có thể vượt qua nó bằng cách sử dụng

-device usb-host,vendorid=0x6ade,productid=0x9582

hoặc là

-device usb-host,hostbus=3,hostaddr=11

Tôi cũng không thích cái này. Nếu tôi lấy nó bằng ID nhà cung cấp / sản phẩm thì tôi sẽ không bao giờ có thể lấy lại con chuột đó cho đến khi VM bị tắt.

Nếu tôi lấy nó bằng số Bus và số thiết bị, thì tôi sẽ phải nói với Qemu để hỏi lại nếu tôi rút phích cắm.

Tôi có thể gửi nó bằng Cổng (khe vật lý thực tế) không? Nói rằng nó đã được cắm vào Bus 3 Cổng 2. Tôi có thể vượt qua nó không?

Câu trả lời:


13

Vì một số lý do, điều này không được ghi lại trên Tài liệu người dùng Qemu 2.12.50 và tôi đã phải học những gì tôi học được từ anh chàng này

Họ đề cập đến

-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 

Nhưng họ không đề cập rằng bạn có thể làm

-device usb-host,hostbus=bus,hostport=port

Ví dụ...

Nếu tôi chạy lsusb -t và nhận

/:  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

Tôi có thể quyết định vượt qua những

-device usb-host,hostbus=3,hostport=10 \
-device usb-host,hostbus=3,hostport=11 \

Và những cái tương ứng với các khe vật lý.

Tuy nhiên, bus và cổng sẽ khác nhau đối với khe cắm USB 3.0 tùy thuộc vào việc thiết bị USB 2.0 hoặc thiết bị USB 3.0 được cắm vào nó, nhưng cổng cho mỗi thiết bị sẽ vẫn nhất quán.

Phương sai như vậy không tồn tại cho các khe cắm USB 2.0.

/ * cập nhật: Hub USB * /

Sử dụng dấu chấm để phân tách các cổng. Vì vậy, nếu bạn có ...

/:  Bus 03
|__ Port 2: some stuff
    |__ Port 1: some stuff

Bạn sẽ sử dụng -device usb-host,hostbus=3,hostport=2.1


Tôi đã thử điều này và gặp lỗi: "Không tìm thấy xe buýt 'usb-bus' cho thiết bị 'usb-host'" bằng cách sử dụng qemu 3.1.0 trên Debian Buster. Tôi phát hiện ra rằng bạn cần -usbtrên dòng lệnh là tốt.
Brian Minton

Có vẻ như họ đã cập nhật số lượng lớn, vì vậy họ có thể đã phá vỡ giao diện
DeepDeadpool
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.