webcamera linux

kataich

Скажите, никто, случайно, не является обладателем webcamer'ы
Logitech C160, работающей под Linux?

# lsusb
Bus 001 Device 002: ID 046d:0824 Logitech, Inc.

Какой драйвер её поддерживает?

vall

uvcvideo?

kataich

Сейчас с этим разбираюсь, спасибо :)
Была надежда, что qc-usb сможет. Но даже после моих попыток расставить различые костыли, ничего не вышло.
Проблема в том, что у меня довольно старая система и нет возможности сделать апгрейд.

vall

тогда не судьба. усб вэб-камеры наконец-то стандартизовались и всё новое идёт уже с увк интерфейсом.

kataich

В общем, мне удалось прикрутить ядерный модуль uvcvideo.
Однако, программы, которые, по идее, должны делать grab
изображения с устройства (я использую vgrabbj выдают
зеленое изображение.
Я заметил, что uvcvideo использует v4l1_compat, поэтому,
после непродолжительных гуглений выяснилось, что существует
предположительный workaround
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so vgrabbj
Но проблема в том, что у меня Ubuntu 6.10, а как сказал
выше все веб-камеры стандартизировались и под них
стали писать библиотеки. В те времена, когда была ubuntu
6.10 этих библиотек еще не было (поэтому их нет в репозитории) => я
решил собрать из исходников
скачал libv4l-0.6.4.tar.gz (пробовал и libv4l-0.5.9.tar.gz)
http://ftp.pardus.org.tr/pub/source/2009/
При компиляции получаю:

In file included from libv4lconvert.c:27:
libv4lconvert-priv.h:104: error: array type has incomplete element type
libv4lconvert.c: In function ‘v4lconvert_get_framesizes’:
libv4lconvert.c:921: error: variable ‘frmsize’ has initializer but incomplete type
libv4lconvert.c:921: error: unknown field ‘pixel_format’ specified in initializer
libv4lconvert.c:921: warning: excess elements in struct initializer
libv4lconvert.c:921: warning: (near initialization for ‘frmsize’)
libv4lconvert.c:921: error: storage size of ‘frmsize’ isn’t known
libv4lconvert.c:925: error: ‘VIDIOC_ENUM_FRAMESIZES’ undeclared (first use in this function)
libv4lconvert.c:925: error: (Each undeclared identifier is reported only once
libv4lconvert.c:925: error: for each function it appears in.)
libv4lconvert.c:935: error: ‘V4L2_FRMSIZE_TYPE_DISCRETE’ undeclared (first use in this function)
libv4lconvert.c:940: error: ‘V4L2_FRMSIZE_TYPE_CONTINUOUS’ undeclared (first use in this function)
libv4lconvert.c:941: error: ‘V4L2_FRMSIZE_TYPE_STEPWISE’ undeclared (first use in this function)


кто-нибудь собирал это чудо?

Serab

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

den011

может скачать более старую версию.

Serab

не, ну можно попытаться патчи провернуть вспять :grin:

Serab

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

conv3rsje

кто-нибудь собирал это чудо?
Поставь новые linux-headers через репу или руками, от ядра ему нужен либо совершенно
стандартный open/mmap интерфейс доступа к v4l девайсу, либо объявление типов фреймов.
Можешь попробовать взять libv4l от hardy из соответствующего ppa http://launchpad.net/~libv4l/+archive/ppa
upd
Ну и походу еще имена ioctl некоторых добавились

kataich

Всем огромное спасибо.
Я собрал все компоненты.
Итак, в конечном итоге имеем:
"Старая" Ubuntu:
# cat /etc/*release*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=6.10
DISTRIB_CODENAME=edgy
DISTRIB_DESCRIPTION="Ubuntu 6.10"
Камера
# lsusb
Bus 001 Device 002: ID 046d:0824 Logitech, Inc.
Мне повезло, что когда-то я баловалася с одной
функциональностью в ядре, поэтому удалось из
остатков собрать себе ядро с uvcvideo (будет
загружаться, если понадобится вебкамера).
Я подпер драйвер uvcvideo, включив мою камеру в список
поддерживаемых девайсов. Уже после этого я посмотрел
внимательно и обнаружил, что, если устройства нет в
списке, то она пытается следовать generic way, так что
может быть, камера заработает и без хаков драйвера.
# uname -r
2.6.26.1
# lsmod | grep uvc
uvcvideo 54024 0
compat_ioctl32 2176 1 uvcvideo
videodev 31104 1 uvcvideo
v4l1_compat 15108 2 uvcvideo,videodev
usbcore 135664 6 uvcvideo,usbhid,snd_usb_audio,snd_usb_lib,ohci_hcd
Что касается библиотек, то там необходимо подменить
файл videodev2.h, так как при сборке идет include файла
videodev2.h из headers, а у меня-то хедера от ядра
2.6.17-10. К сожалению, videodev2.h от ядра 2.6.26.1
(самое свежее, которое мне доступно на данный момент)
тоже не подходит к любой версии библиотек, так что
libv4l-0.6.4.tar.gz и libv4l-0.5.9.tar.gz мне не подошли.
В итоге, пошло только libv4l-0.1.
http://people.atrpms.net/~hdegoede/
Собираем и получаем необходимые *.so
# ls /usr/src/libv4l-0.1/lib/
libv4l1.so libv4l2.so libv4lconvert.so removemenot v4l2convert.so
libv4l1.so.0 libv4l2.so.0 libv4lconvert.so.0 v4l1compat.so
Все, делаем прелоад:
# export LD_PRELOAD=/usr/src/libv4l-0.1/lib/v4l1compat.so
# export LD_LIBRARY_PATH=/usr/src/libv4l-0.1/lib:$LD_LIBRARY_PATH
Смотрим на параметры видео:
# vgrabbj -s /dev/video0
vgrabbj, Version 0.9.6
Videodevice name: /dev/video0 (UVC Camera (046d:0824
Capabilities
Type : 1 Values can be looked up at videodev.h
Channels : 1
Audio : 0
MaxWidth : 176
MaxHeight: 144
MinWidth : 48
MinHeigth: 32
Current Settings:
Brightness: 19018
Hue : 0
Color : 9766
Contrast : 8224
Whiteness : 0
Depth : 24
Palette : RGB24 (4)
Width : 176
Height : 144
Chromakey : 0
по значению width и height ставим imagesize of input device
(в нашем случае это qcif )
# vgrabbj -f test.jpg -d /dev/video0 -i qcif

kataich

Короче говоря, обладатели новых версий ubuntu должны получать работающую камеру из коробки.

kataich

Блин, походу skype 1.3.0.53 не поддерживает видео,
а ведь у меня установлен именно он... (

Fragaria

Ubuntu 6.10
:crazy: :crazy:
А некрофилия - это обязательное условие процесса?

kataich

А некрофилия - это обязательное условие процесса?
Если кратко отвечать на твой вопрос, то - да, обязательный.
Вот более подробный ответ:
Моё использование данной системы довольно консервативно: музыка, фильмы, интернет, программирование.
При этом обычно я не выхожу за пределы "коробочных решений", большинство из которых имеются в репозитории.
Всего под систему отведено 8Gb, из которых постоянно свободных остается где-то 30-600 Mб. Тут можно было
вспомнить о том, что же все-таки первично, бытие или сознание, а потому не ясно, что первично, мое консервативное использование системы, или ограниченность самой системы. Как бы то ни было, "некоробочных
решений" можно пересчитать по пальцам обеих рук, и все они работают, тьфу-тьфу-тьфу. Таким образом, я имею
полностью рабочую станцию, которая отвечает всем моим требованиям. Зачем мне нужно обновляться?
На самом деле, очень интересно послушать и твою точку зрения.

Fragaria

Ну вот в частности ты столкнулся с проблемой, которая уже решена в более поздних версиях дистрибутива. Твоя версия дистрибутива уже не поддерживается, актуальной информации по ней в интернете практически нет. Уже достаточно давно вышел новый стабильный (LTS) релиз 10.04, который будет поддерживаться еще 3 года. Думаю, вполне можно потратить пару часов на переустановку системы и настройку привычного окружения, чтобы еще на 3 года забыть об обновлениях.

oliver11

переустановку
Убунта без переустановки не обновляется?

conv3rsje

Убунта без переустановки не обновляется?
Прыжок на 4 года сразу не осилит. Особенно если свободного места - 30мб
Точнее, она попытается осилить, но почти наверняка на чем-нибудь запнется.
Можно обновлять до 8.04, потом до 10.04, но это какой-то геморрой.

slonishka

Моё использование данной системы довольно консервативно: музыка, фильмы, интернет, программирование.
При этом обычно я не выхожу за пределы "коробочных решений", большинство из которых имеются в репозитории.
Всего под систему отведено 8Gb, из которых постоянно свободных остается где-то 30-600 Mб. Тут можно было
вспомнить о том, что же все-таки первично, бытие или сознание, а потому не ясно, что первично, мое консервативное
использование системы, или ограниченность самой системы. Как бы то ни было, "некоробочных
решений" можно пересчитать по пальцам обеих рук, и все они работают, тьфу-тьфу-тьфу. Таким образом, я имею
полностью рабочую станцию, которая отвечает всем моим требованиям. Зачем мне нужно обновляться?
На самом деле, очень интересно послушать и твою точку зрения.
принимал что-то, когда писал пост? =)

kataich

нет, а что?

slonishka

переход от коробочных решений к вопросам бытия показался подозрительно резким. =)

vall

:lol:
Оставить комментарий
Имя или ник:
Комментарий: