Седьмой день ограничения…
Apr. 5th, 2020 04:58 pmСегодня добил в соответствии с правильным образцом эмулятор PL2303 и USB-HID (клавиатура + мышь, выдающие из себя 045e:005c Microsoft Corp. Office Keyboard).
Гулять не ходил: было лень, да и давление после вчерашней пьянки скакало… Завтра пойду погуляю.
Странная штука вылезла у меня, когда я в режиме отладки натравливал на клавиатуру lsusb (с другими железками не проверял, возможно, там то же самое). Получаю запросы:
Т.е. перед каждым строковым запросом lsusb интересуется языком (как будто бы разные запросы могут быть на разных языках). Однако, после запроса квалификатора идет какой-то непонятный запрос с кодом 0x0A!
В листинге инклюда libusb ничего подобного нет:
Гугол молчит, как партизан. Я вообще не смог найти развернутое описание всех этих кодов!
Гулять не ходил: было лень, да и давление после вчерашней пьянки скакало… Завтра пойду погуляю.
Странная штука вылезла у меня, когда я в режиме отладки натравливал на клавиатуру lsusb (с другими железками не проверял, возможно, там то же самое). Получаю запросы:
STRING_LANG_DESCRIPTOR STRING_MAN_DESCRIPTOR STRING_LANG_DESCRIPTOR STRING_PROD_DESCRIPTOR STRING_LANG_DESCRIPTOR STRING_SN_DESCRIPTOR DEVICE_QUALIFIER_DESCRIPTOR usb_lib.c (L244): WTF?0x00000a00
Т.е. перед каждым строковым запросом lsusb интересуется языком (как будто бы разные запросы могут быть на разных языках). Однако, после запроса квалификатора идет какой-то непонятный запрос с кодом 0x0A!
В листинге инклюда libusb ничего подобного нет:
less /usr/include/libusb-1.0/libusb.h
enum libusb_descriptor_type {
/** Device descriptor. See libusb_device_descriptor. */
LIBUSB_DT_DEVICE = 0x01,
/** Configuration descriptor. See libusb_config_descriptor. */
LIBUSB_DT_CONFIG = 0x02,
/** String descriptor */
LIBUSB_DT_STRING = 0x03,
/** Interface descriptor. See libusb_interface_descriptor. */
LIBUSB_DT_INTERFACE = 0x04,
/** Endpoint descriptor. See libusb_endpoint_descriptor. */
LIBUSB_DT_ENDPOINT = 0x05,
/** BOS descriptor */
LIBUSB_DT_BOS = 0x0f,
/** Device Capability descriptor */
LIBUSB_DT_DEVICE_CAPABILITY = 0x10,
/** HID descriptor */
LIBUSB_DT_HID = 0x21,
/** HID report descriptor */
LIBUSB_DT_REPORT = 0x22,
/** Physical descriptor */
LIBUSB_DT_PHYSICAL = 0x23,
/** Hub descriptor */
LIBUSB_DT_HUB = 0x29,
/** SuperSpeed Hub descriptor */
LIBUSB_DT_SUPERSPEED_HUB = 0x2a,
/** SuperSpeed Endpoint Companion descriptor */
LIBUSB_DT_SS_ENDPOINT_COMPANION = 0x30
};Гугол молчит, как партизан. Я вообще не смог найти развернутое описание всех этих кодов!