0

我需要創建一個模擬USB設備。插入PC或平板電腦時,該設備的行爲應該與USB鼠標相似。動機是檢查系統的鼠標驅動程序。我想讓其中一個Raspberry Pi USB端口像鼠標一樣工作。如何使用樹莓派或任何其他Linux PC或設備創建虛擬/模擬USB鼠標

當我將Raspberry Pi USB端口連接到我的PC時,它應該顯示鼠標已連接。

我該如何製作這種虛擬/模擬設備?

另外我需要監視併發送點擊消息到PC。

回答

4

要模擬USB鼠標,您需要充當USB HID設備。 HID很容易實現,許多具有簡單USB設備端口的微控制器都有足夠的資源來完成它。甚至有一個使用bit-banged IO on an AVR ATTiny的低速USB HID的實現,根本沒有USB硬件。

問題是,在典型的基於Linux的電路板中,您只有USB主機端口。儘管RPi核心的Broadcom SOC支持USB OTG,並且原則上可以用作USB設備,但RPi的大多數型號都具有此限制。

根據this answerRPi Stack Exchange,新的RPi型號的零板有兩個端口正確接線爲USB OTG並可用作設備。

USB連接只是第一個障礙。其次,您需要Linux內核支持OTG,並且需要內核支持實現USB設備。這在Linux中稱爲「Gadget Mode」,由Broadcom SOC的內核支持,並且可以在根據a tutorial at Adafruit的RPi0中使用。請參閱linked answer above瞭解更多鏈接和討論。

隨着所有這些基礎設施的到位,您需要使用小工具API來充當HID併發布HID報告,這些報告將被理解爲鼠標移動。

0

PC和Raspberry Pi都是USB 主機;而USB鼠標是USB 設備您無法將主機連接到主機。

您需要帶有USB設備控制器的硬件,然後執行HID設備類。你最好的選擇可能是一個簡單的微控制器開發板;使用Linux系統呈現HID設備有點過分。例如,基於STM32的電路板是一種簡單的入門方式,ST的STM32Cube USB device library包括HID設備類支持。

+1

此答案部分錯誤;而Pi A/B型號只能在USB主機模式下運行,Pi Zero和Zero W實際上可以在IDB設備/從屬模式下運行。這通常被稱爲「小工具模式」。 – TheDiveO

+0

@ TheDriveO:有用的一點;指出。 – Clifford