Есть ли ограничение на количество USB-гаджетов, которые можно создать с помощью configfs?

Это случалось в системе RHEL при перезагрузке/повторной -настройке подключенной SAN. Что сработало для меня, так это деактивировать группу томов и LVM, а затем снова активировать их.

vgchange -a n /vg_group_name
lvchange -a n /lvm_group_name

Затем вы должны повторно активировать их.

vgchange -a y /vg_group_name
lvchange -a y /lvm_group_name

Затем просто попробуйте перемонтировать все с помощью mount -a.

1
25.11.2019, 11:41
1 ответ

Да, вы можете создать только 4 гаджета HID, и это жесткое -закодированное ограничение, :единственный способ обойти его — изменить код и перекомпилировать usb_f_hid.koмодуль.

Это ограничение связано с тем, как Linux распределяет динамические старшие/младшие номера для /dev/hidg#устройств.

Изdrivers/usb/gadget/function/f_hid.c:

#define HIDG_MINORS     4

static inline int hidg_get_minor(void)
{
   ...
        if (ret >= HIDG_MINORS) {
                ida_simple_remove(&hidg_ida, ret);
                ret = -ENODEV;

static struct usb_function_instance *hidg_alloc_inst(void)
{
   ...
                status = ghid_setup(NULL, HIDG_MINORS);

int ghid_setup(struct usb_gadget *g, int count)
{
   ...
        status = alloc_chrdev_region(&dev, 0, count, "hidg");

Аналогичные ограничения существуют и для других гаджетов, которые создают узлы устройств(/dev/g_printer#= принтер, /dev/ttyGS#= gser + obex + acm и т. д. ).

3
27.01.2020, 23:40

Теги

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