Linux USB
 help / color / mirror / Atom feed
From: Michal Pecio <michal.pecio@gmail.com>
To: Nikhil Solanke <nikhilsolanke5@gmail.com>
Cc: Alan Stern <stern@rowland.harvard.edu>,
	linux-usb@vger.kernel.org, gregkh@linuxfoundation.org,
	mathias.nyman@linux.intel.com, sakari.ailus@linux.intel.com,
	katieeliu@tencent.com, johannes.bruederl@gmail.com,
	kees@kernel.org, dengjie03@kylinos.cn, limiao@kylinos.cn,
	wse@tuxedocomputers.com, dev@a1rm4x.com, vahnenko2003@gmail.com,
	cs@tuxedo.de, lijiayi@kylinos.cn, oneukum@suse.com,
	bence98@sch.bme.hu, eeodqql09@gmail.com
Subject: Re: USB: Request for guidance investigating configuration descriptor enumeration failure
Date: Tue, 2 Jun 2026 19:30:47 +0200	[thread overview]
Message-ID: <20260602193047.5fe03b8d.michal.pecio@gmail.com> (raw)
In-Reply-To: <CAFgddh+dLnR=AuAU65sxqsxAgqLYX9i0OiX3Ys_sPH+YeZuHVw@mail.gmail.com>

On Mon, 1 Jun 2026 14:31:59 +0530, Nikhil Solanke wrote:
> It didn't occur to me before, but since i had a patched kernel which
> enumerated and initialized the device properly, i was able to do a usb
> device passthrough/redirect of the controller when it is in xinput
> mode. I have utilized libvirt for this purpose. I tried doing what
> Michal did by using qemu cmdline directly and specifying the location
> for pcap file, but for some reason the pcap file only contained
> request packets. there were no response packets.

It may be a QEMU bug because the same happens to me when I pass through
host devices. The full trace I posted was from a QEMU emulated device.

You can also run Wireshark on the Linux host and it seems that QEMU
forwards all control requests unmodified to the device and Wireshark
records responses too. But it also records some additional string
descriptor requests (apparently originated by QEMU) and any random
traffic on the bus to other devices.

I passed through some serial dongles that my Windows had no drivers for
and I found that it only issues two requests for the device descriptor,
one 255 byte request for the configuration descriptor (possibly another
one if configuration exceeds 255 bytes, will try to find such a device)
and a few requests for string descriptors. That's it.

The other junk only appears when I install class driver for the device.
And I still haven't installed Wireshark in QEMU Windows, but it appears
that Windows Wireshark only sees that class driver traffic and nothing
from core USB subsystem. So it's useless for our purpose.

> I have attached the wireshark captures from the linux guest as well as
> the libvirt xml. i also had tried using ehci/usb 2 on the guest.

I only mentioned EHCI to ask if any of the hosts that you tried had it.
The point was to rule out possibility of xhci-hcd bug, when we still
believed that Windows issues identical 9 byte requests on the same
xHCI controller and somehow succeeds.

Now we know that Windows Wireshark traces were misleading and the use
of 255 byte requests likely explains how Windows enumerates the device
successfully and Linux fails without your patch.

Regards,
Michal

  reply	other threads:[~2026-06-02 17:31 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-29 21:22 USB: Request for guidance investigating configuration descriptor enumeration failure Nikhil Solanke
2026-05-30  1:58 ` Alan Stern
2026-05-30  6:57   ` Nikhil Solanke
2026-05-30 14:48     ` Alan Stern
2026-05-30 16:48       ` Nikhil Solanke
2026-05-30 20:26         ` Alan Stern
2026-05-30 20:47           ` Nikhil Solanke
2026-05-31  1:44             ` Alan Stern
2026-05-31  7:49               ` Nikhil Solanke
2026-05-31 14:03                 ` Alan Stern
2026-05-31  8:16 ` Michal Pecio
2026-05-31 10:11   ` Nikhil Solanke
2026-05-31 10:38     ` Michal Pecio
2026-05-31 11:20       ` Nikhil Solanke
2026-05-31 14:12       ` Alan Stern
2026-06-01  6:49         ` Michal Pecio
2026-06-01  9:01           ` Nikhil Solanke
2026-06-02 17:30             ` Michal Pecio [this message]
2026-06-01 13:02           ` Alan Stern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260602193047.5fe03b8d.michal.pecio@gmail.com \
    --to=michal.pecio@gmail.com \
    --cc=bence98@sch.bme.hu \
    --cc=cs@tuxedo.de \
    --cc=dengjie03@kylinos.cn \
    --cc=dev@a1rm4x.com \
    --cc=eeodqql09@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=johannes.bruederl@gmail.com \
    --cc=katieeliu@tencent.com \
    --cc=kees@kernel.org \
    --cc=lijiayi@kylinos.cn \
    --cc=limiao@kylinos.cn \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@linux.intel.com \
    --cc=nikhilsolanke5@gmail.com \
    --cc=oneukum@suse.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=stern@rowland.harvard.edu \
    --cc=vahnenko2003@gmail.com \
    --cc=wse@tuxedocomputers.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox