Menu

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

v1.0 (example)
open
xypron
bug (1)
3
2026-04-11
2026-03-29
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

  • xypron

    xypron - 2026-04-11

    Thank you for your bug report.

    Debian contains a sispmctl package. Does is also show the issue with USBDEVFS_CLAIMINTERFACE? Did you create a Debian bug?

    The Git master is git://git.code.sf.net/p/sispmctl/git. Please, create your merge requests here. Merging your branch https://github.com/nowrap/sispmctl/tree/migrate-libusb1 into the upstream master branch fails.

    Each commit needs to be signed with a real name, see
    https://www.kernel.org/doc/html/latest/process/submitting-patches.html

    Please, describe how I can reproduce the issue that you experienced with your Gembird Silver Shield PM. The correction for this issue should be in a separate patch.

    Best regards

    Heinrich

     
  • xypron

    xypron - 2026-04-11
    • assigned_to: xypron
     
  • xypron

    xypron - 2026-04-11

    USBDEVFS_CLAIMINTERFACE is described in https://www.kernel.org/doc/html/latest/driver-api/usb/usb.html. There is not obvious API change in Linux 6.x.

     

    Last edit: xypron 2026-04-11

Log in to post a comment.

Monday.com Logo