Intereting Posts
Необходимо запускать partprobe при каждой загрузке вернуться к initramfs при завершении работы что означает «HardwareCorrupted», DirectMap4k, поля DirectMap2M в файле «/ proc / meminfo» Linux? Как выполнить многострочный grep для нескольких файлов? Невозможно переключиться на графический процессор nvidia в linux mint 18 LFTP –exclude предотвращает создание файла журнала Есть ли способ «стабилизировать» прошлые встроенные нестабильные бинарные пакеты Gentoo без перестройки? Как искать ссылки на строки в указанном месте? Случайный "деаутентификация по местному выбору (Причина: 3 = DEAUTH_LEAVING)" Почему «cat ttyUSB0» не производит выход? Как рассказать размеры файлов и папок, отсортированные и в MB, GB, а не длинное целое число? Найти и удалить Что держит одну сторону rsync настолько занятой? Как вставить первый столбец во многие файлы + как преобразовать время unix в обычное время Как установить пакет через yum в Fedora

Значение bInterfaceProtocol определено или определено Kernel?

Предположим:

$ ls -l /dev/input/by-id lrwxrwxrwx 1 root root 10 Feb 10 03:47 usb-Logitech_USB_Keyboard-event-if01 -> ../event22 lrwxrwxrwx 1 root root 10 Feb 10 03:47 usb-Logitech_USB_Keyboard-event-kbd -> ../event21 $ ls -l /dev/input/by-path/ lrwxrwxrwx 1 root root 10 Feb 10 03:47 pci-0000:00:14.0-usb-0:1.1:1.0-event-kbd -> ../event21 lrwxrwxrwx 1 root root 10 Feb 10 03:47 pci-0000:00:14.0-usb-0:1.1:1.1-event -> ../event22 

Я знаю, что интерфейс номер 1 (событие22) выше не работает из-за bInterfaceProtocolNone для bInterfaceNumber 1 :

 $ sudo lsusb -v -d 046d:c31c Bus 002 Device 005: ID 046d:c31c Logitech, Inc. Keyboard K120 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x046d Logitech, Inc. idProduct 0xc31c Keyboard K120 bcdDevice 64.00 iManufacturer 1 Logitech iProduct 2 USB Keyboard iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 59 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 3 U64.00_B0001 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 90mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 2 USB Keyboard HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 65 Report Descriptors: ** UNAVAILABLE ** 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 10 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 2 USB Keyboard HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 159 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0004 1x 4 bytes bInterval 255 Device Status: 0x0000 (Bus Powered) $ 

Я не понимаю и поднимаю два вопроса:

  1. Если значение bInterfaceProtocol всегда None независимо от Host, то какая точка этого неиспользуемого интерфейса существует?
  2. Если значение bInterfaceProtocol определено Kernel, то каково условие, которое сделал ядро, чтобы установить его в None?