URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9295
[ Назад ]

Исходное сообщение
"LIBUSB и /dev/video"

Отправлено pavlinux , 19-Ноя-11 06:16 
Дело такое, есть веб-камера, работает как uvcvideo.
Естественно под венду у её софта больше фенек, всякие там скриншоты по кнопке и т.д.
Так вот, от ревиверсинженерил я её малость, поймал нужные байты. Соорудил утиль на libusb.
Естественно функция работает только тогда когда камера включена, но после обращения через
эту утиль отваливается интерфейс.

Камере пофигу, она работает с /dev/video0, утиль же работает через /dev/bus/usb/001/004

---

#define DATA  "\x00\x00\x12\xb5\x11\x00\x00\0x00"

memcpy(buf, DATA, 8);
  
usb_control_msg(devh, USB_TYPE_CLASS + USB_RECIP_INTERFACE, 1, 0x600, 0x400, buf, 8, 1000);
/* В венде этот пакет летит три раза :) */

По отладке в венде видно, что видео и команды идут на разные EP.

---
Как в libusb правильно отправить этот пакет?
libusb вообще умеет работать с уже занятыми устройствами?!

---
Иль, блин опять в ведро лезть?! %)


Содержание

Сообщения в этом обсуждении
"LIBUSB и /dev/video"
Отправлено pavlinux , 20-Ноя-11 10:22 
> Как в libusb правильно отправить этот пакет?
> libusb вообще умеет работать с уже занятыми устройствами?!
> Иль, блин опять в ведро лезть?! %)

В общем так, libusb - говно, и годиться разве только для включения светомузыки на утюге.
ушёл в ядро.... :)

---

За то у неё есть две интересные функции, deatach_kernel и reset_device,
собственно первая - отключение текущего драйвера от устройства, ну а вторая понятно.
Утилитку с этими функциями можно запихать в крон на ежеминутный запуск,
и наблюдать как сисадмин мучается :)