Linux libusb接口已经声明

Linux libusb接口已经声明,linux,usb,driver,libusb,Linux,Usb,Driver,Libusb,我正在使用libusb为usb设备编写设备驱动程序。当我试图认领设备时,我得到错误代码LIBUSB\u error\u BUSY(-6)。根据文件,这意味着该设备已被认领() 我如何找出哪个驱动程序/程序认领了该设备,更重要的是,我自己如何在认领后认领该设备 代码段: r = libusb_claim_interface(handle[0], 0); if (r < 0) { fprintf(stderr, "libusb_claim_interface error %d\n",

我正在使用libusb为usb设备编写设备驱动程序。当我试图认领设备时,我得到错误代码LIBUSB\u error\u BUSY(-6)。根据文件,这意味着该设备已被认领()

我如何找出哪个驱动程序/程序认领了该设备,更重要的是,我自己如何在认领后认领该设备

代码段:

r = libusb_claim_interface(handle[0], 0);
if (r < 0) {
    fprintf(stderr, "libusb_claim_interface error %d\n", r);
    goto out_release;
}
printf("claimed interface\n");

您是否在
libusb\u claim\u interface()
之前调用了
libusb\u set\u configuration()


即使描述符中只有一个配置,也必须调用它。

是否在
libusb\u claim\u interface()之前调用
libusb\u detach\u kernel\u driver()
?这可能是必要的。

问题很可能是接口被另一个Linux驱动程序占用。调用
libusb\u detach\u kernel\u driver()
并指定接口号,然后您应该能够连接它。

我确实尝试过,但返回了完全相同的错误(-6)。将终端列表中的
usb存储
中的
usb设备
的峰值作为设备的驱动程序。由于某种原因,设备正在分配驱动程序,我无法阻止这种情况。我尝试使用udev规则。我发现这篇文章是在寻找“我如何找出哪个驱动程序/程序声明了设备”,所以我想把这个问题联系起来:,我认为这是相关的,因为它说不可能看到哪些程序声明了驱动程序/模块。
libusb_claim_interface error -6