I am trying to get my Windows VM to access my USB pen drive, but I am having problems passing this USB over to the VM.

On my Linux host machine, I ran lsusb where my device was identified as

Bus 001 Device 018 : ID 8564:1000 Transcend Information, Inc. Jetflash

Looking at a few guides, I tried to pass this USB to kvm using

qemu-system-x86_64 -m 3G --enable-kvm "Windows 10.qcow2" -usb -device usb-host,hostbus=1,hostaddr=18

No matter what I try, I get the error saying "usb-host" is not a valid device.

I tried to change that to usb-storage, since that is the class of device I see for it when doing lsusb -t, but I don't know what to pass for Device ID..If I leave it blank, it says property ".drive" is missing, as expected.

I tried doing a ls /sys/bus/usb/devices which printed out some information like

1-0:10 1-1 1-1.1 ........usb1 usb2

But no matter which id I try and pass along in the command qemu-system-x86_64 -m 3G --enable-kvm "Windows 10.qcow2" -usb -device usb-storage,drive=<one of the above>,

it says no such property with given value exists.


  1. Should I be concerned that usb-host is not a valid device?
  2. What do I need to do to get usb-storage with device id to work?
  3. Does qemu-kvm support usb 2, 3 and streaming camera?

I'm using QEMU emulator version 4.1.0


just thought I'd put my two cents in. I was trying to add a usb printer to my VM and tried the whole "qemu-kvm" command route to no avail. I eventually just manually added the xml entry into my VM's domain xml following this libvirt link. On the host machine run:


Find the line that represents your usb device.

Bus 001 Device 003: ID 03f0:1617 HP, Inc LaserJet 3015

"ID" represents your vendor id and product id seperated by a colon. Then simply replace your devices vendor and product id in the xml code below (include the 0x for hex) and add it as an element with-in your VM's "devices" block:

<hostdev mode='subsystem' type='usb'>                                                            
  <source startupPolicy='optional'>                                                              
    <vendor id='0x03f0'/>                                                                        
    <product id='0x1617'/>                                                                       
  <boot order='2'/>                                                                              

Good luck and hope this helps. FYI, to edit your domain's xml file, run:

virsh dumpxml yourdomain

and then

virsh edit yourdomain

This will load the xml file you can edit.


If using a graphical front-end is okay for you, virt-manager's USB-passthrough works.

In the info section click add Hardware and select USB Host Device.

I use it to pass pen drives to Windows 10 guests and didn't encounter any problems until now.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.