LINUX.ORG.RU

usb 2.0 камера ToupTek UCMOS 05100KPA + Debian - проблема с подключением

 , ,


1

2

Камера: ToupTek UCMOS 05100KPA Описание на сайте производителя

Очень нужно подружить именно эту камеру с ноутом. В ноуте есть встроенная камера, с ней никаких проблем. С системой «на Вы и по имени-отчеству» - самостоятельно понять, кто на что ругается, чего не хватает и что делать я не в состоянии. Очень надеюсь на помощь сообщества.

$ uname -a
Linux username 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux

В /dev/ есть /dev/video0 - это встроенная камера ноута. Никаких других /dev/video* при подключении камеры не появляется.

# dmesg | tail
[ 8285.019735] usb 2-1: new high-speed USB device number 6 using xhci_hcd
[ 8285.660630] usb 2-1: New USB device found, idVendor=0547, idProduct=6510
[ 8285.660636] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 8285.660640] usb 2-1: Product: USB2.0 Camera
[ 8285.660643] usb 2-1: Manufacturer: TT

Это все. Ничего похожего на «input as ... /dev/*» или хоть чего-то про драйверы, как это происходит для других устройств (.

# lsusb -v
...
Bus 002 Device 006: ID 0547:6510 Anchor Chips, Inc. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0547 Anchor Chips, Inc.
  idProduct          0x6510 
  bcdDevice            0.00
  iManufacturer           1 TT
  iProduct                2 USB2.0 Camera
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)
...

Я совершенно не понимаю ни что с этим делать, ни куда дальше копать, ни почему оно не заводится.

На сайте производителя заявлена поддержка Linux и даже выложен некий архив с linux-версией ToupLite. Да, из-под Windows с тем же ToupLite эта камера работает. В Linux-версии проблемы с сохранением файлов (ради чего, собственно, и нужна, в первую очередь, эта программа).

В разделе загрузок ToupLite предлагается архив ToupTekToupLite.x64.tar.bz2 - в нем один-единственный sh неведомого содержания, который создает в /usr/local/ папку ToupLite:

$ ls -l /usr/local/ToupLite
drwxr-sr-x 2 root staff     4096 дек  5 14:40 i18n
-rwxr-xr-x 1 root staff 11722400 дек  5 14:40 libtoupcam.so
-rwxr-xr-x 1 root staff 11772616 дек  5 14:40 libtoupnam.so
-rwxr-xr-x 1 root staff 26748240 дек  5 14:40 touplite
-rw-r--r-- 1 root staff    12266 дек  5 14:40 touplite.png
-rwxr-xr-x 1 root staff      216 дек  5 14:40 uninstall.sh
Причем все это делает он (с точки зрения обычного не закаленного в боях пользователя) в режиме «я что-то сделал в твоей системе, а ты теперь попробуй угадать, что именно и где».

Запуск touplite от пользователя: открывается программа, в списке есть камера, идет изображение. После запуска в dmesg:

[  168.088272] xhci_hcd 0000:00:14.0: WARN Event TRB for slot 5 ep 4 with no TDs queued?
Делаем захват кадра, пытаемся сохранить:
Case insensitive sorting unsupported in the posix collation implementation
Numeric mode unsupported in the posix collation implementation
Три таких сообщения подряд в терминале вылетают при нажатии кнопки «Сохранить» с вызовом окна имени файла и места сохранения, четвертое - при нажатии уже в этом окне на кнопку «Save». Файл не сохраняется. В gui все абсолютно молча - никаких предупреждений, что что-то не так. Добавление пользователя в группу staff ничего не меняет. Смена владельца с root на current_user тоже ничего не меняет. Поддержка ToupTek посылает к администратору.

Рытье интернета выдало еще uvscada на github. В devices.txt есть эта камера. Но я не понимаю, что с этим нужно делать, кроме как скачать и распаковать (.

Есть в доступной близости (но не прямо сейчас) какая-то из touptek-овских камер (довольно древняя). Насколько я помню, стандартный софт с ней работает. Типа https://help.ubuntu.com/community/Webcam

Но под оффтопиком работает гораздо лучше (убраны битые пиксели, например).

Линуксовый софт у них вроде для каких-то древних версий дебиана?

greenman ★★★★★ ()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от greenman

Я не очень поняла (.

Cheese (и guvcview) видят только встроенную камеру. И для этой «капризной» камеры не появляется при подключении /dev/video*, нет ничего в /dev/v4l. Но ведь должна же она где-то в /dev/ быть! Или нет?

blondy ()
Ответ на: комментарий от anymouze
$ lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/9p, 480M
    |__ Port 1: Dev 12, If 0, Class=Vendor Specific Class, Driver=, 480M
    |__ Port 2: Dev 2, If 2, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 4: Dev 3, If 9, Class=Communications, Driver=cdc_acm, 480M
    |__ Port 4: Dev 3, If 7, Class=CDC Data, Driver=cdc_ncm, 480M
    |__ Port 4: Dev 3, If 5, Class=Communications, Driver=cdc_wdm, 480M
    |__ Port 4: Dev 3, If 3, Class=Communications, Driver=cdc_acm, 480M
    |__ Port 4: Dev 3, If 10, Class=CDC Data, Driver=cdc_acm, 480M
    |__ Port 4: Dev 3, If 1, Class=Communications, Driver=cdc_acm, 480M
    |__ Port 4: Dev 3, If 8, Class=Communications, Driver=cdc_wdm, 480M
    |__ Port 4: Dev 3, If 6, Class=Communications, Driver=cdc_ncm, 480M
    |__ Port 4: Dev 3, If 4, Class=CDC Data, Driver=cdc_acm, 480M
    |__ Port 4: Dev 3, If 2, Class=CDC Data, Driver=cdc_acm, 480M
    |__ Port 4: Dev 3, If 0, Class=Communications, Driver=, 480M
    |__ Port 7: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 7: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
blondy ()
Ответ на: комментарий от blondy

Наверное, имеет смысл к этому добавить следующее (я переподключала камеру):

$ lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 005: ID 5986:0268 Acer, Inc 
Bus 002 Device 004: ID 8087:07dc Intel Corp. 
Bus 002 Device 003: ID 0bdb:193e Ericsson Business Mobile Networks BV 
Bus 002 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 002 Device 012: ID 0547:6510 Anchor Chips, Inc. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

blondy ()
Ответ на: комментарий от blondy

Port 1: Dev 12, If 0, Class=Vendor Specific Class, Driver=, 480M
Bus 002 Device 012: ID 0547:6510 Anchor Chips, Inc.

смотрел правило udev от производителя — вполне вероятно, что устройство video* или в v4l не создаётся

SUBSYSTEM=="usb", ATTRS{idVendor}=="0547", MODE="0666"
Всё общение построено через модули производителя. Какое-то устройство всё равно появляется. Его отловить возможно по времени создания файла.

anymouze ★★ ()
Ответ на: комментарий от blondy

программа touplite настройки (свойства) камеры показывает? режимы работы менять позволяет?

хм...

[ 168.088272] xhci_hcd 0000:00:14.0: WARN Event TRB for slot 5 ep 4 with no TDs queued?

а камера подключается в порт USB2.0?

anymouze ★★ ()
Ответ на: комментарий от anymouze

Во всяком случае, можно подкрутить баланс белого и выдержку. Остальное просто не проверяла - и до завтра не проверю уже. Можно сделать кадр (и он открывается в соседней вкладке). Хоть 10 кадров (можно и больше, в общем-то).

Пока проблема только в сохранении результата. Все было бы ничего, но она не сохраняет файл.

Нет у меня на ноуте 2.0 - только 3.0. А насколько это критично?

blondy ()
Ответ на: комментарий от blondy

у производителя есть 2 SDK для работы с камерами. нужно в них копаться (я пока зацепок не вижу, только начал с этими SDK знакомиться :).

Устройство не обнаружили?

Смена владельца с root на current_user тоже ничего не меняет.

на какие файлы изменили владельца? Запуск как делали — оно устанавливает в ~/Desktop свой ярлык для запуска.

anymouze ★★ ()
Ответ на: комментарий от anymouze

Владельца меняла на все, что есть в /usr/local/ToupLite. Собственно, там сама программа, иконка, uninstall-скрипт, папка с локализацией и два файла so - libtoupcam.so и libtoupnam.so (libtoupcam.so еще есть в SDK).

О!, ярлык оно устанавливает - если б Вы не спросили, я б там и не смотрела (у меня нет ярлыков на рабочем столе, соответственно, в норме ~/Desktop пуст, а теперь там ярлык, да, и с него тоже можно запустить программу - насчет камеры пока ничего не скажу).

blondy ()
Ответ на: комментарий от blondy

"костыли" vs "лыжи" (эмоции)

libtoupcam.so и libtoupnam.so используются touplite для работы с камерой. можно так же с помощью SDK что-то своё «запилить» и тоже будет общаться с камерой через эти библиотеки. В коде toupcam.cs (из SDK) явно упоминается установка флага если камера USB3.0 подключена к USB2.0, обратная ситуация не упоминается (пока не видел)*.

Нет у меня на ноуте 2.0 - только 3.0. А насколько это критично?

непонятно умеет эта либа правильно работать с USB3.0 или нет. Устройство определяется правильно (как USB2.0), но как работают *.so с портом мы не знаем.

xhci_hcd 0000:00:14.0: WARN Event TRB for slot 5 ep 4 with no TDs queued?

это баг :( но изображение выводится т.е. он не оказывает влияния на программу(?!)

Case insensitive sorting unsupported in the posix collation implementation
Numeric mode unsupported in the posix collation implementation

по-моему, приложение «не умеет» работать с UTF-8 (или Unicode) под linux. что-то про это видел в SDK...

Владельца (и права? я кажется уже путаюсь) верните обратно. Попробуйте запустить через ярлык — я его не извлекал, но возможно там что-то прописано влияющее на работу программы.

что делать

Пока «рисуются» только супер-мега «костыли». Например, разворачивать touplite максимально (в идеале полный экран), делать захват кадра и ... скриншот. Потом его вероятно придётся обрезать или ещё что-то делать*. (я понимаю как это ужасно — «кидаться тапками» не надо :).

Для «человеческого» общения с камерой требуется погружение в SDK. До вечера что-то уточнить или ответить не смогу.

anymouze ★★ ()
Последнее исправление: anymouze (всего исправлений: 1)
Ответ на: "костыли" vs "лыжи" (эмоции) от anymouze

Содержимое файла ~/Desktop/ToupLite.desktop:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/local/ToupLite/touplite
Name=ToupLite
Icon=/usr/local/ToupLite/touplite.png
Владельца вернула на root, ничего не поменялось, откатила обратно на current_user (не нравится мне там root).

Запуск через ярлык ничего не меняет, кроме того, что все работает только через gui, молча, и никаких ошибок не видно.

Сделала папку владелец:группа как у файлов программы, разрешила туда запись вообще всем - без изменений, все то же самое.

Мой текущий супер-мега костыль - цеплять камеру к машине с Windows. Но у нас, к сожалению, одна такая машина на две камеры - ситуация получается совершенно идиотская: камер две, но работать все равно можно только по очереди. (кидаться тапками не буду - сама об этом думаю как о резервном варианте).

А «не умеет работать с unicode» можно как-то решить для отдельно взятой программы, не трогая остальных? Мне б список ключевых слов для поиска решения...

Все ж очень соблазнительно выглядит идея использовать как-то эту *.so как бы вместо драйвера и работать с камерой из чего-нибудь другого. Это вообще возможно?

Спасибо, что находите время на мою проблему.

blondy ()

самостоятельно понять, кто на что ругается, чего не хватает и что делать я не в состоянии.

Linux Media Subsystem Documentation ©.

Работа с usb видеокамерой в Linux ©. Там была серия статей по особенностям и глюкам некоторых usb камер.

quickquest ★★★★★ ()
Ответ на: комментарий от quickquest

Там выше :

|__ Port 1: Dev 12, If 0, Class=Vendor Specific Class, Driver=, 480M

Эта штука похоже не UVC , а Vendor Specific Class , и работать с ней получится только с ПО производителя ,

libtoupcam.so и libtoupnam.so

Ещё есть :

https://github.com/openastroproject/openastro/blob/master/udev/70-touptek-cam...

https://github.com/openastroproject/libtoupcam-pkg

anonymous ()
Ответ на: комментарий от blondy

И куда потом надо положить (и надо ли?) libtoupcam.so?

А оно сейчас есть в /usr/local/lib ?

Или только в /usr/local/ToupLite/ToupLite ?

anonymous ()
Ответ на: комментарий от blondy

Попробуйте сохранять файл только с английскими буквами в пути и имени , и без всяких спецзнаков .

anonymous ()
Ответ на: комментарий от anonymous

Прямо вот так - /usr/local/lib/libtoupcam.so - безо всяких дополнительных папок?

blondy ()
Ответ на: комментарий от anonymous

Возникла неожиданная проблема при попытке выполнить build.sh - он хочет архив libtoupcam-1.6.5660.tar.gz. Что это за архив и где его добыть - непонятно (.

blondy ()
Ответ на: комментарий от anonymous

Да, только они при этом пишут, что для этого этот libtoupcam надо установить. А deb-пакеты есть только для Ubuntu. Что-то я не уверена, что это хорошая идея - ставить убунтовский пакет на дебиан.

Нет, все-таки я не понимаю, куда и как этим волшебным скриптам подсунуть это *.so. Где-нибудь сдают в аренду мозги с соответствующим уклоном? Мне ненадолго, пары дней хватит.

blondy ()
Ответ на: комментарий от blondy

Нет ни какого криминала в установке пакетов из Ubuntu в Debian, т.к. у них одинаковая система управления пакетами.

Вообще, можно ставить любые пакеты, даже rpm. К примеру Oracle Client так ставится https://help.ubuntu.com/community/Oracle Instant Client

serioja ()
Ответ на: комментарий от blondy

Содержимое файла ~/Desktop/ToupLite.desktop

была надежда на «магию», но всё просто оказалось.

Владельца вернула на root, ничего не поменялось, откатила обратно на current_user (не нравится мне там root).

с одной стороны там *.so работающие с «железом», а с другой это закрытые исполняемые файлы (хоть и от производителя устройства). Если работает, оставляй текущего пользователя.

использовать как-то эту *.so как бы вместо драйвера и работать с камерой из чего-нибудь другого

эти *.so и есть драйвера от производителя. поскольку SDK поставляется, создание своего приложения вопрос времени/знаний.

Спасибо, что находите время на мою проблему

«Задачка цепляет» :)

=====
имя файла устройства, создающееся при подключении камеры, не искали? Попробуйте в терминале выполнить

toupcamfile=`ls -c /dev|head -n1`;ls -cl /dev/$toupcamfile

Из touplite формат видеопотока камеры возможно узнать?

А «не умеет работать с unicode» можно как-то решить для отдельно взятой программы

Я это не проверял, но попробовать можно

sudo env LANG=ru_RU.CP1251 touplite &
(вероятно не поможет вот так «в лоб»)

anymouze ★★ ()
Ответ на: комментарий от anymouze
$ toupcamfile=`ls -c /dev|head -n1`;ls -cl /dev/$toupcamfile
итого 0

На результат не влияет ни запущена ли программа, ни подключена ли камера. А ее можно еще по каким-либо «позывным» (например по ID из вывода lsusb) поискать?

$ sudo env LANG=ru_RU.CP1251 touplite &
[1] 11533
Я не поняла, что это за «[1] 11533». Но это все равно не помогло (.

Из touplite формат видеопотока камеры возможно узнать?

Знать бы как! В настройках ничего похожего нет.

эти *.so и есть драйвера

Я так понимаю, просто так скормить их системе, чтобы родные приложения понимали устройство, не получится?

blondy ()
Ответ на: комментарий от anonymous

Не собираются ни тот, ни другой (. Ночером еще поковыряю.

blondy ()
Ответ на: комментарий от blondy

$ toupcamfile=`ls -c /dev|head -n1`;ls -cl /dev/$toupcamfile

итого 0

подключить камеру, подождать минуту, выполнить команду (иногда со 2-го раза срабатывает). Можно как вариант сделать ls /dev/ >>file1 (до подключения камеры), подключить камеру и после паузы (файл устройства не мгновенно создаётся) выполнить

ls /dev/ >>file2
diff file2 file1
По идее должны отличаться на имя файла камеры, но с этим устройством нельзя быть уверенным ни в чём.

Я не поняла, что это за «[1] 11533». Но это все равно не помогло (.

цифры PID программы touplite. я и не ожидал, что это поможет :(

как взаимодействовать с камерой через интерфейс библиотек производителя *.so «знает» touplite, «стандартные» так не могут. Странно, что touplite «не научили» пользоваться системными функциями (сохранение файла) и даже нет простенького описания её работы или системных требований

anymouze ★★ ()
Ответ на: комментарий от anymouze

Ответ техподдержки toupcam.ru по поводу этого вот ToupViewX: «Пожалуйста, ориентируйтесь на официальный сайт производителя http://www.touptek.com/download/showdownload.php?lang=en&id=28. toupcam.ru пока в стадии доработки, ссылки на ПО пока там неактуальны».

Там файл для х32, насколько он рабочий - не понятно, пока никак не могу запустить. Но по этому поводу здесь уже была где-то похожая тема (в смысле - как запустить х32 на х64).

blondy ()
Ответ на: комментарий от anymouze

diff file2 file1

Сравнение: без камеры, подключить и подождать, запустить touplite, запустить в ней захват видео - разницы нет.

нет ... системных требований

Формально, они есть: «kernel 2.6.27 or above + x64: GLIBC 2.14 or above».

blondy ()
Ответ на: комментарий от blondy

формально

приложение работает: видео отображает, настройки «крутит», кадр захватывает, только сохранение в файл не работает.

touplite написана с использоваеим qt4. сообщения в консоли «растут» из qt, она (?) же должна сохранять снимок в файл.

В less /proc/bus/input/devices камера не описывается (после подключения, конечно)?

«Последняя надежда» на

udevadm monitor
(и подключить камеру)

-----

Теперь у меня есть определённые сомнения в правильности первоначальной гипотезы «Почему touplite не сохраняет файл».

Для уточнения причин Вам нужно выполнить следующий алгоритм

  1. Открыть эмулятор терминала (далее терминал). Запустить touplite в терминале командой
    touplite &
    в ответ получите что-то вроде [1]99999.
    *когда откроется окно touplite, в терминал начнёт «писать» — нажмите <Enter>
  2. В touplite захватить кадр
  3. В терминале выполнить команду
    sudo strace -p <цифры из первого пункта>

    * не 99999, а те что напишет у Вас
    ** если strace не установлен, доустановите пакет strace
  4. Выполнить сохранение файла в touplite
  5. Сохранить «выхлоп» в терминале. Например «контекстное меню» --> «Сохранить содержимое»; в разных терминалах может быть по-разному. Можно «вручную» выделить и скопировать, сохранить в файл в текстовом редакторе

Выложите этот лог на общедоступный сайт (подойдёт любой pastebin). Ссылку на лог опубликуйте здесь.

anymouze ★★ ()
Ответ на: формально от anymouze

less /proc/bus/input/devices

Ничего.

udevadm monitor

Реагирует только на подключение / отключение камеры. Запуск программы и действия в ней ничего не добавляют.

monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[23440.725480] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb)
KERNEL[23440.725961] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb)
UDEV  [23441.261471] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb)
UDEV  [23441.265994] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb)
KERNEL[23524.505771] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb)
KERNEL[23524.506465] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb)
UDEV  [23524.509319] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb)
UDEV  [23524.510869] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb)

strace

Захват кадра. Запуск strace. Попытка сохранить. Остановка strace. Лог strace - https://paste.ubuntu.com/p/drxMYstV7h/.

В процессе всего этого выяснилась занятная вещь. Вообще работает это так (обычно, у нас): есть вкладка «живого видео». Ориентируясь по ней выбираем ракурс, наводим фокус, делаем кадр. Кадр открывается во вкладке (1, 2 ... последовательные номера в порядке делания кадра). Дальше переходим на вкладку с нужным кадром и нажимаем «сохранить» (ну или «выкинуть», если этот кадр плохой). Вылетает окно выбора места и имени. И вот этот вот нормальный режим, в котором видно, что ты сохраняешь, с выбором места и имени не работает.

Но у проги есть еще режим быстрого сохранения - это при работе с вкладкой «живого видео» нажать на кнопку быстрого сохранения - никаких новых вкладок не открывается, кадр сохраняется «молча» в автоматическом режиме. Примерно по такой же схеме работает видеозахват - никаких новых вкладок не открывается. Место сохранения задается через настройки. И вот в таком режиме она все сохраняет (там, куда прописано в настройках - правда, при их изменении надо изменить место, нажать «ок», закрыть прогу и открыть ее заново). По-умолчанию оно все пишет в ~/.UserDirs - все кучей без разбора.

То есть, записывать-то файл оно может, а выбрать место и имя и потом записать - нет. Получается, сам кадр сделать можно, а вот обработать его и сохранить результат (или хотя бы выбрать нужные кадры) - нет.

blondy ()
Ответ на: комментарий от blondy

"дух захватывает"

от этого ПО... Я рискнул и себе поставить touplite. Конечно, без подходящего «железа» это полный «инвалид». Тем не менее, без сюрпризов не обошлось. Так он видит обычную web-камеру. И позволяет её «выбрать», после чего ожидаемо «падает»... Позже я нашёл аналогичное ПО для камер другого производителя. По ряду косвенных признаков можно предполагать и «железо» у них схожее. Софт устроен по шаблону touplite. Имена модулей «свои» и версия более старая или «проще» сделали. Работает он стабильнее. На web-камеру не реагирует, только сообщает о ней. Поразительно, но windows-версия не поставляется.

Видимо, клонов камер и программ к ним достаточно много в Китае(?) выпускается.

Более того, для одной из камер ToupTek (того же модельного ряда, что и ToupTek UCMOS 05100KPA) существует модуль ядра linux, который «делает» её обычным доступным устройством video*...

Интересовался и проектом openastroproject.org (его Вам выше советовали). Программа oaCapture вполне должна работать с Вашей камерой. Смущает только один момент (я в этом не разбираюсь) — программа предназначена для астрономических наблюдений, а Вам нужно работать с микроскопом. Будет ли она предоставлять все нужные функции?

-----

Реагирует только на подключение / отключение камеры.

Так и должно было быть. Довольно не обычно*, но ничего похожего на файл устройства не создаётся.

В процессе всего этого выяснилась занятная вещь. ...

Windows-версия работает иначе?

Кадр открывается во вкладке

Сохранить вкладку кнопкой «Сохранить быстро» невозможно? Кнопка неактивна?

оно все пишет в ~/.UserDirs - все кучей без разбора.

В настройках есть шаблоны имени и префикс.

anymouze ★★ ()
Ответ на: "дух захватывает" от anymouze

«дух захватывает» ...

Насколько я понимаю, много кто делает камеры для микроскопов / бинокуляров вида «TT только в профиль» / «TT, обработанный напильником» / на Anchor Chips. Ну и [почти] каждый уважающий себя деятель выкладывает к своим изделиям ПО (похоже, что на базе SDK разной степени свежести библиотек), заточенное под работу с их изделиями (уж не знаю каким образом это делается). У нас есть еще камера к микроскопу (закуплена вместе с микроскопом) - под «микроскопным лого» запускается подозрительно похожий на touplite интерфейс, но видит из всего набора только микроскопную камеру, ту, о которой на старте речь - нет, не видит. С другой стороны, микроскопная камера 3.0, а обсуждаемая - 2.0.

Кстати, если говорить о Windows - только для нее на touptek выложены драйвера+View - он (View, который вместе с драйверами) выглядит гораздо удобнее touplite. Если честно. Но он только под Windows.

Более того, для одной из камер ToupTek (того же модельного ряда, что и ToupTek UCMOS 05100KPA) существует модуль ядра linux, который «делает» её обычным доступным устройством video*...

Подскажите ли: Где лежит? Как собрать?

Интересовался и проектом openastroproject.org

Не собирается из исходников, до deb что-то руки никак не дойдут - поэтому точно ничего не скажу. С другой стороны, не могу сказать, что сильно настаивала (про «не собирается»). А что до астро-микро - там, скорее всего, фишечки и плюшечки конкретных задач - полуавтоматические обсчеты и пр. Базовые вещи (навроде определения камеры, захвата кадра и видео, и, скорее всего, настройка увеличения и калибровка) должны совпадать (примерно).

Windows-версия работает иначе?

Да нет, так же примерно - только сохраняет файлы ). Просто не могу представить обстоятельства, при которых удобно использовать быстрое сохранение вместо открытия во вкладках и выборочного сохранения. При быстром даже не знаешь, насколько удался кадр - он же его не показывает.

Сохранить вкладку кнопкой «Сохранить быстро» невозможно? Кнопка неактивна?

Да, верно - кнопка активна только при активной вкладке с live. На открытой вкладке с кадром - нет. А жаль - было бы удобно ).

В настройках есть шаблоны имени и префикс.

Есть - и в настройках есть, и (наверное, может быть, вероятнее всего) можно вручную config поправить. Просто когда какую-то опцию не используешь - про ее настройки даже не думаешь (ну и не лезешь, соответственно). Потому и «занятная вещь». Ну и место сохранения по умолчанию удивило меня, да. Ладно бы там какую-нибудь папку ToupLite создавал бы (хотя, по мне, ~/.ToupLite/* было бы логичнее) и туда кучу - нет, прямо в .UserDirs, собирай их там потом ).

blondy ()
Ответ на: комментарий от blondy

честно говоря, ругать этих «погромистов-школьников» можно долго и «смачно» — но не поможет :(

Я (как мне кажется) разобрался с «логикой» работы этой версии touplite. Попробую изложить:

1. Вызывать диалоги сохранения снимков (файлов) через хоткеи нельзя
категорически -- файлы не сохраняются, иногда "падает" программа.
2. Необходимо настроить "опции" сохранения в "Настройках".
3. Открываете "Живое видео", настраиваете параметры камеры...
4. Самое главное: снимки делаете клацая кнопку "Сохранить быстро"
5. "Редактировать" снимки возможно, открывая их кнопкой "Открыть".
6. Если применить какой-либо инструмент с панели к сохраненному снимку,
становится активной кнопка "Сохранить" -- через неё и надо сохранять.
7. Изменять имена файлов нужно вне программы -- сама она не переносит
такие вольности.

Про удобство говорить не приходится.

Возможно раздел на левой панели «Съёмка и разрешение» содержит ещё какие-то возможности, но это выяснить я не могу.

---

много кто делает камеры для микроскопов

Разных клонов touplite на основе разных версий SDK к разным вариациям камер на схожих чипах «наваяли»... :(

View... выглядит гораздо удобнее touplite

видимо touplite для «галочки» в «последнюю минуту» собирали

При быстром даже не знаешь, насколько удался кадр - он же его не показывает.

Выше я описал допустимое э-э-э «поведение пользователя» в touplite. Программа откровенно «сырая» и про удобство речь не идёт :(

в настройках есть,

Директорию Вам придётся создать самостоятельно и выбрать её в настойках, также подобрать «удобные» шаблоны для «автоматического» сохранения. После сохранения снимка его возможно просмотреть (в touplite) и переименовать (вне программы). Вот ещё «особенность»: открыть в новой вкладке программа может файл в любом поддерживаемом формате, но сохранить может только в формате заданном в настройках.

К примеру я открывал *.jpg ы одной вкладке и *.png в другой. Изменял «снимок» с помощью инструментов (отметки, линии, контуры — или как они правильно называются). По умолчанию формат jpg, и кнопка «Сохранить» тихо работала с *.jpg. А попытка сохранить изменения в *.png вызывала крах программы.

драйвер gspca, файл touptek.c добавляет поддержку камеры UCMOS08000KPB. Ваша UCMOS05100KPA закомментирована. Без технической документации добавление новой камеры может быть рулеткой. Драйвер работает с «ЖЕЛЕЗОМ» и неправильные команды/данные способны повредить устройство. С другой стороны я в этом направлении «глубоко не копал»...

anymouze ★★ ()
Ответ на: комментарий от anymouze

драйвер gspca

Мне где-то попадалось что-то насчет «gspca is deprecated» - понимаю, что в таком изложении это выглядит как «ну он такой ... розовенький», но конкретнее сейчас не скажу. Собственно, поэтому я не стала особо в нем копаться. Но я еще покопаю! Правда медленно - у меня «концегодный завал» (впрочем, наверное, как у многих), а «горячий вопрос» я костыльно решила.

Меня все никак не оставляет uvscada https://github.com/JohnDMcMaster/uvscada. Там в списке устройств есть эта камера. Но я никак не могу в толк взять, что с этим всем нужно сделать, с чего начинать и вообще «как с этим работать-то!?!». Огромная куча питоновских и не очень скриптов - и я не вижу никаких пояснений. А разобрать сама вот так сразу не могу, а на погружение сейчас времени нет (мне и за пару недель не управиться, наверное) (.

раздел на левой панели

Там настройки съемки - баланс белого, гистограмма, выдержка и т.п.

для галочки

Скорее, linux-поддержку (может, и мак тоже - не на чем потестить) слепили для галочки - вместе со всем этим *lite. ToupView идет комплектом с виндовыми драйверами, touplite - отдельным продуктом, без драйверов (под виндовсом надо сначала установить драйвера (+View - он с ними неизбежно ставится), иначе не взлетает) - и под виндой он все равно работает лучше touplite-а под той же виндой.

Самое крутое, что есть в этой программе (ну, после - «получать изображение с камеры», разумеется) - возможность калибровки под разные увеличения (очень здорово спасает с микроскопом - один раз настроил под все объективы (под все 4), сохранил - потом только не забыть выбрать нужное из списка - можно увеличивать картинку в окне просмотра, все будет пересчитано программой). После этого можно мерить линейные размеры объектов в нормальных единицах, а не в пикселях, не добавляя в кадр каждый раз «линейку». Но с бинокуляром это не прокатывает из-за плавного зума на бинокуляре (очень удобно в работе), так что единственная прелесть этой софтины в связке с этой камерой - получить кадр с камеры. А редактировать и обрабатывать его все равно приятнее в чем-то другом (мы работаем с Fiji, например - под любой ОС). Идея разработчиков сохранять таблицы измерений либо в формате exel, либо в формате html до сих пор продолжает производить на меня неизгладимое впечатление ).

Спасибо отдельное за «логику работы программы» - очень полезные замечания.

Кстати, еще немного про логику. Прога очень тормозит при закрытии себя, а при попытке сделать ей (запущенной из терминала) Ctrl+Z - вешает текущий рабочий стол (то есть, можно переключиться на другой и работать дальше - но текущий для touplite будет висеть, у меня так ни разу и не хватило терпения дождаться, когда же он «отвиснет»).

blondy ()
Ответ на: комментарий от blondy

«gspca is deprecated»

:) ну, это звучит как-то так: «не нужно его трогать».

не оставляет uvscada

как я понял, проект занимается промышленным мониторингом (собственно я дальше не углублялся)

Там настройки съемки - баланс белого, гистограмма, выдержка и т.п.

Вот не знаю, как точнее это назвать... В самом «верху» камеры, а следующие «Съёмка и разрешение» (там кнопка с фотоаппаратом, другая видео). Ладно позже сделаю скрин...

Самое крутое, что есть в этой программе...

Просто её сделали «как надо», а touplite «недоразумение». В touplite можно выставить и «не в пикселях», но насколько это будет соответствовать реальности?!

Прога очень тормозит при закрытии себя

А как Вы её закрываете? Там же нет, кнопки/пункта меню «Закрыть». Попробуйте через контекстное меню окна <Alt>+<Space> --> «Закрыть»

anymouze ★★ ()
Ответ на: комментарий от anonymous

Спасибо за ссылку. В том драйвере описанное устройство (0547:6512) даже не упоминается. В остальное ещё не вникал, хотя есть интересные «направления», о которых я не знал...

Там всё «глухо» в этом ToupTek software — производитель выложил SDK, но например, нигде не упоминается лицензия программ и SDK.

anymouze ★★ ()
24 января 2019 г.

Уважаемое сообщество, подскажите, куда копать. Имеется аналогичная беда с камерой BestScope BUC500, на оффтопике работает через ToupLite. Отловить создание устройства также не удалось, линуксовым touplite не определяется.

Выхлоп dmesg при подключении

[  512.171387] usb 3-1: new high-speed USB device number 5 using xhci_hcd
[  513.723960] usb 3-1: New USB device found, idVendor=5453, idProduct=a804
[  513.723962] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  513.723963] usb 3-1: Product: 1/2.5 5.0MP color CMOS camera   
[  513.723964] usb 3-1: Manufacturer: 123456789

Вывод lsusb -v

Bus 003 Device 011: ID 5453:a804  
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x5453 
  idProduct          0xa804 
  bcdDevice            0.02
  iManufacturer           1 
  iProduct                2 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0

Также принесли российскую камеру es-experts с вендором 7777 и id 0004, поведение обеих аналогично, камеры не uvc, устройство в /dev/ не создаётся при подсоединении, хотя судя по dmesg камеры подключаются и система понимает, что это камеры. Подскажите, куда копать, задача уже покоя не даёт.

Heavens_A_Lie ()
Ответ на: комментарий от Heavens_A_Lie

линуксовым touplite не определяется

Ссылочку на «линуксовый touplite» не покажите? В этом треде кажется были ссылки на пару клонов этих «линуксовых touplite». «Ставятся» они легко (могут ли систему «загрязнять» не подскажу). Возможно они увидят Ваши камеры.

На сайтах производителей/продавцов этих камер ПО для linux не представлено?

После подключения камер следующие команды что-то возвращают?

sudo modprobe -c| grep v5453pa804
sudo modprobe -c| grep v7777p0004

anymouze ★★ ()

bInterfaceClass 255 Vendor Specific Class

Это не UVC камера.

[ 8285.660640] usb 2-1: Product: USB2.0 Camera

Это просто строка из дескрипторов хранящихся в USB устройстве. Ядро видит девайс, адрес ему выдаёт, дескрипторы читает, но что с ним делать - не в курсе, драйвера подходящего нету. Разумеется никаких /dev/videoX не будет.

-rwxr-xr-x 1 root staff 11722400 дек 5 14:40 libtoupcam.so

Вот эта библиотечка скорее всего и есть user-space драйвер камеры, к которой она через какую-нибудь libusb или напрямую через /dev/bus/usb/$Bus/$Dev лазает.

Запуск touplite от пользователя: открывается программа, в списке есть камера, идет изображение.

Значит libtoupcam.so и камера прекрасно работают. И дело не в них.

Case insensitive sorting unsupported in the posix collation implementation

Это что-то связанное с локалью, которая, видимо, установлена в POSIX. Можно попробовать запускать этот touplite как

LC_ALL=C touplite
LC_ALL=en_US.utf8 touplite
LC_ALL=какая-нибудь-китайская-локаль touplite

Stanson ★★★★★ ()
Ответ на: комментарий от anymouze

Ссылочку на «линуксовый touplite» не покажите?

Качал bz архив отсюда: http://www.touptek.com/download/showdownload.php?lang=en&id=28.

sudo modprobe -c| grep v7777p0004

ничего не возвращает, это для «русской» камеры. BestScope осталась на работе, завтра попробую с ней. У меня даже touplite не видит камеру, увы, хотя на оффтопике оно худо-бедно работает.

Зато я глянул dmesg после падения touplite и обнаружил странное: я так понимаю, туплайт падает, запуская вебку по uvcvideo.

[14426.248033] uvcvideo: Failed to query (GET_RES) UVC control 1 on unit 2: -110 (exp. 2).
Значит ли это, что на самом деле туплайт коннектится по uvc ко всем камерам, или просто он умеет (плохо) в uvc?

Heavens_A_Lie ()
Ответ на: комментарий от Stanson

Вот эта библиотечка скорее всего и есть user-space драйвер камеры, к которой она через какую-нибудь libusb или напрямую через /dev/bus/usb/$Bus/$Dev лазает.

Прошу прощения за нубский вопрос, но может можно как-то через правила udev попробовать подсунуть вот этот самый libtoupcam.so? Видел, что в udev можно прописывать драйвер как опцию DRIVER=, ему попытаться подсунуть строчку типа «/usr/local/lib/libtoupcam.so», или как это делается? Раз на оффтопике эта штука работала через туплайт, вероятно, и на линуксе должна работать через него же.

Heavens_A_Lie ()
Ответ на: комментарий от Heavens_A_Lie

Прошу прощения за нубский вопрос, но может можно как-то через правила udev попробовать подсунуть вот этот самый libtoupcam.so?

Это ещё зачем?

Видел, что в udev можно прописывать драйвер как опцию DRIVER=, ему попытаться подсунуть строчку типа «/usr/local/lib/libtoupcam.so», или как это делается?

libtoupcam.so это библиотека, которую использует софт для доступа к камере, а не драйвер, который используется ядром чтобы создать в userspace интерфейс к железке.

Любое USB устройство - это просто одна или несколько трубок (endpoint'ов) для передачи данных. Если для девайса есть драйвер в ядре, то он эти трубки забирает себе, как-то там с ними что-то делает, а юзеру даёт какой-нибудь высокоуровневый /dev/videoX, например. Если драйвера нету - то эти трубки просто выставляются юзеру в виде файлов в /dev/bus/usb/... Любая софтина может взять и самостоятельно дуть в эти трубки. Или использовать библиотеку, для этого. Всё, что нужно сделать с udev - это прописать права на эти трубки чтобы они были доступны обычному юзеру.

Раз на оффтопике эта штука работала через туплайт, вероятно, и на линуксе должна работать через него же.

Ну так она и работает. Не работает, насколько я понял сама софтина, которая что-то там куда-то сохранять не может.

Stanson ★★★★★ ()
Ответ на: комментарий от Heavens_A_Lie

ничего не возвращает

«я так и думал» © :)

да, от «обычных» uvc-камер все версии этого ПО, которые я «пробовал» падали.

Это ПО «мы уже пробовали» :( Я описывал «особенности» работы программы. Могу посоветовать создать или модифицировать правило udev — подставить «свои» VID/PID. Правило из архива после установки touplitelite будет в файле /etc/udev/rules.d/99-toupcam.rules . Возможно камера появится в программе touplite.

anymouze ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.