qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] USB Passthrough not working for Windows 7 guest


From: Jan Kiszka
Subject: Re: [Qemu-devel] USB Passthrough not working for Windows 7 guest
Date: Wed, 06 Nov 2013 07:58:27 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

On 2013-11-05 21:20, Jens Frederich wrote:
>> On 2013-11-05 17:01, Frederich, Jens wrote:
>>> Hi all,
>>>
>>> we're currently evaluating different RTOS systems (Windows CE, Intime, RTX,
>>> etc.).
>>> One system is Linux RT + KVM/QEMU with a Windows 7 guest. Up to now all
>>> works fine, Linux RT has good latency and KVM/Qemu setup was easy. But one
>>> QEMU bug
>>> breaks my measurement setup and evaluation.
>>>
>>> I've some usb devices for the Windows 7 guest. I configure them as USB
>>> passthrough.
>>> The devices appears in the device manager of Windows 7, but with
>>> "Error code 10": device cannot start". The Windows driver fails on USB set
>>> configuration.
>>> The driver creates a IRP and send it via IOCTRL to lower layer. The IOCTRL
>>> fails with
>>> invalid parameter.
>>>
>>> driver log:
>>> 00000009      0.65470564      vnCDrvUsbControlRequestSetConfiguration,
>>> WdfUsbTargetDeviceSelectConfig single interface failed 0xc000000d
>>> 00000010      0.65472370      vnCDrvUsbIFPrepareHardwareState,
>>> vnCDrvUsbControlRequestSetConfiguration failed: 0xc000000d
>>> 00000011      0.65473646      vnCDrvDevConPrepareHardware,
>>> vnCDrvUsbIFPrepareHardwareState failed 0xc000000d
>>> 00000012      0.65474838      vnCDrvEvtDevicePrepareHardware,
>>> vnCDrvDevConPrepareHardware failed 0xc0000001
>>> 00000013      0.6547
>>>
>>> This bug breaks my latency measurement setup and Linux RT is out of the
>>> evaluationg
>>> race. Windows CE should not win :-), it there anyway workaround or hack to
>>> fix the issue?
>>
>> Workaround: Pass-through one of the (typically) many USB host
>> controllers to the Windows guest (vfio or classic pci-assign). I did
>> this back then when *HCI emulation was still pretty immature.
>>
>> But USB device pass-through should also work. Do you happen to pass a
>> USB 2.0 device via an emulated UHCI? Or are you already using the EHCI
>> emulation?
> 
> I'm not sure which mode it has been. I've used the virt-manager to configure
> the device. A usb controller is already configured in mode 'default'.
> My steps on virt-manager:
> 
> 1. add hardware
> 2. select usb host device
> 3. I can see my usb device, I select it
> 4. start guest and open Windows device manager

Unfortunately, I do not know what virt-manager is configuring by
default. It likely also depends on its version, so you should share this
information as well. Maybe other folks here can comment on this.

> 
> I don't know is this UHCI or EHCI? On the usb host device list are
> some controller listed e.q. xhci, ehci and so on. Should I map these
> controller to Windows 7 as well?

Pick the host controller to which the USB device you want to give to the
guest is attached to (lsusb and the bus number reported via
/sys/bus/pci/devices/<id>/usbX can tell this - or trial and error). When
doing this, you no longer need to pass through the USB device itself, it
is implicitely passed.

Jan

-- 
Siemens AG, Corporate Technology, CT RTC ITP SES-DE
Corporate Competence Center Embedded Linux



reply via email to

[Prev in Thread] Current Thread [Next in Thread]