GNU/Linux >> Znalost Linux >  >> Linux

Emulace zařízení USB se souborem pomocí G_mass_storage => Udc-core:Nelze najít dostupné Udc – přidáno [g_mass_storage] do seznamu čekajících ovladačů?

Chtěl bych emulovat USB ze souboru obrázku.

Používám Centos7 s jádrem 4.11.7 nainstalován přes kernel-ml a kernel-ml-devel elrepo 4.11.7-1.el7.elrepo.x86_64 (ve skutečnosti jsem to zkoušel i s 3.10.* 4.10.* 4.11.1)

Máme 2 řešení:

  1. s insmod

    sudo insmod /link/to/g_mass_storage.ko file=/tmp/filebin.img stall=0 odstranitelné=y

V dmesg :
udc-core: couldn't find an available UDC - added [g_mass_storage] to list of pending drivers

  1. pomocí modprobe

    $ sudo modprobe g_mass_storage file=/tmp/testusb.img stall=0 vyměnitelné=y
    modprobe:FATAL:Modul g_mass_storage nenalezen.
    Nic v dmesg .

  2. Zkoušel jsem také s dummy_hcd :

    $ sudo modprobe dummy_hcd
    modprobe:FATAL:Modul dummy_hcd nebyl nalezen.

Jak mohu tento problém vyřešit?

Zkoušel jsem mnoho věcí, jako je rekompilace jádra 4.11.1 povolením všeho pomocí gadgetu atd…

/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

Výsledek:
Po zkompilování jádra jsem byl schopen modprobe dummy_hcd a emulovat usb s binárním souborem.

Přijatá odpověď:

Potřebujete dummy_hcd fiktivní (loopback) hostitelské řídicí zařízení. Ovladače USB gadgetu jsou určeny pro skutečný hardware USB a na běžných počítačích tento hardware neexistuje. Ovladač zpětné smyčky poskytuje jak rámec pro řadič gadgetů, tak hostitelský řadič USB pro přístup k nim. Takže:

$ sudo modprobe dummy_hcd

vám poskytne nový kořenový rozbočovač

$ lsusb
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Nyní můžete modifikovat ovladač gadgetu

$ sudo modprobe g_mass_storage file=/path/to/backing_file idVendor=0x1d6b idProduct=0x0104 iManufacturer=Myself iProduct=VirtualBlockDevice iSerialNumber=123

a zobrazí se pod novým kořenovým rozbočovačem

$ 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

Pamatujte, že pokud vás zajímá pouze obsah souboru, nemusíte simulovat velkokapacitní paměťové zařízení USB, můžete jej připojit přímo (přes smyčkové zařízení, ale to se děje automaticky).


Linux
  1. Vytvoření spouštěcí jednotky USB z počítače pomocí souboru .iso na MAC

  2. Použití Logrotate v linuxu ke správě souborů protokolu (s příklady)

  3. Najděte soubor pomocí příkazů Najít a najít v Linuxu

  1. Linux odstranit soubor s velikostí 0

  2. Vypsat všechny soubory grafických obrázků s find?

  3. Vypište soubor pomocí příkazu ls v Linuxu s úplnou cestou

  1. Jak podložit soubor pomocí FF pomocí dd?

  2. Jak najít soubor s name=php.ini na linuxu pomocí příkazu grep

  3. Jak odstranit soubor s podivným názvem?