欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > linux libusb使用libusb_claim_interface失败(-6,Resource busy)解决方案

linux libusb使用libusb_claim_interface失败(-6,Resource busy)解决方案

2025/9/12 4:04:48 来源:https://blog.csdn.net/weixin_41477306/article/details/148563275  浏览:    关键词:linux libusb使用libusb_claim_interface失败(-6,Resource busy)解决方案

linux libusb使用libusb_claim_interface失败(-6,Resource busy)解决方案

  • ✅ 问题原因
  • 🛠️ 解决方案
    • 🔸 方法一:分离内核驱动 libusb_detach_kernel_driver()
    • 🔸 方法二:使用 usb-devices 和 lsmod 查看占用情况
    • 🔸 方法三:使用 udev 禁止自动绑定内核驱动(可选)

在 Linux 上使用 libusb_claim_interface() 失败,返回错误 -6 (LIBUSB_ERROR_BUSY),说明该接口当前正被别的驱动或程序占用。以下是排查和解决这个问题的常用步骤:

✅ 问题原因

接口已被内核驱动占用(最常见,比如 usb-storage, usbhid, btusb, 等)。
另一个进程正在访问该设备。
设备没有正确分离内核驱动绑定。

🛠️ 解决方案

🔸 方法一:分离内核驱动 libusb_detach_kernel_driver()

在调用 libusb_claim_interface() 之前,使用:

if (libusb_kernel_driver_active(handle, interface_number)) {libusb_detach_kernel_driver(handle, interface_number);
}

完整代码示例:

libusb_device_handle *handle;
int interface_number = 0;libusb_init(NULL);
handle = libusb_open_device_with_vid_pid(NULL, 0x0a12, 0x0001); // 替换为你的 VID/PIDif (handle) {if (libusb_kernel_driver_active(handle, interface_number) == 1) {libusb_detach_kernel_driver(handle, interface_number);}int ret = libusb_claim_interface(handle, interface_number);if (ret != 0) {fprintf(stderr, "claim failed: %s\n", libusb_error_name(ret));} else {printf("Interface claimed successfully!\n");}
}

🔸 方法二:使用 usb-devices 和 lsmod 查看占用情况

查看是不是内核驱动在占用设备:

lsmod | grep btusb

也可以查看具体接口被绑定了哪个驱动:

usb-devices

或使用:

dmesg | grep usb

如果是 btusb 这样的驱动,你可以先移除内核模块:

sudo modprobe -r btusb

⚠️ 注意:这样会影响系统蓝牙功能,谨慎使用,特别是在系统依赖该功能时。

🔸 方法三:使用 udev 禁止自动绑定内核驱动(可选)

写一个规则防止内核自动绑定,比如用于蓝牙 dongle

sudo vim /etc/udev/rules.d/99-usb-nobind.rules

添加如下内容:

ATTR{idVendor}=="0a12", ATTR{idProduct}=="0001", DRIVER=="btusb", ATTR{authorized}="0"

然后重启 udev:

sudo udevadm control --reload
sudo udevadm trigger

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词