Задача:
Существует некое устройство, для настройки и прошивки его используется приложение под Windows. Протокол передачи информации производитель не открывает, но протокол этот не криптованный, однозначно (устройство "хардовое").
Подключенное к USB устройство не обнаруживается, пока его не ввели в режим программирования.
Устройство подключено, но не введено в режим программирования.
В списке оно отсутствует.
vitaly@vitaly-OEM:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0471:20d0 Philips (or NXP)
Bus 004 Device 002: ID 04d9:1133 Holtek Semiconductor, Inc.
После входа в режим программирования его видно как Option.
vitaly@vitaly-OEM:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0471:20d0 Philips (or NXP)
Bus 004 Device 002: ID 04d9:1133 Holtek Semiconductor, Inc.
Bus 002 Device 003: ID 0af0:3500 Option
То же самое, но в другом USB. Как видно, диапазон ввода-вывода
не изменяется.
vitaly@vitaly-OEM:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0471:20d0 Philips (or NXP)
Bus 004 Device 002: ID 04d9:1133 Holtek Semiconductor, Inc.
Bus 003 Device 006: ID 0af0:3500 Option
И еще:
Теперь по /dev. Сейчас не подключено ничего.
vitaly@vitaly-OEM:~$ ls /dev | grep usb
usbmon0
usbmon1
usbmon2
usbmon3
usbmon4
usbmon5
Теперь устройство подключено и введено в режим программирования.
vitaly@vitaly-OEM:~$ ls /dev | grep usb
usb
usbmon0
usbmon1
usbmon2
usbmon3
usbmon4
usbmon5
Необходимо: Перехватить передачу от приложения к устройству и наоборот в Windows, чтобы разработать свое приложение для Linux (или даже кроссплатформенное).
Вопрос: какими средствами и какого языка это можно сделать быстрее и легче?
PS: Несмотря на образование, программированием всерьез не занимался давно, многое забыто, теперь придется вспоминать...