Седьмой день ограничения…
Apr. 5th, 2020 04:58 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Сегодня добил в соответствии с правильным образцом эмулятор 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 };
Гугол молчит, как партизан. Я вообще не смог найти развернутое описание всех этих кодов!