使用 g_mass_storage => udc-core: 找不到可用的 UDC 來模擬 USB 設備 - 添加G米一個_sstorag和G米一種sss噸這r一種G和g_mass_storage待處理驅動程序列表
我想從圖像文件中模擬 USB。
我正在使用通過 elrepo安裝核心 4.11.7
kernel-ml
的kernel-ml-devel
Centos74.11.7-1.el7.elrepo.x86_64
(實際上我也嘗試使用 3.10.* 4.10.* 4.11.1)我們有 2 個解決方案:
- 與insmod
sudo insmod /link/to/g_mass_storage.ko 文件=/tmp/filebin.img 停頓=0 可移動=y
在dmesg中:
udc-core: couldn't find an available UDC - added [g_mass_storage] to list of pending drivers
- 帶模組探針
$ sudo modprobe g_mass_storage 文件=/tmp/testusb.img 停頓=0 可移動=y modprobe:致命:未找到模組 g_mass_storage。dmesg中沒有任何內容。 3. 我也嘗試過dummy_hcd:
$ sudo modprobe dummy_hcd modprobe:致命:未找到模組 dummy_hcd。
我該如何解決這個問題?
我嘗試了很多方法,例如通過啟用小工具等所有內容來重新編譯核心 4.11.1…
/usr/src/kernels/4.11.7-1.el7.elrepo.x86_64 $ cat .config | grep CONFIG_USB_DUMMY_HCD # CONFIG_USB_DUMMY_HCD is not set
結果: 編譯核心後,我能夠
modprobe dummy_hcd
模擬一個帶有二進製文件的 USB。
您需要
dummy_hcd
虛擬(環回)主機控制器設備。小工具 USB 驅動程序適用於真正的 USB 硬體,而在普通 PC 上,此硬體不存在。環回控制器既為小工具控制器提供框架,又為訪問它們提供 USB 主機控制器。所以:$ sudo modprobe dummy_hcd
給你一個新的根集線器
$ lsusb Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
現在您可以修改探測小工具驅動程序
$ sudo modprobe g_mass_storage file=/path/to/backing_file idVendor=0x1d6b idProduct=0x0104 iManufacturer=Myself iProduct=VirtualBlockDevice iSerialNumber=123
它將顯示在新的根集線器下
$ lsusb Bus 005 Device 002: ID 0525:a4a5 Netchip Technology, Inc. Pocketbook Pro 903 Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
請注意,如果您只對文件的內容感興趣,則不需要模擬 USB 大容量儲存設備,您可以直接掛載它(通過循環設備,但這是自動發生的)。