Linux libusb接口已经声明
我正在使用libusb为usb设备编写设备驱动程序。当我试图认领设备时,我得到错误代码LIBUSB\u error\u BUSY(-6)。根据文件,这意味着该设备已被认领() 我如何找出哪个驱动程序/程序认领了该设备,更重要的是,我自己如何在认领后认领该设备 代码段: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",
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