Software⏱️ 4 min read📅 2026-06-11

How to Fix: usb-host is not a valid device name - error when trying to pass USB to Qemu

Qemu system error when trying to pass USB device to Windows VM.

Quick Answer: Use the correct device model name, such as 'usb-ehci', and ensure the hostbus and hostaddr parameters match the actual device ID.

The error 'usb-host is not a valid device name' occurs when attempting to pass a USB device to Qemu on Windows. This issue affects users who are trying to use Qemu-kvm with a Wind River Linux guest OS and want to access external USB devices.

This error can be frustrating as it prevents the user from accessing their external USB devices within the virtual machine. However, by following the steps outlined in this guide, you should be able to resolve the issue and successfully pass your USB device to Qemu.

🛑 Root Causes of the Error

  • The primary reason for this error is that the 'usb-host' device model name is not supported by Qemu-kvm. This is because 'usb-host' is a Linux-specific device model that is used to interact with host-side USB devices, but it is not directly compatible with Windows-based systems like Qemu-kvm.
  • An alternative reason for this error could be that the USB device being passed to Qemu does not have a valid bus number or host address. This can occur if the USB device is not properly recognized by the host system or if the bus number or host address specified in the Qemu command line is incorrect.

🚀 How to Resolve This Issue

Using the 'usb-ehci' device model

  1. Step 1: First, ensure that you have installed the necessary drivers for your USB device on the host system. This may involve installing additional software or firmware for the specific device. For example, if you are using a Transcend JetFlash USB drive, you may need to install additional drivers to enable it to be recognized by the host system.
  2. Step 2: Next, modify your Qemu command line to include the 'usb-ehci' device model instead of 'usb-host'. This can be done by replacing the '-device usb-host' option with '-device usb-ehci'. For example: `-device usb-ehci,id=xhci -device usb-storage,driver=ahci -device virtio-blk-pci,drive=xhci`. Note that you will also need to specify the driver for your USB storage device using the 'driver' option.
  3. Step 3: Finally, restart Qemu and attempt to access your USB device within the virtual machine. If the issue persists, check the Qemu logs for any error messages or clues about what may be causing the problem.

Using a different USB device model

  1. Step 1: First, review the list of supported USB device models provided by Qemu-kvm to determine which one is most suitable for your specific use case. In this example, we have already tried using the 'usb-ehci' device model, but other options such as 'ich9-usb-echi1', 'nec-usb-xhci', or 'piix3-usb-uhci' may also be worth trying.
  2. Step 2: Next, modify your Qemu command line to include the selected USB device model. For example: `-device ich9-usb-echi1,id=xhci -device virtio-blk-pci,drive=xhci`. Note that you will need to specify the drive option for your USB storage device using the 'drive' option.
  3. Step 3: Finally, restart Qemu and attempt to access your USB device within the virtual machine. If the issue persists, check the Qemu logs for any error messages or clues about what may be causing the problem.

🎯 Final Words

By following these steps and selecting the appropriate USB device model, you should be able to resolve the 'usb-host is not a valid device name' error and successfully pass your USB device to Qemu on Windows.

Did this fix your problem?

If not, try searching for specific error codes.

🔍 Search Error Database

❓ Frequently Asked Questions