Kernel-Modules

使用 g_mass_storage => udc-core: 找不到可用的 UDC 來模擬 USB 設備 - 添加G米一個_sstorag和G米一種sss噸這r一種G和g_mass_storage待處理驅動程序列表

  • June 27, 2017

我想從圖像文件中模擬 USB。

我正在使用通過 elrepo安裝核心 4.11.7kernel-mlkernel-ml-devel Centos7 4.11.7-1.el7.elrepo.x86_64(實際上我也嘗試使用 3.10.* 4.10.* 4.11.1)

我們有 2 個解決方案:

  1. 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

  1. 模組探針

$ 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 大容量儲存設備,您可以直接掛載它(通過循環設備,但這是自動發生的)。

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