FunctionFS не может начинаться с 3 конечных точек (int in x2, объемный Out) -Ошибка -524Linux

Ответить Пред. темаСлед. тема
Anonymous
 FunctionFS не может начинаться с 3 конечных точек (int in x2, объемный Out) -Ошибка -524

Сообщение Anonymous »

Я использую FunctionFs в Linux для реализации гаджета USB с 3 конечными точками: < /p>
  • ep1 in (прерывание) < /li>
    ep2 в (прерывание) < /li>
    ep3 (BUMBE) < /li>
    < /li> gr /br />
    gr /ul>

    gr /br /ul>
    gr /ul gr /ul>
    UDC (

    Код: Выделить всё

    echo  > /sys/kernel/config/usb_gadget/mygadget/UDC
    ) с помощью этой ошибки ядра:

    Код: Выделить всё

    configfs-gadget 5100000.udc-controller: failed to start mygadget: -524
    sh: write error: No error information
    < /code>
    Вот соответствующая часть моего определения дескриптора в c: < /p>
    .intf = {
    .bLength = sizeof(vendor_descs.hs_descs.intf),
    .bDescriptorType = USB_DT_INTERFACE,
    .bNumEndpoints = 3,
    .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
    .iInterface = 1,
    .bInterfaceNumber = 0,
    .bAlternateSetting = 0,
    .bInterfaceSubClass = 0x00,
    .bInterfaceProtocol = 0x00,
    },
    .ep_in_cmd = {
    .bLength = sizeof(vendor_descs.hs_descs.ep_in_cmd),
    .bDescriptorType = USB_DT_ENDPOINT,
    .bmAttributes = USB_ENDPOINT_XFER_INT,
    .bEndpointAddress = 1 | USB_DIR_IN,
    .wMaxPacketSize = __cpu_to_le16(64),
    .bInterval = 0x04,
    },
    .ep_in_video = {
    .bLength = sizeof(vendor_descs.hs_descs.ep_in_video),
    .bDescriptorType = USB_DT_ENDPOINT,
    .bmAttributes = USB_ENDPOINT_XFER_INT,
    .bEndpointAddress = 2 | USB_DIR_IN,
    .wMaxPacketSize = __cpu_to_le16(64),
    .bInterval = 0x04,
    },
    .ep_out_cmd = {
    .bLength = sizeof(vendor_descs.hs_descs.ep_out_cmd),
    .bDescriptorType = USB_DT_ENDPOINT,
    .bmAttributes = USB_ENDPOINT_XFER_BULK,
    .bEndpointAddress = 3 | USB_DIR_OUT,
    .wMaxPacketSize = __cpu_to_le16(512),
    .bInterval = 0x00,
    },
    < /code>
    
    .bNumEndpoints = 3
    правильно установлен
  • Код: Выделить всё

    .length = __cpu_to_le32(sizeof(vendor_descs))
    правильно используется
  • Я пишу дескрипторы и строки в EP0 перед обязанностью UDC
  • Я подтвердил, что/sys/class/udc/ показывает действительное имя UDC (

    Код: Выделить всё

    5100000.udc-controller
    )
  • ep0, ep1, ep2 и ep3 были успешно созданы в разделе /dev/ffs_vendor/.
❓ Что может быть основной причиной этого? />
  • Linux kernel: 5.x (custom build)
  • FunctionFS with descriptor v2
  • High-speed USB
  • Allwinner SoC: UDC 5100000.udc-controller
Any guidance ценится! < /p>


Подробнее здесь: https://stackoverflow.com/questions/796 ... -error-524
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»