qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] qemu 0.15.0 testing, usb redirection, and libusb_get_device_speed()
@ 2011-08-15 20:26 Juergen Lock
  2011-08-16  7:37 ` Hans Petter Selasky
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Juergen Lock @ 2011-08-15 20:26 UTC (permalink / raw)
  To: freebsd-emulation; +Cc: hselasky, freebsd-usb, qemu-devel

Hi!

 I just prepared a preliminary update of the emulators/qemu-devel
port to 0.15.0 [1], and among other things it now also has a
usb network redirection feature using usbredir [2], which uses
libusb 1.0 and a function that is missing in our version,
libusb_get_device_speed().  I added a stub to the code that
always returns LIBUSB_SPEED_UNKNOWN
(files/patch-usbredirhost-usbredirhost.c in the usbredir port [2]),
question for Hans (I guess), would there be an easy way to make a
`proper' implementation?

 If anyone wants to help me test qemu 0.15.0, thanx!

 I also updated the net.c and net.h udp patches for gns3 for this qemu
version: (the other gns3 patchfiles for qemu 0.14 still apply)

	http://people.freebsd.org/~nox/qemu/qemu-0.15.0-gns3-patches/

 I added this note to the qemu-devel pkg-message about the usb
redirection [1]:

------------snip------
- If you want to test the new (in 0.15.0) usb network redirection (USBREDIR
  option) see this thread by Hans de Goede <hdegoede <at> redhat.com>:

        http://thread.gmane.org/gmane.comp.emulators.qemu/110176/focus=110183

  Quote:

  Example usage:

  1) Start usbredirserver for a usb device:
  sudo usbredirserver 045e:0772
  2) Start qemu with usb2 support + a chardev talking to usbredirserver +
     a usb-redir device using this chardev:
  qemu ... \
    -readconfig docs/ich9-ehci-uhci.cfg \
    -chardev socket,id=usbredirchardev,host=localhost,port=4000 \
    -device usb-redir,chardev=usbredirchardev,id=usbredirdev

  [you would replace docs/ich9-ehci-uhci.cfg with e.g.
  /usr/local/share/doc/qemu/docs/ich9-ehci-uhci.cfg, but turns out
  ehci seems broken for me here with FreeBSD guests at least, I get:

        FETCHENTRY: entry at 22C5484 is of type 2 which is not supported yet
processing error - resetting ehci HC

        Assertion failed: (0), function ehci_advance_state, file /data/ports/emulators/qemu-devel/work/qemu-0.15.0/hw/usb-ehci.c, line 2045.

  Starting the same without ehci (-readconfig) works, tho usbredirserver
  crashes when qemu exits.]
------------snip------

 Thanx! :)
	Juergen


[1] Changelog:

	http://wiki.qemu.org/ChangeLog/0.15

    Preliminary port:

	http://people.freebsd.org/~nox/qemu/qemu-devel-0.15.0.shar

    Patch against current qemu-devel port:

	http://people.freebsd.org/~nox/qemu/qemu-devel-0.15.0.patch

[2] usbredir 0.3:

	http://cgit.freedesktop.org/~jwrdegoede/usbredir/

    Preliminary port:

	http://people.freebsd.org/~nox/qemu/usbredir.shar

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: [Qemu-devel] qemu 0.15.0 testing, usb redirection, and libusb_get_device_speed()
@ 2011-08-16  7:37 Hans Petter Selasky
  2011-08-16 19:54 ` Juergen Lock
  0 siblings, 1 reply; 9+ messages in thread
From: Hans Petter Selasky @ 2011-08-16  7:37 UTC (permalink / raw)
  To: Juergen Lock
  Cc: freebsd-emulation@FreeBSD.org, qemu-devel@nongnu.org,
	freebsd-usb@FreeBSD.org

[-- Attachment #1: Type: text/plain, Size: 945 bytes --]

On Monday 15 August 2011 22:26:56 Juergen Lock wrote:
> Hi!
> 
>  I just prepared a preliminary update of the emulators/qemu-devel
> port to 0.15.0 [1], and among other things it now also has a
> usb network redirection feature using usbredir [2], which uses
> libusb 1.0 and a function that is missing in our version,
> libusb_get_device_speed().  I added a stub to the code that
> always returns LIBUSB_SPEED_UNKNOWN
> (files/patch-usbredirhost-usbredirhost.c in the usbredir port [2]),
> question for Hans (I guess), would there be an easy way to make a
> `proper' implementation?
> 
>  If anyone wants to help me test qemu 0.15.0, thanx!

Please try the attached patch to libusb in /usr/src/lib/libusb .

You only need to rebuild libusb: make all install clean

>         FETCHENTRY: entry at 22C5484 is of type 2 which is not supported
> yet processing error - resetting ehci HC

Try my patch first. EHCI needs to know device speed.

--HPS

[-- Attachment #2: libusb_speed.txt --]
[-- Type: text/plain, Size: 1659 bytes --]

=== libusb.h
==================================================================
--- libusb.h	(revision 224768)
+++ libusb.h	(local)
@@ -151,6 +151,14 @@
 	LIBUSB_ERROR_OTHER = -99,
 };
 
+enum libusb_speed {
+	LIBUSB_SPEED_UNKNOWN = 0,
+	LIBUSB_SPEED_LOW = 1,
+	LIBUSB_SPEED_FULL = 2,
+	LIBUSB_SPEED_HIGH = 3,
+	LIBUSB_SPEED_SUPER = 4,
+};
+
 enum libusb_transfer_status {
 	LIBUSB_TRANSFER_COMPLETED,
 	LIBUSB_TRANSFER_ERROR,
@@ -304,6 +312,7 @@
 void	libusb_free_device_list(libusb_device ** list, int unref_devices);
 uint8_t	libusb_get_bus_number(libusb_device * dev);
 uint8_t	libusb_get_device_address(libusb_device * dev);
+enum libusb_speed libusb_get_device_speed(libusb_device * dev);
 int	libusb_clear_halt(libusb_device_handle *devh, uint8_t endpoint);
 int	libusb_get_max_packet_size(libusb_device * dev, uint8_t endpoint);
 libusb_device *libusb_ref_device(libusb_device * dev);
=== libusb10.c
==================================================================
--- libusb10.c	(revision 224768)
+++ libusb10.c	(local)
@@ -272,6 +272,27 @@
 	return (libusb20_dev_get_address(dev->os_priv));
 }
 
+enum libusb_speed
+libusb_get_device_speed(libusb_device *dev)
+{
+	if (dev == NULL)
+		return (0);		/* should not happen */
+
+	switch (libusb20_dev_get_speed(dev->os_priv)) {
+	case LIBUSB20_SPEED_LOW:
+		return (LIBUSB_SPEED_LOW);
+	case LIBUSB20_SPEED_FULL:
+		return (LIBUSB_SPEED_FULL);
+	case LIBUSB20_SPEED_HIGH:
+		return (LIBUSB_SPEED_HIGH);
+	case LIBUSB20_SPEED_SUPER:
+		return (LIBUSB_SPEED_SUPER);
+	default:
+		break;
+	}
+	return (LIBUSB_SPEED_UNKNOWN);
+}
+
 int
 libusb_get_max_packet_size(libusb_device *dev, uint8_t endpoint)
 {

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-08-26 11:53 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-15 20:26 [Qemu-devel] qemu 0.15.0 testing, usb redirection, and libusb_get_device_speed() Juergen Lock
2011-08-16  7:37 ` Hans Petter Selasky
2011-08-16 17:27 ` Hans Petter Selasky
2011-08-26 10:42 ` Gerd Hoffmann
2011-08-26 11:52   ` Gerd Hoffmann
  -- strict thread matches above, loose matches on Subject: below --
2011-08-16  7:37 Hans Petter Selasky
2011-08-16 19:54 ` Juergen Lock
2011-08-16 20:22   ` Juergen Lock
2011-08-17 21:14   ` Gerd Hoffmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).