最好的方法是使用Linux Gadget驅動程序和允許您成爲USB設備的硬件。小工具驅動程序允許計算機「假裝」成任何類型的設備。然後,您的被測系統將一根USB OTG電纜連接到小工具箱。如果您的小工具箱具有合適的硬件,則甚至不需要拔下電纜。 「小工具箱」可以是運行Linux的臺式機/筆記本電腦(如果它支持USB OTG),甚至可以是Android手機或Raspberry Pi。 (要注意的是USB電纜吸僅僅因爲電纜配合並不意味着它是正確連接了USB OTG。)
一旦你有正確的USB OTG硬件,您的小工具盒是所有軟件:
1)如果您的設備支持OTG,請確保您的小工具箱不會嘗試成爲USB主機。 (然後,被測設備將成爲USB客戶端。)確保像usb_storage
這樣的東西不會自動加載。 2)開箱即用,內核支持USB集線器,USB以太網,USB串行端口和U盤的小工具。只需在你的小工具箱中加載正確的模塊,它就「正常工作」。例如,要創建USB記憶棒,請執行如下操作:「insmod g_file_storage.ko file=/dev/ram0
」。遠端會認爲你插入了USB棒。
對於串行設備,您的小工具可以運行用戶空間代碼,在/ dev/USBX」和談判,以測試設備「拿起電話。」(據推測模擬一個4G調制解調器或什麼的。)
由於製造商懶得理解USB,所以很多設備真的是「USB串口」。
3)通過一些重新編譯或配置,你可以讓那些通用的小工具設備假裝爲各種USB ID或返回各種供應商字符串等。這不會與「測試真實硬件」相同,但至少您正在使用這些設備的通用版本進行測試。
4)對於不在內核中的設備類型(即WiFi或其他),您是獨立的。有了足夠的血汗和眼淚,你可以使用寫你自己的小工具類型。 (理想情況下,儘可能保持用戶空間,並且只處理內核中性能關鍵部件。)
注意:不可能同時理解和欣賞USB。
不,不幸的是,我沒有那種對代碼的訪問權限,我所能做的就是添加內核模塊並運行測試應用程序。測試在遠程服務器上運行 –