* Re: [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 [not found] <CABWMpWQiSEKMkROgKZJ6nV8GXYgr7E=-SmsatQie4eK8b3F9Xw@mail.gmail.com> @ 2026-07-30 19:28 ` Jamie Stephens 2026-08-04 10:06 ` Thorsten Leemhuis ` (2 more replies) 0 siblings, 3 replies; 11+ messages in thread From: Jamie Stephens @ 2026-07-30 19:28 UTC (permalink / raw) To: jikos, bentiss; +Cc: regressions, gregkh, stern, linux-usb, linux-input Hi, Per the recommendation on Proxmox Bugzilla #7850, I’m reporting what appears to be a Linux USB/HID regression affecting a CyberPower LE1000DG UPS. Hardware UPS CyberPower LE1000DG USB VID:PID 0764:0501 Affected x86 platform Intel Tiger Lake-H USB 3.2 Gen 2 xHCI Host Controller PCI ID: 8086:43ed Problem When connected to the x86 system, the UPS enumerates successfully and is bound by the kernel to hid-generic. Kernel messages include: usb 1-3: New USB device found, idVendor=0764, idProduct=0501 usb 1-3: Product: LE1000DG hid-generic 0003:0764:0501.0001: hiddev0,hidraw0: USB HID v1.11 Device [CPS LE1000DG] However, sudo lsusb -v -d 0764:0501 reports: wDescriptorLength 504 Warning: can't get report descriptor, LIBUSB_ERROR_PIPE cannot read device status, Resource temporarily unavailable (11) As a result, usbhid-ups is unable to reliably communicate with the device and NUT cannot reliably monitor UPS status. Kernels Tested The issue reproduces on: Proxmox VE kernel 7.0.14-5-pve Proxmox VE kernel 7.0.14-6-pve Ubuntu mainline 7.1.5-070105-generic Reproducing the issue on an Ubuntu mainline kernel indicates the behavior is not specific to Proxmox and appears to exist in upstream Linux as well. Comparison The identical UPS, USB cable, and NUT configuration were moved to a Raspberry Pi 5 running: Debian 13 (trixie) Linux 6.18.34+rpt-rpi-2712 NUT 2.8.1 On the Raspberry Pi: the device binds successfully to hid-generic usbhid-ups initializes successfully NUT communicates reliably upsc ups@localhost consistently returns complete UPS status, including charge, runtime, voltage, load, and other telemetry This behavior has remained reliable through repeated testing and reboots. For completeness, lsusb -v on the Raspberry Pi also reports the HID report descriptor as unavailable. Despite this, usbhid-ups communicates with the UPS reliably. The communication failure only occurs on the affected x86 platform. Troubleshooting Performed Tested multiple USB ports Tested USB 2.0 and USB 3.x ports Replaced the USB cable Tested NUT 2.8.1, 2.8.5, and current development master Tested as both root and the nut service user Verified udev permissions Verified USB VID:PID 0764:0501 Reproduced the issue on Ubuntu mainline 7.1.5 A Proxmox developer suggested this may require a USB HID device quirk and requested that the issue be reported upstream. Reference: Proxmox Bugzilla #7850: https://bugzilla.proxmox.com/show_bug.cgi?id=7850 Please let me know if additional information would be helpful. I can provide complete dmesg, lsusb, and usbhid-upsdebug logs or perform additional testing if needed. Thank you, Jamie Stephens ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 2026-07-30 19:28 ` [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 Jamie Stephens @ 2026-08-04 10:06 ` Thorsten Leemhuis 2026-08-04 18:56 ` Lovekesh Solanki 2026-08-05 4:48 ` Michal Pecio 2 siblings, 0 replies; 11+ messages in thread From: Thorsten Leemhuis @ 2026-08-04 10:06 UTC (permalink / raw) To: Jamie Stephens, jikos, bentiss Cc: regressions, gregkh, stern, linux-usb, linux-input On 7/30/26 21:28, Jamie Stephens wrote: > > Per the recommendation on Proxmox Bugzilla #7850, I’m reporting what > appears to be a Linux USB/HID regression affecting a CyberPower > LE1000DG UPS. Thx for the report. No developer replied yet with an idea what's wrong. Unless this changes I guess you need to run a git bisection to get somebodies attention, as the root of the problem might be in one of various kernel subsystems. The process is described in https://docs.kernel.org/admin-guide/verify-bugs-and-bisect-regressions.html or https://docs.kernel.org/admin-guide/bug-bisect.html; if you follow the latter you might want to first check if mainline (7.2-rc6) is still affected. Ciao, Thorsten > Hardware > > UPS > > CyberPower LE1000DG > USB VID:PID 0764:0501 > > Affected x86 platform > > Intel Tiger Lake-H USB 3.2 Gen 2 xHCI Host Controller > PCI ID: 8086:43ed > > Problem > > When connected to the x86 system, the UPS enumerates successfully and > is bound by the kernel to hid-generic. > > Kernel messages include: > > usb 1-3: New USB device found, idVendor=0764, idProduct=0501 > > usb 1-3: Product: LE1000DG > > hid-generic 0003:0764:0501.0001: hiddev0,hidraw0: > > USB HID v1.11 Device [CPS LE1000DG] > > However, > > sudo lsusb -v -d 0764:0501 > > reports: > > wDescriptorLength 504 > > Warning: can't get report descriptor, LIBUSB_ERROR_PIPE > > cannot read device status, Resource temporarily unavailable (11) > > As a result, usbhid-ups is unable to reliably communicate with the > device and NUT cannot reliably monitor UPS status. > > Kernels Tested > > The issue reproduces on: > > Proxmox VE kernel 7.0.14-5-pve > Proxmox VE kernel 7.0.14-6-pve > Ubuntu mainline 7.1.5-070105-generic > > Reproducing the issue on an Ubuntu mainline kernel indicates the > behavior is not specific to Proxmox and appears to exist in upstream > Linux as well. > > Comparison > > The identical UPS, USB cable, and NUT configuration were moved to a > Raspberry Pi 5 running: > > Debian 13 (trixie) > Linux 6.18.34+rpt-rpi-2712 > NUT 2.8.1 > > On the Raspberry Pi: > > the device binds successfully to hid-generic > usbhid-ups initializes successfully > NUT communicates reliably > upsc ups@localhost consistently returns complete UPS status, including > charge, runtime, voltage, load, and other telemetry > > This behavior has remained reliable through repeated testing and reboots. > > For completeness, lsusb -v on the Raspberry Pi also reports the HID > report descriptor as unavailable. Despite this, usbhid-ups > communicates with the UPS reliably. The communication failure only > occurs on the affected x86 platform. > > Troubleshooting Performed > > Tested multiple USB ports > Tested USB 2.0 and USB 3.x ports > Replaced the USB cable > Tested NUT 2.8.1, 2.8.5, and current development master > Tested as both root and the nut service user > Verified udev permissions > Verified USB VID:PID 0764:0501 > Reproduced the issue on Ubuntu mainline 7.1.5 > > A Proxmox developer suggested this may require a USB HID device quirk > and requested that the issue be reported upstream. > > Reference: > > Proxmox Bugzilla #7850: https://bugzilla.proxmox.com/show_bug.cgi?id=7850 > > Please let me know if additional information would be helpful. I can > provide complete dmesg, lsusb, and usbhid-upsdebug logs or perform > additional testing if needed. > > Thank you, > Jamie Stephens > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 2026-07-30 19:28 ` [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 Jamie Stephens 2026-08-04 10:06 ` Thorsten Leemhuis @ 2026-08-04 18:56 ` Lovekesh Solanki 2026-08-04 19:00 ` Jamie Stephens ` (2 more replies) 2026-08-05 4:48 ` Michal Pecio 2 siblings, 3 replies; 11+ messages in thread From: Lovekesh Solanki @ 2026-08-04 18:56 UTC (permalink / raw) To: Jamie Stephens Cc: jikos, bentiss, regressions, gregkh, stern, linux-usb, linux-input [-- Attachment #1: Type: text/plain, Size: 1146 bytes --] Thanks for the report, On Thu, Jul 30, 2026 at 03:28:02PM -0400, Jamie Stephens wrote: > sudo lsusb -v -d 0764:0501 > > reports: > > wDescriptorLength 504 > > Warning: can't get report descriptor, LIBUSB_ERROR_PIPE > > cannot read device status, Resource temporarily unavailable (11) > > As a result, usbhid-ups is unable to reliably communicate with the > device and NUT cannot reliably monitor UPS status. The lsusb failure and NUT seem to be seperate, lsusb failure could simply be device property. Few possibilities I can think of worth testing: 1) It may be related to LPM, the device may be advertising this but may not be handling it properly. 2) Commit 8020c41b39f5 (usb: core: allow ACPI-managed hard-wired ports to power off) lets acpi managed ports be powered off even if hub does not advertise power switching. The UPS may be sitting on such port and its power could be cycled out and leave it in a stale state. I'm attaching two patches to see if they have any effect, please apply and test them seperatly and let us know the results. And, as per Thorsten's advice above, run git bisection regardless. Regards, Lovekesh [-- Attachment #2: 01-no-lpm.patch --] [-- Type: text/plain, Size: 662 bytes --] diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c index 87ee2d938bc0..2c07e1cb7e05 100644 --- a/drivers/usb/core/quirks.c +++ b/drivers/usb/core/quirks.c @@ -374,6 +374,9 @@ static const struct usb_device_id usb_quirk_list[] = { /* Midiman M-Audio Keystation 88es */ { USB_DEVICE(0x0763, 0x0192), .driver_info = USB_QUIRK_RESET_RESUME }, + /* CyberPower Systems UPS (LE1000DG / CP1500 AVR) */ + { USB_DEVICE(0x0764, 0x0501), .driver_info = USB_QUIRK_NO_LPM }, + /* SanDisk Ultra Fit and Ultra Flair */ { USB_DEVICE(0x0781, 0x5583), .driver_info = USB_QUIRK_NO_LPM }, { USB_DEVICE(0x0781, 0x5591), .driver_info = USB_QUIRK_NO_LPM }, [-- Attachment #3: 02-resume-reset.patch --] [-- Type: text/plain, Size: 667 bytes --] diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c index 87ee2d938bc0..8ccc5fc6060c 100644 --- a/drivers/usb/core/quirks.c +++ b/drivers/usb/core/quirks.c @@ -374,6 +374,9 @@ static const struct usb_device_id usb_quirk_list[] = { /* Midiman M-Audio Keystation 88es */ { USB_DEVICE(0x0763, 0x0192), .driver_info = USB_QUIRK_RESET_RESUME }, + /* CyberPower Systems UPS (LE1000DG / CP1500 AVR) */ + { USB_DEVICE(0x0764, 0x0501), .driver_info = USB_QUIRK_RESET_RESUME}, + /* SanDisk Ultra Fit and Ultra Flair */ { USB_DEVICE(0x0781, 0x5583), .driver_info = USB_QUIRK_NO_LPM }, { USB_DEVICE(0x0781, 0x5591), .driver_info = USB_QUIRK_NO_LPM }, ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 2026-08-04 18:56 ` Lovekesh Solanki @ 2026-08-04 19:00 ` Jamie Stephens 2026-08-04 23:38 ` Jamie Stephens 2026-08-05 0:01 ` Jamie Stephens 2 siblings, 0 replies; 11+ messages in thread From: Jamie Stephens @ 2026-08-04 19:00 UTC (permalink / raw) To: Lovekesh Solanki Cc: jikos, bentiss, regressions, gregkh, stern, linux-usb, linux-input Thank you, will set aside some time in the next day or so to run the patches and git bisection On Tue, Aug 4, 2026 at 2:56 PM Lovekesh Solanki <lovekeshsolanki00@gmail.com> wrote: > > Thanks for the report, > > On Thu, Jul 30, 2026 at 03:28:02PM -0400, Jamie Stephens wrote: > > sudo lsusb -v -d 0764:0501 > > > > reports: > > > > wDescriptorLength 504 > > > > Warning: can't get report descriptor, LIBUSB_ERROR_PIPE > > > > cannot read device status, Resource temporarily unavailable (11) > > > > As a result, usbhid-ups is unable to reliably communicate with the > > device and NUT cannot reliably monitor UPS status. > The lsusb failure and NUT seem to be seperate, lsusb failure could > simply be device property. > > Few possibilities I can think of worth testing: > 1) It may be related to LPM, the device may be advertising this but may > not be handling it properly. > 2) Commit 8020c41b39f5 (usb: core: allow ACPI-managed hard-wired ports to power off) > lets acpi managed ports be powered off even if hub does not advertise > power switching. The UPS may be sitting on such port and its power could > be cycled out and leave it in a stale state. > > I'm attaching two patches to see if they have any effect, please apply > and test them seperatly and let us know the results. > And, as per Thorsten's advice above, run git bisection regardless. > > Regards, > Lovekesh ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 2026-08-04 18:56 ` Lovekesh Solanki 2026-08-04 19:00 ` Jamie Stephens @ 2026-08-04 23:38 ` Jamie Stephens 2026-08-05 0:01 ` Jamie Stephens 2 siblings, 0 replies; 11+ messages in thread From: Jamie Stephens @ 2026-08-04 23:38 UTC (permalink / raw) To: Lovekesh Solanki Cc: jikos, bentiss, regressions, gregkh, stern, linux-usb, linux-input Hi Lovekesh, I tested 01-no-lpm.patch separately on Linux 7.1.5 with the CyberPower device 0764:0501. The patch did not resolve the problem. On the first connection, enumeration failed with: string descriptor 0 read error: -75 can't set config #1, error -71 After disconnecting and reconnecting the USB cable, the device did enumerate and attach to hid-generic, but NUT still could not initialize it reliably. The service reported: Can't initialize data from HID UPS and later: libusb1: Could not open any HID devices: insufficient permissions on everything No matching HID UPS found Running usbhid-ups directly with debug output showed repeated invalid HID report descriptor lengths, for example: Trying HID descriptor length 2053254698 HID descriptor too long 2053254698 (max 6144) It eventually reported: Unable to get Report descriptor: Resource temporarily unavailable The manually run /usr/local usbhid-ups binary then terminated with a segmentation fault. I have returned the UPS to the PiAware NUT server, where it is again working normally with the same UPS and NUT 2.8.1: ups.status: OL driver.version.data: CyberPower HID 0.8 I will now test 02-resume-reset.patch separately and report the result. Regards, Jamie Stephens On Tue, Aug 4, 2026 at 2:56 PM Lovekesh Solanki <lovekeshsolanki00@gmail.com> wrote: > > Thanks for the report, > > On Thu, Jul 30, 2026 at 03:28:02PM -0400, Jamie Stephens wrote: > > sudo lsusb -v -d 0764:0501 > > > > reports: > > > > wDescriptorLength 504 > > > > Warning: can't get report descriptor, LIBUSB_ERROR_PIPE > > > > cannot read device status, Resource temporarily unavailable (11) > > > > As a result, usbhid-ups is unable to reliably communicate with the > > device and NUT cannot reliably monitor UPS status. > The lsusb failure and NUT seem to be seperate, lsusb failure could > simply be device property. > > Few possibilities I can think of worth testing: > 1) It may be related to LPM, the device may be advertising this but may > not be handling it properly. > 2) Commit 8020c41b39f5 (usb: core: allow ACPI-managed hard-wired ports to power off) > lets acpi managed ports be powered off even if hub does not advertise > power switching. The UPS may be sitting on such port and its power could > be cycled out and leave it in a stale state. > > I'm attaching two patches to see if they have any effect, please apply > and test them seperatly and let us know the results. > And, as per Thorsten's advice above, run git bisection regardless. > > Regards, > Lovekesh ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 2026-08-04 18:56 ` Lovekesh Solanki 2026-08-04 19:00 ` Jamie Stephens 2026-08-04 23:38 ` Jamie Stephens @ 2026-08-05 0:01 ` Jamie Stephens 2026-08-06 0:08 ` Jamie Stephens 2 siblings, 1 reply; 11+ messages in thread From: Jamie Stephens @ 2026-08-05 0:01 UTC (permalink / raw) To: Lovekesh Solanki Cc: jikos, bentiss, regressions, gregkh, stern, linux-usb, linux-input Hi Lovekesh, I have now tested 02-resume-reset.patch separately on Linux 7.1.5 with the CyberPower device 0764:0501. The patched kernel was active: 7.1.5-ups-reset-resume The device was detected by lsusb, but USB initialization still failed: usb 1-3: new full-speed USB device number 4 using xhci_hcd usb 1-3: New USB device found, idVendor=0764, idProduct=0501 usb 1-3: New USB device strings: Mfr=3, Product=1, SerialNumber=2 usb 1-3: can't set config #1, error -71 The UPS therefore never attached to hid-generic and NUT could not use it. I then returned the same USB cable and UPS to the PiAware NUT server, where it immediately resumed working normally: ups.status: OL battery.charge: 100 input.voltage: 122.0 output.voltage: 122.0 ups.load: 23 driver.version.data: CyberPower HID 0.8 Results so far: 01-no-lpm.patch: did not resolve the regression 02-resume-reset.patch: did not resolve the regression I will proceed with the requested git bisection unless you would like any additional targeted logs or tests first. Regards, Jamie Stephens On Tue, Aug 4, 2026 at 2:56 PM Lovekesh Solanki <lovekeshsolanki00@gmail.com> wrote: > > Thanks for the report, > > On Thu, Jul 30, 2026 at 03:28:02PM -0400, Jamie Stephens wrote: > > sudo lsusb -v -d 0764:0501 > > > > reports: > > > > wDescriptorLength 504 > > > > Warning: can't get report descriptor, LIBUSB_ERROR_PIPE > > > > cannot read device status, Resource temporarily unavailable (11) > > > > As a result, usbhid-ups is unable to reliably communicate with the > > device and NUT cannot reliably monitor UPS status. > The lsusb failure and NUT seem to be seperate, lsusb failure could > simply be device property. > > Few possibilities I can think of worth testing: > 1) It may be related to LPM, the device may be advertising this but may > not be handling it properly. > 2) Commit 8020c41b39f5 (usb: core: allow ACPI-managed hard-wired ports to power off) > lets acpi managed ports be powered off even if hub does not advertise > power switching. The UPS may be sitting on such port and its power could > be cycled out and leave it in a stale state. > > I'm attaching two patches to see if they have any effect, please apply > and test them seperatly and let us know the results. > And, as per Thorsten's advice above, run git bisection regardless. > > Regards, > Lovekesh ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 2026-08-05 0:01 ` Jamie Stephens @ 2026-08-06 0:08 ` Jamie Stephens 2026-08-08 19:14 ` Jamie Stephens 0 siblings, 1 reply; 11+ messages in thread From: Jamie Stephens @ 2026-08-06 0:08 UTC (permalink / raw) To: Lovekesh Solanki Cc: jikos, bentiss, regressions, gregkh, stern, linux-usb, linux-input Thanks again for all of the suggestions. I wanted to provide an update after spending some more time testing. At this point I'm no longer convinced this is simply a kernel regression. I've now tested the UPS across multiple kernel generations, including: - 6.0.x - 6.18.40 - 7.0.2-6 - 7.0.14-8 - 7.2.x The behavior varies somewhat between versions—7.0.2-6 gets the farthest—but none of them provide stable long-term communication with the UPS. On 7.0.2-6, the driver successfully: - Claims interface 0 - Reads the HID report descriptor - Detects the UPS correctly as a CyberPower LE1000DG (VID:PID 0764:0501) - Retrieves battery charge, runtime, voltage, load, and other values - Completes several successful polling/update cycles Eventually communication stops. At that point the running driver repeatedly logs: libusb1: Could not open any HID devices: insufficient permissions on everything and upsd reports: Data for UPS [ups] is stale - check driver One thing I find particularly interesting is that the UPS never disappears from the USB bus. Even after communication becomes stale it is still present in lsusb: Bus 001 Device 007: ID 0764:0501 Cyber Power System LE1000DG There are also no USB disconnects, resets, xHCI errors, or other kernel USB errors after the device has initialized. What makes this especially confusing is that this does not appear to be a normal permissions problem. The driver clearly has permission to open the device initially—it successfully claims the interface, reads the HID report descriptor, and communicates with the UPS for several polling cycles before failing. Once it enters this state, however, it repeatedly reports "insufficient permissions on everything" until the driver is restarted. Since I can reproduce essentially the same failure across 6.0, 6.18, 7.0, and 7.2 kernels, I'm beginning to think the kernel version only affects how long the driver remains functional, rather than being the underlying cause. Over the next few days I plan to test the UPS using a dedicated PCIe USB controller based on an ASMedia chipset to determine whether the behavior is specific to the Intel xHCI controller. I'll report those results back to the list once I've completed that testing. Has anyone seen this pattern before, where usbhid-ups initializes successfully, polls normally for a short period, then loses communication and repeatedly reports: libusb1: Could not open any HID devices: insufficient permissions on everything while the USB device itself remains present and enumerated? Thanks again for everyone's time and suggestions. I'll follow up once I've completed the additional USB controller testing. On Tue, Aug 4, 2026 at 8:01 PM Jamie Stephens <jamie.stephens@gmail.com> wrote: > > Hi Lovekesh, > > I have now tested 02-resume-reset.patch separately on Linux 7.1.5 with > the CyberPower device 0764:0501. > > The patched kernel was active: > > 7.1.5-ups-reset-resume > > The device was detected by lsusb, but USB initialization still failed: > > usb 1-3: new full-speed USB device number 4 using xhci_hcd > usb 1-3: New USB device found, idVendor=0764, idProduct=0501 > usb 1-3: New USB device strings: Mfr=3, Product=1, SerialNumber=2 > usb 1-3: can't set config #1, error -71 > > The UPS therefore never attached to hid-generic and NUT could not use it. > > I then returned the same USB cable and UPS to the PiAware NUT server, > where it immediately resumed working normally: > > ups.status: OL > battery.charge: 100 > input.voltage: 122.0 > output.voltage: 122.0 > ups.load: 23 > driver.version.data: CyberPower HID 0.8 > > Results so far: > > 01-no-lpm.patch: did not resolve the regression > 02-resume-reset.patch: did not resolve the regression > > I will proceed with the requested git bisection unless you would like > any additional targeted logs or tests first. > > Regards, > Jamie Stephens > > On Tue, Aug 4, 2026 at 2:56 PM Lovekesh Solanki > <lovekeshsolanki00@gmail.com> wrote: > > > > Thanks for the report, > > > > On Thu, Jul 30, 2026 at 03:28:02PM -0400, Jamie Stephens wrote: > > > sudo lsusb -v -d 0764:0501 > > > > > > reports: > > > > > > wDescriptorLength 504 > > > > > > Warning: can't get report descriptor, LIBUSB_ERROR_PIPE > > > > > > cannot read device status, Resource temporarily unavailable (11) > > > > > > As a result, usbhid-ups is unable to reliably communicate with the > > > device and NUT cannot reliably monitor UPS status. > > The lsusb failure and NUT seem to be seperate, lsusb failure could > > simply be device property. > > > > Few possibilities I can think of worth testing: > > 1) It may be related to LPM, the device may be advertising this but may > > not be handling it properly. > > 2) Commit 8020c41b39f5 (usb: core: allow ACPI-managed hard-wired ports to power off) > > lets acpi managed ports be powered off even if hub does not advertise > > power switching. The UPS may be sitting on such port and its power could > > be cycled out and leave it in a stale state. > > > > I'm attaching two patches to see if they have any effect, please apply > > and test them seperatly and let us know the results. > > And, as per Thorsten's advice above, run git bisection regardless. > > > > Regards, > > Lovekesh ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 2026-08-06 0:08 ` Jamie Stephens @ 2026-08-08 19:14 ` Jamie Stephens 2026-08-08 19:18 ` Alan Stern 0 siblings, 1 reply; 11+ messages in thread From: Jamie Stephens @ 2026-08-08 19:14 UTC (permalink / raw) To: Lovekesh Solanki Cc: jikos, bentiss, regressions, gregkh, stern, linux-usb, linux-input I also completed the test with a separate PCIe USB controller based on the ASMedia ASM1042. The UPS enumerates normally on the ASMedia controller and the kernel identifies it correctly as the CyberPower LE1000DG (0764:0501). However, on this controller the failure mode is different. The device and HID descriptors are readable, but the 504-byte HID report descriptor is consistently unavailable. Ten consecutive runs of: lsusb -v -d 0764:0501 all showed: Report Descriptors: ** UNAVAILABLE ** NUT behaves consistently with that result. usbhid-ups successfully opens the device and claims interface 0, but then fails while attempting to retrieve the HID report descriptor: Unable to get HID descriptor (Pipe error) HID descriptor length 504 Unable to get Report descriptor: Resource temporarily unavailable No matching HID UPS found There are no USB disconnects or xHCI errors in dmesg. The device remains present and enumerated on the ASMedia controller. So the separate USB host controller did not resolve the issue; it changed the failure mode. On the Intel controller, the report descriptor can sometimes be read and NUT can operate for a period before communication becomes stale. On the ASMedia ASM1042, the report descriptor cannot currently be retrieved at all. The same UPS continues to work correctly when connected to the Raspberry Pi, so for now I plan to leave the UPS attached to the Pi for production use. On Wed, Aug 5, 2026 at 8:08 PM Jamie Stephens <jamie.stephens@gmail.com> wrote: > > Thanks again for all of the suggestions. I wanted to provide an update > after spending some more time testing. > > At this point I'm no longer convinced this is simply a kernel regression. > > I've now tested the UPS across multiple kernel generations, including: > > - 6.0.x > > - 6.18.40 > > - 7.0.2-6 > > - 7.0.14-8 > > - 7.2.x > > The behavior varies somewhat between versions—7.0.2-6 gets the > farthest—but none of them provide stable long-term communication with > the UPS. > > On 7.0.2-6, the driver successfully: > > - Claims interface 0 > > - Reads the HID report descriptor > > - Detects the UPS correctly as a CyberPower LE1000DG (VID:PID 0764:0501) > > - Retrieves battery charge, runtime, voltage, load, and other values > > - Completes several successful polling/update cycles > > Eventually communication stops. At that point the running driver > repeatedly logs: > > libusb1: Could not open any HID devices: insufficient permissions > on everything > > and upsd reports: > > Data for UPS [ups] is stale - check driver > > One thing I find particularly interesting is that the UPS never > disappears from the USB bus. Even after communication becomes stale it > is still present in lsusb: > > Bus 001 Device 007: ID 0764:0501 Cyber Power System LE1000DG > > There are also no USB disconnects, resets, xHCI errors, or other > kernel USB errors after the device has initialized. > > What makes this especially confusing is that this does not appear to > be a normal permissions problem. The driver clearly has permission to > open the device initially—it successfully claims the interface, reads > the HID report descriptor, and communicates with the UPS for several > polling cycles before failing. Once it enters this state, however, it > repeatedly reports "insufficient permissions on everything" until the > driver is restarted. > > Since I can reproduce essentially the same failure across 6.0, 6.18, > 7.0, and 7.2 kernels, I'm beginning to think the kernel version only > affects how long the driver remains functional, rather than being the > underlying cause. > > Over the next few days I plan to test the UPS using a dedicated PCIe > USB controller based on an ASMedia chipset to determine whether the > behavior is specific to the Intel xHCI controller. I'll report those > results back to the list once I've completed that testing. > > Has anyone seen this pattern before, where usbhid-ups initializes > successfully, polls normally for a short period, then loses > communication and repeatedly reports: > > libusb1: Could not open any HID devices: insufficient permissions > on everything > > while the USB device itself remains present and enumerated? > > Thanks again for everyone's time and suggestions. I'll follow up once > I've completed the additional USB controller testing. > > On Tue, Aug 4, 2026 at 8:01 PM Jamie Stephens <jamie.stephens@gmail.com> wrote: > > > > Hi Lovekesh, > > > > I have now tested 02-resume-reset.patch separately on Linux 7.1.5 with > > the CyberPower device 0764:0501. > > > > The patched kernel was active: > > > > 7.1.5-ups-reset-resume > > > > The device was detected by lsusb, but USB initialization still failed: > > > > usb 1-3: new full-speed USB device number 4 using xhci_hcd > > usb 1-3: New USB device found, idVendor=0764, idProduct=0501 > > usb 1-3: New USB device strings: Mfr=3, Product=1, SerialNumber=2 > > usb 1-3: can't set config #1, error -71 > > > > The UPS therefore never attached to hid-generic and NUT could not use it. > > > > I then returned the same USB cable and UPS to the PiAware NUT server, > > where it immediately resumed working normally: > > > > ups.status: OL > > battery.charge: 100 > > input.voltage: 122.0 > > output.voltage: 122.0 > > ups.load: 23 > > driver.version.data: CyberPower HID 0.8 > > > > Results so far: > > > > 01-no-lpm.patch: did not resolve the regression > > 02-resume-reset.patch: did not resolve the regression > > > > I will proceed with the requested git bisection unless you would like > > any additional targeted logs or tests first. > > > > Regards, > > Jamie Stephens > > > > On Tue, Aug 4, 2026 at 2:56 PM Lovekesh Solanki > > <lovekeshsolanki00@gmail.com> wrote: > > > > > > Thanks for the report, > > > > > > On Thu, Jul 30, 2026 at 03:28:02PM -0400, Jamie Stephens wrote: > > > > sudo lsusb -v -d 0764:0501 > > > > > > > > reports: > > > > > > > > wDescriptorLength 504 > > > > > > > > Warning: can't get report descriptor, LIBUSB_ERROR_PIPE > > > > > > > > cannot read device status, Resource temporarily unavailable (11) > > > > > > > > As a result, usbhid-ups is unable to reliably communicate with the > > > > device and NUT cannot reliably monitor UPS status. > > > The lsusb failure and NUT seem to be seperate, lsusb failure could > > > simply be device property. > > > > > > Few possibilities I can think of worth testing: > > > 1) It may be related to LPM, the device may be advertising this but may > > > not be handling it properly. > > > 2) Commit 8020c41b39f5 (usb: core: allow ACPI-managed hard-wired ports to power off) > > > lets acpi managed ports be powered off even if hub does not advertise > > > power switching. The UPS may be sitting on such port and its power could > > > be cycled out and leave it in a stale state. > > > > > > I'm attaching two patches to see if they have any effect, please apply > > > and test them seperatly and let us know the results. > > > And, as per Thorsten's advice above, run git bisection regardless. > > > > > > Regards, > > > Lovekesh ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 2026-08-08 19:14 ` Jamie Stephens @ 2026-08-08 19:18 ` Alan Stern 2026-08-08 22:30 ` Jamie Stephens 0 siblings, 1 reply; 11+ messages in thread From: Alan Stern @ 2026-08-08 19:18 UTC (permalink / raw) To: Jamie Stephens Cc: Lovekesh Solanki, jikos, bentiss, regressions, gregkh, linux-usb, linux-input On Sat, Aug 08, 2026 at 03:14:38PM -0400, Jamie Stephens wrote: > I also completed the test with a separate PCIe USB controller based on > the ASMedia ASM1042. > > The UPS enumerates normally on the ASMedia controller and the kernel > identifies it correctly as the CyberPower LE1000DG (0764:0501). > However, on this controller the failure mode is different. > > The device and HID descriptors are readable, but the 504-byte HID > report descriptor is consistently unavailable. Ten consecutive runs > of: > > lsusb -v -d 0764:0501 > > all showed: > > Report Descriptors: > ** UNAVAILABLE ** > > NUT behaves consistently with that result. usbhid-ups successfully > opens the device and claims interface 0, but then fails while > attempting to retrieve the HID report descriptor: > > Unable to get HID descriptor (Pipe error) > HID descriptor length 504 > Unable to get Report descriptor: Resource temporarily unavailable > No matching HID UPS found > > There are no USB disconnects or xHCI errors in dmesg. The device > remains present and enumerated on the ASMedia controller. What shows up in usbmon (or equivalently, Wireshark)? Alan Stern ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 2026-08-08 19:18 ` Alan Stern @ 2026-08-08 22:30 ` Jamie Stephens 0 siblings, 0 replies; 11+ messages in thread From: Jamie Stephens @ 2026-08-08 22:30 UTC (permalink / raw) To: Alan Stern Cc: Lovekesh Solanki, jikos, bentiss, regressions, gregkh, linux-usb, linux-input Subject: Re: CyberPower LE1000DG (0764:0501) - Further testing results Thanks again for all of the help and for the patches you provided. Unfortunately, I did not get a usbmon/Wireshark capture from the LE1000DG before returning it. I wanted to send an update before going any farther with the kernel git bisect, because some additional testing changed my thinking about where the problem may be. As discussed previously, I tested the LE1000DG across a number of kernels, including: - 6.0.x - 6.18.40 - several 7.0 kernels - 7.1.5 - 7.2 development builds I also built and tested the patched kernels you provided, including the USB/LPM and reset/resume changes. None of those changes made the LE1000DG reliable enough for normal use, so my next planned step had been to begin a Linux git bisect. Before doing that, I installed a separate PCIe USB controller using an ASMedia ASM1042 chipset so I could eliminate the Intel xHCI controller as a variable. The LE1000DG behaved poorly there as well. It enumerated normally on the ASMedia controller: Bus 003 Device 003: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS and the kernel identified it correctly as: Product: LE1000DG Manufacturer: CPS SerialNumber: QBKRP7001634 However, usbhid-ups was unable to reliably retrieve the HID report descriptor: Unable to get HID descriptor (Pipe error) Unable to get Report descriptor: Resource temporarily unavailable No matching HID UPS found lsusb could still read the normal USB device and configuration descriptors, but the HID report descriptor remained unavailable. The more interesting test came afterward. I temporarily connected an older CyberPower AVR1500/CP1500C UPS that I already own to the same Proxmox host. It uses the same VID:PID: 0764:0501 but is an older USB 1.1 / low-speed device: Product: CP 1500C bcdUSB: 1.10 Negotiated speed: Low Speed (1 Mbps) HID report descriptor length: 387 bytes this older CyberPower UPS worked normally with the same NUT 2.8.1 usbhid-ups driver. It has been polling continuously with successful quick and full update cycles. For example: RemainingCapacity = 100 RunTimeToEmpty = 5407 Input.Voltage = 121 Output.Voltage = 121 The driver continues to receive HID input reports and complete full updates without losing communication. This seems significant because the working test uses: - The same Proxmox host - The same current kernel - The same NUT 2.8.1 installation - The same usbhid-ups driver - The same CyberPower VID:PID 0764:0501 - The same Intel xHCI controller and the older CP1500C works while the newer LE1000DG did not. I also tested the LE1000DG on the separate ASMedia USB controller and saw essentially the same communication problems there. The LE1000DG reported: USB 2.00 Full Speed (12 Mbps) HID 1.11 504-byte report descriptor while the older working CP1500C reports: USB 1.10 Low Speed (1 Mbps) HID 1.10 387-byte report descriptor With the older CyberPower UPS remaining stable on the same host, kernel, NUT installation, and Intel USB controller, I became much less convinced that the primary issue was a Linux kernel regression or the Intel xHCI controller. At this point I suspect the problem may be related more specifically to the USB/HID implementation in the newer LE1000DG, or an interaction between that implementation and usbhid-ups/libusb. Because I was still within the return window, I decided to return the LE1000DG rather than continue troubleshooting a unit I could no longer return later. Given these results, I am also wondering whether there is still much value in proceeding with the kernel git bisect. The fact that the older CyberPower unit works reliably on the exact same system seems like fairly strong evidence against a general kernel USB regression. I do appreciate all of the time, patches, and troubleshooting help everyone provided. This turned into a much deeper investigation than I originally expected, but I learned quite a bit from it. Thanks again for all of the help. Jamie ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 2026-07-30 19:28 ` [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 Jamie Stephens 2026-08-04 10:06 ` Thorsten Leemhuis 2026-08-04 18:56 ` Lovekesh Solanki @ 2026-08-05 4:48 ` Michal Pecio 2 siblings, 0 replies; 11+ messages in thread From: Michal Pecio @ 2026-08-05 4:48 UTC (permalink / raw) To: Jamie Stephens Cc: jikos, bentiss, regressions, gregkh, stern, linux-usb, linux-input On Thu, 30 Jul 2026 15:28:02 -0400, Jamie Stephens wrote: > Hi, > > Per the recommendation on Proxmox Bugzilla #7850, I’m reporting what > appears to be a Linux USB/HID regression affecting a CyberPower > LE1000DG UPS. > > Proxmox Bugzilla #7850: https://bugzilla.proxmox.com/show_bug.cgi?id=7850 So apparently you are running some Ubuntu-based distribution and "The UPS works correctly with kernel 7.0.2-6-pve, but fails with kernels 7.0.14-5-pve and 7.0.14-6-pve". Also with "Ubuntu mainline 7.1.5". If your distribution supplies such kernel packages, I would suggest starting with narrowing it down to a single exact release, e.g. "7.0.8-3-pve is the first broken one". This will make bisecting faster, or maybe there will be few enough USB and HID changes in this release that something will become obvious. Regards, Michal ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-08-08 22:30 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CABWMpWQiSEKMkROgKZJ6nV8GXYgr7E=-SmsatQie4eK8b3F9Xw@mail.gmail.com>
2026-07-30 19:28 ` [REGRESSION] CyberPower LE1000DG (0764:0501) USB HID regression on x86 Jamie Stephens
2026-08-04 10:06 ` Thorsten Leemhuis
2026-08-04 18:56 ` Lovekesh Solanki
2026-08-04 19:00 ` Jamie Stephens
2026-08-04 23:38 ` Jamie Stephens
2026-08-05 0:01 ` Jamie Stephens
2026-08-06 0:08 ` Jamie Stephens
2026-08-08 19:14 ` Jamie Stephens
2026-08-08 19:18 ` Alan Stern
2026-08-08 22:30 ` Jamie Stephens
2026-08-05 4:48 ` Michal Pecio
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox