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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86589.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86589.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86589.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用mpu6500/6050, PID,互補濾波實現一個簡單的飛行自穩控制系統

首先,參考ai給出的客機飛機的比較平穩的最大仰府,偏轉,和防滾角度,如下: 客機的最大平穩仰俯(Pitch)、偏轉(Yaw)和防滾(Roll)角度,通…

深度解析AD7685ARMZRL7:16位精密ADC在低功耗系統中的設計價值

產品概述 AD7685ARMZRL7是16位逐次逼近型(SAR)ADC,采用MSOP-10緊湊封裝。其核心架構基于電荷再分配技術,支持2.3V至5.5V單電源供電,集成低噪聲采樣保持電路與內部轉換時鐘。器件采用偽差分輸入結構(IN/-&a…

EXCEL 實現“點擊跳轉到指定 Sheet”的方法

📌 WPS 表格技巧:如何實現點擊單元格跳轉到指定 Sheet 在使用 WPS 表格(或 Excel)時,我們經常會希望通過點擊一個單元格,直接跳轉到工作簿中的另一個工作表(Sheet)。這在制作目錄頁…

Python格式化:讓數據輸出更優雅

Python格式化:讓數據輸出更優雅 Python的格式化功能能讓數據輸出瞬間變得優雅又規范。不管是對齊文本、控制數字精度,還是動態填充內容,它都能輕松搞定。 一、基礎格式化:從簡單拼接開始 1. 百分號(%)格式…

2025年滲透測試面試題總結-小鵬[實習]安全工程師(題目+回答)

安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。 目錄 小鵬[實習]安全工程師 1. 自我介紹 2. 有沒有挖過src? 3. 平時web滲透怎么學的,有…

VSCode科技風主題設計詳細指南

1. 科技風設計的核心特點 科技風設計是一種強調未來感、現代感和高科技感的設計風格,在VSCode主題設計中,可以通過以下幾個核心特點來體現: 1.1 色彩特點 冷色調為主:藍色、紫色、青色等冷色調是科技風設計的主要色彩高對比度:深色背景配合明亮的霓虹色,形成強烈的視覺…

android知識總結

Activity啟動模式 standard (標準模式) 每次啟動該 Activity(例如,通過 startActivity()),系統總會創建一個新的實例,并將其放入調用者(啟動它的那個 Activity)所在的任務棧中。 singleTop (棧…

第3章 MySQL數據類型

MySQL數據類型 1、數字數據類型1.1 整數類型1.2 定點類型1.3 浮點類型1.4位值類型1.5 超出范圍和溢出處理1.5.1 超出范圍處理1.5.2 溢出處理 2、日期和時間數據類型3、字符串數據類型3.1 char和varchar類型3.2 binary和varbinary類型3.3 blob 和 text類型3.4 enum類型3.4.1 創建…

label-studio的使用教程(導入本地路徑)

文章目錄 1. 準備環境2. 腳本啟動2.1 Windows2.2 Linux 3. 安裝label-studio機器學習后端3.1 pip安裝(推薦)3.2 GitHub倉庫安裝 4. 后端配置4.1 yolo環境4.2 引入后端模型4.3 修改腳本4.4 啟動后端 5. 標注工程5.1 創建工程5.2 配置圖片路徑5.3 配置工程類型標簽5.4 配置模型5.…

mysql為什么一個表中不能同時存在兩個字段自增

背景。設置sort自增。會引發錯誤 通常自增字段都是用于表示數據的唯一性。數據庫限制。需要自定義排序字段大小。

牛客round95D

原題鏈接:D-小紅的區間修改(一)_牛客周賽 Round 95 題目背景: 初始擁有一個長度10^100元素全為0的數組,進行q查詢,每次查詢如果區間內的元素都為0就將區間變為首項為 1、公差為 1 的等差數列;否…

visual studio 2022更改主題為深色

visual studio 2022更改主題為深色 點擊visual studio 上方的 工具-> 選項 在選項窗口中,選擇 環境 -> 常規 ,將其中的顏色主題改成深色 點擊確定,更改完成

實踐篇:利用ragas在自己RAG上實現LLM評估②

文章目錄 使用ragas做評估在自己的數據集上評估完整代碼代碼講解1. RAG系統構建核心組件初始化文檔處理流程 2. 評估數據集構建3. RAGAS評估實現1. 評估數據集創建2. 評估器配置3. 執行評估 本系列閱讀: 理論篇:RAG評估指標,檢索指標與生成指…

微軟PowerBI考試 PL300-在 Power BI 中清理、轉換和加載數據

微軟PowerBI考試 PL300-在 Power BI 中清理、轉換和加載數據 Power Query 具有大量專門幫助您清理和準備數據以供分析的功能。 您將了解如何簡化復雜模型、更改數據類型、重命名對象和透視數據。 您還將了解如何分析列,以便知曉哪些列包含有價值的數據,…

PostgreSQL 安裝與配置全指南(適用于 Windows、macOS 與主流 Linux 發行版)

PostgreSQL 是一個功能強大、開源、穩定的對象關系數據庫系統,廣泛用于后端開發、數據處理與分布式架構中。本指南將手把手教你如何在 Windows、macOS 以及主流 Linux 發行版 上安裝 PostgreSQL,并附上安裝驗證命令與基礎配置方法。 一、Windows 安裝與配…

WordPress博客文章SEO的優化技巧

在數字時代,博客不僅用于表達觀點,也能提升品牌影響力并吸引潛在客戶。許多服務器提供商(如 Hostease)支持 WordPress 一鍵安裝功能,方便新手快速完成安裝,專注于內容創作和 SEO 優化。然而,寫出…

Python:操作 Excel 折疊

??親愛的技術愛好者們,熱烈歡迎來到 Kant2048 的博客!我是 Thomas Kant,很開心能在CSDN上與你們相遇~?? 本博客的精華專欄: 【自動化測試】 【測試經驗】 【人工智能】 【Python】 Python 操作 Excel 系列 讀取單元格數據按行寫入設置行高和列寬自動調整行高和列寬水平…

雨季智慧交通:從車輛盲區到客流統計的算法全覆蓋

雨季智慧交通中的視覺分析技術應用 一、背景:雨季交通的復雜挑戰 雨季是城市交通管理的關鍵考驗期。以濟南為例,強對流天氣伴隨的短時強降水、雷雨大風及冰雹,不僅導致道路積水、能見度驟降,還加劇了大型車輛(如渣土…

安全生產管理是什么?安全生產管理系統都有哪些核心功能?

隨著法律法規的日益嚴格和公眾對安全意識的提升,企業面臨的安全生產壓力也越來越大。無論是大型企業還是中小型企業,安全生產管理不僅關系到企業的生存與發展,更直接關系到員工的生命安全和企業的社會形象。因此,理解并實施有效的…

【PyCharm必會基礎】正確移除解釋器及虛擬環境(以 Poetry 為例 )

#工作記錄 【PyCharm使用基礎】 當遇到虛擬環境難以修復的場景,我們需要刪除當前解釋器和虛擬環境然后再重新創建虛擬環境,以下是在PyCharm中正確移除的步驟。 一、進入解釋器設置 在 PyCharm 界面右下角,點擊Poetry (suna0),選…