Подключить символическую ссылку к программе или сценарию, который возвращает файл

К моему удивлению, уже есть готовый способ эмуляции 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

(Это маленький, увеличьте его по мере необходимости)

3) Загрузите модуль драйвера гаджета для эмуляции запоминающего устройства 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 

Я выбрал какую-то разумную идентификацию, вы можете пропустить эти варианты, и тогда вы, кажется, получите случайные.

4) Это можно сделать и с другими типами USB-устройств, если для них доступны гаджет-модули.

1
27.12.2015, 11:37
0 ответов

Теги

Похожие вопросы