16 июля 2009 г.

Подключение веб-камеры в Ubuntu linux.

Подключение веб-камеры в Ubuntu linux.

Мой друг детсва сейчас живет в Литве и он увлек меня общением с вебкамерой и микрофоном, а то ему писать лень... :-) Правда при этом затянул меня в skype, но это не беда, ведь плавно перейдем на gtalk\empathy или ekiga.

Хоть многие и заявляют, что множество вебкамер прекрасно работают на линуксе, но сами же производители камер ни за что не напишут на коробке будет ли работать их камера в linux, хотя уже в последствии проб и ошибок нашел маркированные для "яблочных Маков", но об этом позже...

Но вот как попасть в яблочко я не знал, потому полез во всемирную паутину собирать разные советы и информацию. Хотел даже взять для теста камеру, у кого-нибудь, но встроенные в ноутбуки не заберешь домой ;-) Главное, что я извлек из этой кучи информации, это то, что web-камеры, работающие в Linux, делятся на 2 группы: во-первых, камеры, которые работают под управлением драйвера GSPCA и во-вторых, камеры с интерфейсом UVC (USB Video Class).

Первые камеры должны иметь чип, соответствующий определенным и довольно распространенным спецификациям, именно поэтому многие даже дешевые камеры начинают работать из коробки, хотя иногда и требуется определенная подстройка.
Вторые относятся к классу так называемых UVC-камер (USB Video Class). Универсальный интерфейс поддержки камер означает, что камера будет работать с операционной системой без драйвера! Однако не совсем конечно без драйвера. Просто этот стандарт описывает универсальные спецификации поддержки USB-видео устройств и встраивается в операционные системы. Поддержка UVC в ядре Linux существует только начиная с версии ядра 2.6.26
Определить какой чип используется в вашем случае, можно на сайте производителя или опытным путем, используя (lsusb):

$: lsusb: Bus 004 Device 003: ID 093a:2628 Pixart Imaging, Inc.

В связи с мировым кризисом, хотелось бы прикупить камеру подешевле, ведь пикселей от этого у нее меньше не станет :-) Хоть много почитывал, но информации так много, что все в голове не уложилось да и выбор камер не так велик в наших магазинах, что пришлось сначала искать камеру по подходящей цене, а потом узнавать работает ли такая в линуксе... Но так как огнетушитель с собой не ношу, а так "загорелось" в случайный момент, что дернуло меня в магазине купить Genius iLook 300 и вот начались приключения ибо она под лином вообще не должна работать, но...

Пробовал на gspca из репозиторя Убунту: 'sudo apt-get install gspca-source' при этом были установлены зависимости, но это не помогло...

N.B. Так как пакет module-assistan бул устновлен ранее, то загрузить модуль можно, если ваша вебкамера поддерживается так:
m-a prepare
m-a a-i gspca
modprobe gspca


По советам ЛОР-а http://www.linux.org.ru/view-message.jsp?msgid=3290795#3403746
, другим способом таки заставил кое-как работать мою вебкамеру Genius ilook 300 на чипсете PixArt pac7302 в Ubuntu 8.10.

$: lsusb: Bus 004 Device 003: ID 093a:2628 Pixart Imaging, Inc.

1. # apt-get install libv4l-0

2. Берем модули gspca2 отсюда: http://linuxtv.org/hg/~jfrancois/gspca/ , распаковываем.

3. В файл linux/drivers/media/video/gspca/pac7311.c добавляем строчку (в правильное место):
{USB_DEVICE(0x093a, 0x2628), .driver_info = SENSOR_PAC7302},

4. Собираем и устанавливаем модули
# make
# make install

5. Втыкаем камеру, контролируем загрузку модуля в логе
# dmesg

[12196.544006] usb 1-1: New USB device found, idVendor=093a, idProduct=2628
[12196.544128] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[12196.805878] Linux video capture interface: v2.00
[12196.813966] gspca: main v2.4.0 registered
[12196.816876] gspca: probing 093a:2628
[12196.856369] gspca: probe ok
[12196.858577] usbcore: registered new interface driver pac7311
[12196.859559] pac7311: registered

6. export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so

7. skype

N.B. или прописываем в ваш .bashrc строку export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so, чтобы каждый раз не вводить ее снова или в консоли запускаем: LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so . Я просто в меню fluxbox записал: [exec] (skype) {LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so skype}, на быстрые клавиши не вешал так как редко использую.

#########

И что же в итоге я получил? Изображение черное и с жутким торможением.
Что же дальше?
1. LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so camorama -M -d /dev/video1
настрой цвета + вкл. "Effects" -> "Color corection" = видео без сепии :-)
Вот бы еще и параметры эти запомнились бы, а то каждый раз исправлять нужно, а потом запускать skype, для ekiga не нужно (там есть возмоность настроить изображение).

2. Опции в /etc/modprobe.d/options не помогают для настроек цвета, а хотелось бы :-(

options gspca autoexpo=0
options gspca gamma=5
options gspca GBlue=270
options gspca GGreen=270
options gspca GRed=330
options gspca force_gamma_id=3
options gspca force_rgb=1
options gspca compress=1

3. Жуткие тормоза остались, хотя камера заработала. Это было интересно, но для жизни мучительно больно вот и пришлось остановится на Genius (другими камерами в тот момент не торговали) и недомучав торможение остановить выбор таки на камерах с UVC: Genius Eye 320 и iSlim 320 -> и выбор пал таки на более дешевый вариант, но с такими же параметрами и это была вебкамера iSlim 320

Проверку на поддержку UVC можно сделать командой:
~$ modinfo uvcvideo
filename: /lib/modules/2.6.27-11-generic/kernel/drivers/media/video/uvc/uvcvideo.ko
version: v0.1.0
license: GPL
description: USB Video Class driver
...

Поменял взятую ранее камеру с доплатой, принес домой подключил в usb:

~$ lsusb
Bus 005 Device 006: ID 0458:605e KYE Systems Corp. (Mouse Systems)
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 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 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Проверим распознана ли наша камера:
~$ dmesg |grep -i "uvc"
[12697.894368] uvcvideo: Found UVC 1.00 device iSlim 320 (0458:605e)
[12697.905368] usbcore: registered new interface driver uvcvideo
[27397.901940] uvcvideo: Found UVC 1.00 device iSlim 320 (0458:605e)

~$ gstreamer-properties # для настройки устройств ввода/вывода....

и запускаем skype, ekiga, empathy и получаем работу камеры и встроенного микрофона (правда использую от наушников чтобы дальше от моцных колонок) и никакой мороки, даже gspca ну нужно устанавливать! Просто наслаждаемся общением! Правда empathy мне совсем не нравится, ведь там совсем нет настроек устройство (может руки, но никах микрофон не могу ей скормить), но для видео gtalk'a другой проги не знаю... Нужен gtalk-linux, что бы отказаться от skype ;-)

Установим пакет luvcview: sudo apt-get install luvcview

Этим увлекательные "мучения" снова подтверждают истину, что скупой платит дважды, от дурной головы нет покоя ногам, 7 раз прочитай и один раз купи :-)


---

spca - это драйвер для более, чем 240 моделей камер. Полный список поддерживаемых моделей можно найти здесь: http://mxhaard.free.fr/spca5xx.html

если для вашей камеры нет поддержки gspca - возможно, она есть в разрабатываемом в данный момент USB Video Class для Linux. Для начала - можно просмотреть список известных устройств, однако и другие камеры, соответствующие спецификации UVC должны работать. http://linux-uvc.berlios.de/#devices, ведь и моей iSlim 320 в списке нет, но работает отлично! :-)

N.B. покупайте камеры UVC они сразу и без проблем работают и на коробках этих камер конечно же не пишут про работу в линуксе, но пишут: "Support Mac" и "Поддержка UVC (USB Video Class), не требует драйвера"! Спрашивайте, а то продавцы сами не знают чем тогруют и что такое UVC...

7 комментариев:

PhantomCat71 комментирует...

Спасибо! Жаль что раньше не прочитал! подарил сегодня жене камеру для скайпа... Блин. завтра попробую поменять! смотрели-же глаза на д-линк, которая и раньше была, но ту дети растерзали...

Al комментирует...

Есть у меня ещё старенькая Genius. Отдали знакомые, потому что для винды дрова не нашли.
Самое забавное, что в Ubuntu Hardy она подцепилась автоматом сразу, как воткнул -).

Unknown комментирует...

привет, я на Ubuntu недавно..
есть проблема из веб камерой a4tech pk-130mg
система Ubuntu 9.10 desktop
Linux g00fy-desktop 2.6.31-14-generic

g00fy@g00fy-desktop:~$ lsusb
Bus 004 Device 002: ID 04f2:0402 Chicony Electronics Co., Ltd
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 006: ID 13fe:1f00 Kingston Technology Company Inc. DataTraveler 2.0 4GB Flash Drive
Bus 001 Device 003: ID 04b8:012d Seiko Epson Corp. Perfection V10/V100 (GT-S600/F650)
Bus 001 Device 005: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0ac8:0328 Z-Star Microelectronics Corp. A4Tech PK-130MG
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 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 003 Device 002: ID 09da:0080 A4 Tech Co., Ltd
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

камера определилась /dev/video0
изображение есть, но очень странное: прозрачное, увеличенное, перевёрнутое, кусками (часть пола, часть переднего плана и тп).

http://s13.radikal.ru/i186/0910/87/a88254f4ec73.jpg

камера направлена прямо на меня, но на скрине:
синий кавёр, на переднем плане прозрачная моя кофта, изображение перевёрнутое и увеличенное.

подскажыте плс что делать, как ето исправить?
Пользователь решил продолжить мысль 01 Ноября 2009, 21:48:30:нет никаких идей?

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

subdriver vc032x

http://moinejf.free.fr/webcam.html

она должна работать..

помогите заставить плс.

Unknown комментирует...

привет, решыл свою проблему с помощью gauss_gs. Спасибо ему большое.
решение здесь: http://ubuntuforums.org/showthread.php?t=1315760
спасибо.

Анонимный комментирует...

у меня Defender G-lens 323. На винду дрова встали как миленькие - на том компе работает без проблем, даже не фонит как обычные скайп-камерки. На Ubuntu никак, в смысле криво, изображение то перевёрнутое то нету. Какими дровишками и где их взять можно заменить-подрехтовать? Потому что автоматом оно не втыкается, а работать надо, а работаю тока на компе с Ubuntu, что делать?

imhology комментирует...

Для начала определить какой чип используется в вашем случае, а потом искать для него драйвер и решения проблем. Например см. пост Roman'a и forum.ubuntu.ru + google
GSPCA http://mxhaard.free.fr/spca5xx.html

Анонимный комментирует...

>> Вот бы еще и параметры эти запомнились бы, а то каждый раз исправлять нужно, а потом запускать skype

Для Ubuntu 10.04 я сделал так.

1) sudo apt-get install v4l2ucp

2) v4l2ucp

Для избавления от тормозов выключаем AutoGain и ставим Exposure на минимум. Добавляем яркость, гамму и Gain по вкусу.

3) Сохраняем настройки:
v4l2ctrl -s ~/v4l.cfg

4) Пусть подгружаются при входе в систему:
echo "v4l2ctrl -l ~/v4l.cfg" >> ~/.profile

Как-то так.