Отсутствие модуля g_mass_storage

Автор godzilla65536, 06 апреля 2024, 21:04:13

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

godzilla65536

Всем привет.

Нужно создать виртуальную флешку.
Вcе советы в сети сводятся к использованию модуля g_mass_storage.

Я пробую сделать вот так
fallocate -l 10M /tmp/virtual_usb.img
mkfs -t ext4 /tmp/virtual_usb.img
modprobe dummy_hcd
modprobe g_mass_storage
modprobe g_mass_storage file=/tmp/virtual_usb.img idVendor=0x8564 idProduct=0x1000 iSerialNumber=C71FFD58CDF9 iManufacturer="JetFlash" iProduct="Mass Storage Device" removable=true cdrom=false

При выполнении "modprobe g_mass_storage", я получаю ошибку
modprobe: FATAL: Module g_mass_storage not found in directory /lib/modules/6.1.0-18-amd64
Действительно, файл g_mass_storage.ko отсутствует в директории с модулями.

Я пробовал гуглить, но не смог ничего найти, чтобы мне помогло.
1. Где найти нужный модуль? Или как его сбилдить?
2. Можно ли выполнить эмуляцию флешки без данного модуля? Может есть другой способ.

ChubaDuba

#1
Гляньте как собрано ядро.
Должны быть:
CONFIG_USB_GADGET=m
CONFIG_USB_CONFIGFS=m
Ещё нужен CONFIG_USB_DUMMY_HCD, но у вас modprobe dummy_hcd отработал нормально, значит с ним порядок.

Цитата: godzilla65536 от 06 апреля 2024, 21:04:13Где найти нужный модуль? Или как его сбилдить?
Пересобрать ядро.

yoric

#2
07 апреля 2024, 14:28:52
А в чём смысл виртуальной флешки? Можно натянуть любую файлосистему на обычный файл - образ диска- чем не флешка?

Лия

#3
Цитата: ChubaDuba от 07 апреля 2024, 13:05:49Должны быть:
В конфиге ядра от Debian (linux-image-amd64) всё это и так включено:
$ grep CONFIG_USB_GADGET=m /boot/config-$(uname -r)
CONFIG_USB_GADGET=m
$ grep CONFIG_USB_CONFIGFS=m /boot/config-$(uname -r)
CONFIG_USB_CONFIGFS=m 
$ grep CONFIG_USB_DUMMY_HCD=m /boot/config-$(uname -r)
CONFIG_USB_DUMMY_HCD=m

А нужен:
CONFIG_USB_MASS_STORAGE=m
ЦитироватьCONFIG_USB_MASS_STORAGE:

The Mass Storage Gadget acts as a USB Mass Storage disk drive.
As its storage repository it can use a regular file or a block
device (in much the same way as the "loop" device driver),
specified as a module parameter or sysfs option.

This driver is a replacement for now removed File-backed
Storage Gadget (g_file_storage).

Say "y" to link the driver statically, or "m" to build
a dynamically linked module called "g_mass_storage".



08 апреля 2024, 04:14:25
Цитата: godzilla65536 от 06 апреля 2024, 21:04:13Может есть другой способ.
Есть ещё loop (хоть это и не эмуляция флешки):

sudo modprobe loop
sudo losetup /dev/loop0 /tmp/virtual_usb.img

И можете использовать получившийся /dev/loop0 (монтировать и.т.п.)

Отключение:
sudo losetup -d /dev/loop0