New: The g_webcam UVC gadget driver fails to enumerate properly on Windows 11, returning USB\DEVICE_DESCRIPTOR_FAILURE in Device Manager, while other USB gadgets (g_serial, g_mass_storage) work correctly on the same hardware and Windows version. This represent
https://bugzilla.kernel.org/show_bug.cgi?id=220166
Bug ID: 220166
Summary: The g_webcam UVC gadget driver fails to enumerate
properly on Windows 11, returning USB\DEVICE_DESCRIPTOR_FAILURE in Device Manager, while other USB gadgets (g_serial, g_mass_storage) work correctly on the same hardware and Windows version. This represent
Product: Drivers
Version: 2.5
Hardware: All
OS: Linux
Status: NEW
Severity: normal
Priority: P3
Component: USB
Assignee: [email protected]
Reporter: [email protected]
Regression: No
System Information
Hardware: Raspberry Pi Zero W Rev 1.1 (BCM2835, Revision: 9000c1)
Kernel: Linux 6.12.25+rpt-rpi-v6 #1 Raspbian (armv6l) USB Controller: dwc2 20980000.usb
Host OS: Windows 11 (up to date)
Problem Description
When g_webcam is loaded and the Pi Zero W is connected to Windows 11 via USB:
g_webcam behavior:
Loads successfully on Pi: g_webcam ready, bound driver g_webcam UDC state remains: not attached (never reaches configured) Windows shows: Unknown USB Device (Device Descriptor Request Failed) Hardware ID: USB\DEVICE_DESCRIPTOR_FAILURE
g_serial behavior (control test):
Loads successfully: g_serial ready, bound driver g_serial UDC state becomes: configured
Windows properly recognizes as COM port device
Steps to Reproduce
bash# On Raspberry Pi Zero W:
sudo modprobe g_webcam
cat /sys/class/udc/20980000.usb/state # Shows: not attached
# Connect USB cable to Windows 11
# Result: "Unknown USB Device" in Device Manager
# Control test:
sudo rmmod g_webcam
sudo modprobe g_serial
cat /sys/class/udc/20980000.usb/state # Shows: configured
# Result: Working COM port in Windows
Expected vs Actual Behavior
Expected: g_webcam should enumerate successfully on Windows 11 like other gadgets and previous Windows versions.
Actual: Windows 11 rejects the USB device descriptors with DEVICE_DESCRIPTOR_FAILURE.
Analysis
The issue appears to be Windows 11's stricter USB descriptor validation. The g_webcam UVC descriptors may not fully comply with:
USB Video Class specification requirements
Windows 11's enhanced USB security validation
Microsoft's USB descriptor formatting standards
Loaded Modules
g_webcam 16384 0 usb_f_uvc 77824 5 uvc 12288 1 usb_f_uvc libcomposite 69632 17 usb_f_acm,usb_f_uvc,g_webcam dwc2 176128 0
Kernel Messagesg_webcam gadget.0: uvc: uvc_function_bind()g_webcam gadget.0: Webcam Video Gadgetg_webcam gadget.0: g_webcam ready
dwc2 20980000.usb: bound driver g_webcam
Impact
This affects numerous Raspberry Pi Zero W webcam projects and tutorials that previously worked with Windows. Users report this issue across multiple Pi Zero W webcam implementations.
Suggested Investigation Areas
USB Descriptor Compliance: Review g_webcam's USB descriptors against latest USB Video Class specification
Windows 11 Requirements: Compare descriptor format with Windows 11's validation requirements
VID/PID Issues: Verify Vendor/Product ID configuration doesn't trigger Windows driver conflicts
UVC Version Compatibility: Check if UVC version advertised matches capabilities provided
Request
Could the maintainers investigate updating g_webcam's USB descriptors to meet Windows 11's stricter validation requirements? The fact that g_serial works but g_webcam fails suggests this is a descriptor-specific issue rather than hardware or driver framework problem.
Additional Information Available
I can provide:
USB protocol analyzer captures
Testing with different Windows versions
Comparison with working UVC implementations
Further diagnostic information as needed
Thank you for maintaining the USB gadget subsystem.
Reporter: [Your name and email]
Date: May 27, 2025
Signature · 4 lines
You may reply to this email to add a comment. You are receiving this mail because: You are watching the assignee of the bug.
[Bug 220166] The g_webcam UVC gadget driver fails to enumerate properly on Windows 11, returning USB\DEVICE_DESCRIPTOR_FAILURE in Device Manager, while other USB gadgets (g_serial, g_mass_storage) work correctly on the same hardware and Windows version. This represent
https://bugzilla.kernel.org/show_bug.cgi?id=220166
Artem S. Tashkinov ([email protected]) changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|USB |v4l-core
Assignee|[email protected] |v4l-dvb_v4l-core@kernel-bug
|nel.org |s.osdl.org
Product|Drivers |v4l-dvbSignature · 4 lines
You may reply to this email to add a comment. You are receiving this mail because: You are watching the assignee of the bug.