Me gustaría emular un USB desde un archivo de imagen.
Estoy usando Centos7 con el Kernel 4.11.7 instalado a través de kernel-ml
y kernel-ml-devel
elrepo 4.11.7-1.el7.elrepo.x86_64
(en realidad probé con 3.10.* 4.10.* 4.11.1 también)
Tenemos 2 soluciones:
-
con insmod
sudo insmod /link/to/g_mass_storage.ko file=/tmp/filebin.img stall=0 extraíble=y
En dmesg :udc-core: couldn't find an available UDC - added [g_mass_storage] to list of pending drivers
-
con modprobe
$ sudo modprobe g_mass_storage file=/tmp/testusb.img stall=0 extraíble=y
modprobe:FATAL:Módulo g_mass_storage no encontrado.
Nada en dmesg . -
También he probado con dummy_hcd :
$ sudo modprobe dummy_hcd
modprobe:FATAL:Módulo dummy_hcd no encontrado.
¿Cómo puedo solucionar este problema?
Intenté muchas cosas como volver a compilar el Kernel 4.11.1 habilitando todo con gadget, etc...
/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
Resultado:
Después de compilar el núcleo, pude modprobe dummy_hcd
y para emular un usb con un archivo binario.
Respuesta aceptada:
Necesitas el dummy_hcd
dispositivo controlador de host ficticio (bucle invertido). Los controladores USB del gadget están destinados a hardware USB real, y en las PC normales este hardware no existe. El controlador de bucle invertido proporciona tanto el marco para el controlador de dispositivos como un controlador de host USB para acceder a ellos. Entonces:
$ sudo modprobe dummy_hcd
te da un nuevo concentrador raíz
$ lsusb
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Ahora puede modificar el controlador del dispositivo
$ sudo modprobe g_mass_storage file=/path/to/backing_file idVendor=0x1d6b idProduct=0x0104 iManufacturer=Myself iProduct=VirtualBlockDevice iSerialNumber=123
y aparecerá en el nuevo centro raíz
$ 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
Tenga en cuenta que no necesita simular un dispositivo de almacenamiento masivo USB si solo está interesado en el contenido del archivo, puede montarlo directamente (a través del dispositivo de bucle, pero eso sucede automáticamente).