3

Моя цель - локально эмулировать USB-устройство в среде Linux. Я имею в виду, что я хочу «смонтировать» файл локального резервного хранилища (созданный с помощью dd) в качестве устройства USB внутри рабочей области пользователя root.

После поиска в Google я нашел API USB-гаджетов для Linux и функцию запоминающего устройства: http://www.linux-usb.org/gadget/file_storage.html. Но это не совсем ясно: кажется, что он может действовать только как клиент / сервер с USB-соединением между хостом Linux и другим компьютером (Linux, Windows или Mac).

Я начал устанавливать POC в Debian Jessie с настроенным ядром 3.16.7, но я сталкиваюсь со следующей ошибкой «insmod: не могу вставить« g_mass_storage.ko »: нет такого устройства» при попытке загрузить модуль g_mass_storage ,

Кто-нибудь испытывал подобные вещи? Благодарю.

Матье

1 ответ1

1

Том Ян,

Спасибо за ваш полезный ответ. Я успешно загрузил модуль dummy-hcd. Затем modprobe модуля g_mass_storage:

modprobe g_mass_storage file=/root/myUSBStorage/mass_storage.img stall=0 removable=y iSerialNumber=1234567890

У меня сейчас следующий dmesg:

[  205.564158] g_mass_storage gadget: Mass Storage Function, version: 2009/09/11    
[  205.564164] g_mass_storage gadget: Number of LUNs=1    
[  205.564170]  lun0: LUN: removable file: /root/mass_storage.img    
[  205.564191] g_mass_storage gadget: Mass Storage Gadget, version: 2009/09/11    
[  205.564194] g_mass_storage gadget: g_mass_storage ready    
[  205.780209] usb 3-1: new high-speed USB device number 2 using dummy_hcd    
[  205.952109] usb 3-1: New USB device found, idVendor=0525, idProduct=a4a5    
[  205.952124] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3    
[  205.952133] usb 3-1: Product: Mass Storage Gadget    
[  205.952140] usb 3-1: Manufacturer: Linux 3.11.0-15-generic with dummy_udc    
[  205.952145] usb 3-1: SerialNumber: 1234567890    
[  205.956075] g_mass_storage gadget: high-speed config #1: Linux File-Backed Storage    
[  206.020057] usb-storage 3-1:1.0: USB Mass Storage device detected    
[  206.020255] usb-storage 3-1:1.0: Quirks match for vid 0525 pid a4a5: 10000    
[  206.020477] scsi3 : usb-storage 3-1:1.0    
[  206.020856] usbcore: registered new interface driver usb-storage    
[  207.036061] scsi 3:0:0:0: Direct-Access     Linux    File-Stor Gadget 0311 PQ: 0 ANSI: 2    
[  207.036807] sd 3:0:0:0: Attached scsi generic sg2 type 0    
[  207.076081] sd 3:0:0:0: [sdb] 8192 512-byte logical blocks: (4.19 MB/4.00 
MiB)    
[  207.088158] sd 3:0:0:0: [sdb] Write Protect is off    
[  207.088174] sd 3:0:0:0: [sdb] Mode Sense: 0f 00 00 00    
[  207.100210] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, 
doesn't support DPO or FUA
[  207.180419]  sdb: sdb1    
[  207.268281] sd 3:0:0:0: [sdb] Attached SCSI removable disk

К вашему сведению, мне пришлось создать таблицу разделов и файловую систему внутри эмуляции. Теперь я могу успешно смонтировать эмулированный носитель.

mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sdb1 on /mnt type vfat (rw)

Матье

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .