qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Qeustion] USB passthough doesn't work on Windows.


From: Geunhae Lee
Subject: Re: [Qemu-devel] [Qeustion] USB passthough doesn't work on Windows.
Date: Wed, 10 Jul 2013 22:37:52 +0900

thank you for kind reply

i personally tried to test QEMU on Windows with libusb feature (--enable-libusb)

but, figured out qemu/hw/usb/host-libusb.c is linux-dependent . 
- because. it includes <poll.h> which  is not compatible. 
by the way, libusb has some OS-specific (porting) codes in it . 

any plan on changing this  ?

currently i've worked around this compile error, and keep testing. 
but i've not seen the result yet.  
hopefully willl share some real result with you 

Regards. 

Geunhae




2013/7/10 Hans de Goede <address@hidden>
Hi,


On 07/08/2013 05:08 PM, Geunhae Lee wrote:
hi thanks for you kind answer,
admit about lacking of infos haha..

here's my situations.

1. i currently use QEMU ver 1.2, but plan to upgrade to 1.5 soon.
2. in version 1.2, i found that USB passthrough is not supported on Windows/Mac.
     In version 1.5, however, it seems possible to use passthrough by re-implementing usb host (libusb)  , right?

libusb already is ported to windows and darwin, but support there is limited, mostly
because the OS tends to get in the way a lot more there then under Linux.

In general under Windows it requires uninstalling the windows driver for the device, and
replacing it with one of 3 supported generic usb drivers: winusb, libusb0 or libusbk.

Under Darwin there is a standard API for accessing USB devices from userspace (like under
Linux), and just like under Linux the native device driver needs to be detached first.

The problem is that unlike under Linux, the native driver can refuse to be detached, and
many drivers have stub code for this functionality like this:

int detach_driver(...)
{
    return -EPERM;
}

IOW most Darwin drivers refuse to be detached from their device, making it impossible to
redirect them. This can be circumvented by first replacing the driver with a so called
codeless kext.

So all in all doing usb redirection under Windows and Mac OS X is far from trivial, on paper
it is supported with the new libusb host redirection code, but the user will likely need
to first swap drivers manually before a device can be redirected (and then manually swap them
back to give the device back to the host os later).


     but i didn't find out any former work which uses USB passthrough on Windows and Mac

  so my questions are 2 followings.

1.  is there any articles about using USB passthrough on Windows and MAC

No.


2.  do you guys have some performance issues?
      -  libusb vs former implementation (qemu ver 1.2)

libusb's passthrough performance under Linux should be identical (and in some cases slightly
better) then the DIY code we were using before.

Regards,

Hans


reply via email to

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