USB passthrough in bhyve, USB keyboard disconnected
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 11 Aug 2021 10:30:06 UTC
Hello, We are working on the USB passthrough functionality for bhyve and we are currently focusing on the passthrough of a USB keyboard. We implemented the enumeration process and it seems to work properly, as we can see the information about the USB keyboard inside the virtual machine through the 'usbconfig' command: (guest) $ usbconfig (guest) ugen0.2: <Chicony HP Elite USB Keyboard> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA) But at some point during the boot of the guest virtual machine, the USB keyboard is powered off: any LED from the keyboard is turned off and pressing any key does not generate logs in the guest or in the host. We tried multiple commands to display the information about the USB device: usbconfig, devinfo. We compared the outputs from the host and guest and the attachment to the guest looks correct. To inspect the transfers, we used the command below, but nothing is displayed on the guest: usbdump -i usbusX -f Y -s 65536 -vvv In the logs we see the steps of the enumeration successfully executed, and then some timeout errors, as we cannot execute any transfer with the keyboard, which seems disconnected. Could you help us find out why this disconnection happens? Could you give us a path for investigating this problem? We used multiple work environments: - the FreeBSD host started in QEMU kvm; nested virtualization enabled to create guest machine - FreeBSD host directly on a PC The behavior of our feature is the same. If you want to take a look, [1] is the repo containing our implementation; here [2] you can find iso files from our sources, and here [3] is a tutorial, describing the steps we use to create, run and destroy a virtual machine. Thank you! [1] https://github.com/FreeBSD-UPB/freebsd-src/tree/projects/bhyve_usb_passthrough [2] https://drive.google.com/drive/folders/17xUlbWSZ-wn6xT2ouv-M6miHV_LDeIEw?usp=sharing [3] https://github.com/FreeBSD-UPB/freebsd-src/wiki/Working-with-virtual-machines-in-bhyve-for-USB-passthrough