Menu

#30 Migrate from libusb-0.1 to libusb-1.0 (broken on Linux 6.x)

v1.0 (example)
open
nobody
bug (1)
3
3 days ago
3 days ago
nowrap
No

sispmctl fails on Linux 6.x (Debian 13 / trixie) because libusb-0.1's
USBDEVFS_CLAIMINTERFACE is rejected with ENOENT by the kernel.

Additionally, the Gembird Silver Shield PM (04b4:fd11, Cypress CY7C63001A)
sends a truncated configuration descriptor (11 of 27 bytes), causing the
kernel to register 0 interfaces:

  usb 1-2: config index 0 descriptor too short (expected 27, got 11)
  usb 1-2: config 1 has 0 interfaces, different from the descriptor's value: 1

The attached patch migrates sispmctl to libusb-1.0 and adds a USB reset
at startup to force the device to send the full descriptor on
re-enumeration.

Tested on Debian 13 (kernel 6.x) with Gembird Silver Shield PM (04b4:fd11).

Patch: https://github.com/nowrap/sispmctl/tree/migrate-libusb1

1 Attachments

Discussion


Log in to post a comment.

MongoDB Logo MongoDB