Centos

CentOS - 如何模擬 USB 快閃記憶體驅動器?

  • January 16, 2022
VBoxManage list usbhost

如果我將它插入我的筆記型電腦,它會顯示物理快閃記憶體驅動器。

問題:但是我可以在沒有物理設備的情況下模擬 USB 快閃記憶體驅動器嗎?這樣它就會顯示在“VBoxManage list usbhost”輸出中,所以我可以將它作為 USB 設備附加到正在執行的 VirtualBox 來賓中。

令我驚訝的是,已經有一種現成的方法可以模擬 USB 設備:

  1. 載入dummy_hcd模組。這是一個環回模組,既充當 USB 小工具控制器驅動程序(客戶端仿真),又充當 USB 根集線器(主機仿真):
$ sudo modprobe dummy_hcd
$ lsusb
...
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

(這是一個新的根集線器)。

2)製作一個代表您的儲存設備的空文件:

$ dd bs=1024 count=128 if=/dev/zero of=/tmp/backing_file

(這個比較小,酌情變大)

  1. 載入小工具驅動模組以模擬 USB 大容量儲存設備(快閃記憶體等):
$ sudo modprobe g_mass_storage file=/tmp/backing_file idVendor=0x1d6b idProduct=0x0104 iManufacturer=Myself iProduct=VirtualBlockDevice iSerialNumber=123
$ lsusb
...
Bus 005 Device 004: ID 1d6b:0104 Linux Foundation Multifunction Composite Gadget
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lsscsi
...
[7:0:0:0]    disk    Linux    File-Stor Gadget 0408  /dev/sdh 

我選擇了某種合理的辨識方式,你可以忽略這些選項,然後你似乎會得到隨機的選項。

  1. 只要有可用的小工具模組,您也可以對其他類型的 USB 設備執行此操作。

引用自:https://unix.stackexchange.com/questions/338026