Hi,

On 06/24/2013 11:40 AM, 邵鄭叡 wrote:
Hi all,
maybe I should post this message to [usbredir and qemu devel list] ,
but I just didnt find it :)

By default, spice-gtk filters out 'usb hubs' from redir list, and only show 
'non-hub non-interface' usb devs.

But sometime, we want to just simply pass a usb-hub to guest , and dont care 
about whatever is plugged on it.

So, I tweaked spice-gtk a bit  like this:

static void spice_usb_device_manager_add_dev(SpiceUsbDeviceManager  *self,
                                              GUdevDevice            *udev)
{
...
     /* Skip hubs */
     devclass = g_udev_device_get_sysfs_attr(udev, "bDeviceClass");
     if (!devclass || !strcmp(devclass, "09"))
     {
-       return;
+      printf(" Yes, it's a hub, and we want it :) \n  ");
...
     }

Then, something interesting happened after I redired a usb-hub with a usb-disk 
plugged on it.
1. The hub is successfully redired into guest.
     I can see it in 'Window Device Manager' , it is correctly recognized as 
'usb hub' with right usb transfer speed (in my case , 480M).

2. The usb-disk is also detected by windows, and addressed under the hub.
    But we are not lucky enough to see it as 'usb mass storage', but as 
'unknown device'.

3. If I redir the usb-disk rather than the hub, that's OK.

USB-redirection works on a usb-device bases, if you redirect a hub, you will 
only be redirecting
the hub and not any devices attached to it, which is why your test fails and 
why you cannot
redirect hubs (as you've found out). This is also the reason why the check is 
there (and should stay
there) in spice_usb_device_manager.

Regards,

Hans


_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to