ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1212426 Топик полностью
Nikolay_Po (30.05.2022 03:34, просмотров: 189) ответил Nikolay_Po на [РЕШЕНО]. Обнаружил, что драйвер для Linux поддерживает только bulk-режим передачи для данных. Драйвер для Windows - поддерживает Interrupt. Устройство работает только в режиме Interrupt. В обоих ОС конфигурация устройства одинаковая. Шаги настройки одинаковые до момента оформления подписки URB данных.
Похоже, некоторое прояснение с вылетом свежего драйвера от WCH. 

У устройства три конечных точки. И в момент открытия, модуль ядра (драйвер) ругается на несоответствие "шланга".

Вот описание устройства:


Bus 002 Device 012: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        32
  idVendor           0x1a86 QinHeng Electronics
  idProduct          0x7523 HL-340 USB-Serial adapter
  bcdDevice            2.54
  iManufacturer           1 Љ
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0027
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower               96mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1 
      bInterfaceProtocol      2 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)

А вот ошибка:


[ 1840.714523] usb 2-1.4.2: BOGUS urb xfer, pipe 3 != type 1
[ 1840.714629] WARNING: CPU: 13 PID: 7182 at drivers/usb/core/urb.c:480 usb_submit_urb+0x518/0x5a0 [usbcore]
...
[ ...........] usb_ch341 2-1.4.3:1.0: ch341_submit_read_urb - usb_submit_urb failed: -22

Есть упоминания тут

https://patchwork.kernel.org/project/linux-media/patch/1420206991-3939-2-git-send-email-tvboxspy@gmail.com/

и тут

https://github.com/qca/open-ath9k-htc-firmware/wiki/usb-related-issues

Но не понятно, насколько релевантны.