Эх, долгая это история была, подключение моей web-камеры в Linux. "Неблагодарные" открытому сообществу производители камер ни за что не напишут на красивой коробке будет ли работать их камера в Linux, хотя многие камеры работают прекрасно. Но вот как попасть в яблочко я не знал, потому полез во всемирную паутину собирать разные советы и информацию. Даже пробовал взять камеру у знакомого для эксперемента, не получилось (хотя при настройке она возможно и заработала бы), но тогда я еще не знал как и что делать. Но это я отвлекся. В общем говоря в сети я нашел массу советов и информации, описаний камер, таблиц с описанием поддерживаемых камер и прочей "лабуды" (в хорошем смысле слова). Кстати неплохая статья по web-камерам есть в одном из последних журналов Linux-Format. Но главное, что я извлек из этой кучи информации, это то, что web-камеры, работающие в Linux, делятся на 2 группы.
1. Камеры, которые работают под управлением драйвера GSPCA
2. Камеры с интерфейсом UVC
Первые камеры должны иметь чип, соответствующий определенным и довольно распространенным спецификациям, именно поэтому многие даже дешевые камеры начинают работать из коробки, хотя иногда и требуется определенная подстройка.
Вторые относятся к классу так называемых UVC-камер (USB Video Class). Универсальный интерфейс поддержки камер означает, что камера будет работать с операционной системой без драйвера! Однако не совсем конечно без драйвера. Просто этот стандарт описывает универсальные спецификации поддержки USB-видео устройств и встраивается в операционные системы. Т.е. можно говорить, что универсальный драйвер уже установлен в операционной системе, это подобно тому как современные фотоаппараты можно подключать к компьютерам для снятия снимков и при этом не применять какие-то специальные драйверы. Например в windows эти спецификации были встроены начиная с windows XP-SP2, в MacOsX эти спецификации (уж не знаю с какой начиная версии) так же имеются. Немного особняком стоит Linux, по причине большого количества разных дистрибутивов это нужно проверить, поскольку в современные ядра эти спецификации пока не "припаяны". Законная поддержка UVC в ядре Linux существует только начиная с версии ядра 2.6.26. Однако многие производители Linux дают поддержку этого интерфейса с помощью модулей, поэтому будет не сколько не удивительно, если Ваш Linux с более старым чем 2.6.26 ядром уже имеет поддержку стандарта UVC. Ровно точно так же получилось и у меня с моим Ubuntu 7.10. С удовольствием для себя обнаружив, что этот интерфейс поддерживается в моем Ubuntu я выбрал видеокамеру и заказал ее в ближайшем компьютерном магазине. Остается только надеятся, что разновидностей UVC камер со временем станет только больше.
Проверку на поддержку UVC можно сделать командой:
modinfo uvcvideo
и получив примерно что-то в этом духе
filename: /lib/modules/2.6.22-14-generic/ubuntu/media/usbvideo/uvcvideo.ko
license: GPL
description: USB Video Class driver
Итак я выбрал UVC web-камеру Genius Eye 320. Через недельку после заказа стал ее счастливым обладателем и в этот же вечер подключил ее к своему компу. Однако к разочарованию обнаружил, что картинки не в одной из программ, использующих камеру, я не наблюдаю. Тогда я загрузил машину из под учетной записи с правами администратора и вот оно! Есть картинка!
Далее всего-лишь пришлось решить вопрос с правами на использование камеры моей учетной записью без прав администрирования.
Проверяю, включена ли моя учетная запись в группу video
cat /etc/group | grep video
video:x:44:user1
где user1 это учетная запись с правами администрирования, моей учетной записи здесь нет, выходит, что нужно добавить себя в группу video. Сделать это можно отредактировав файл /etc/group следующим образом:
1. Входим в систему под учетной записью с правами администрирования.
2. Даем команду sudo gedit /etc/group (если у вас нет текстового редактора gedit, то откройте любым другим текстовым редактором)
3. Ищем строку, начинающуюся со слова video. Общий формат записи:
groupname::password:groupid:userlist
где
* groupname — имя группы.
* password - зашифрованный пароль группы. (Поскольку пароль для доступа к группам не применяется, обычно здесь нет никакой записи.)
* groupid - уникальный идентификационный номер группы.
* userlist - список пользователей группы, перечисленных через запятую.
Моя строка выглядела так - video:x:44:user1
где user1 - имя учетной записи с администраторскими привелегиями
Добавляем через запятую имя своей учетной записи, в результате получаем
video:x:44:user1,user
где user это имя моей учетной записи.
Сохраняем файл.
Далее я на всякий пожарный перезагрузил систему и сделал проверку:
cat /etc/group | grep video
video:x:44:user1,user
где user это моя учетная запись, теперь все впорядке, осталось только проверить работает ли камера.
Проверку провел в программах Skype, Ekiga и Kopete, во всех программах камера заработала, единственное, что в программе Ekiga пришлось немного подправить настройки - номер канала и выбрать само устройство (это делается в настройках Ekiga). В заключении немного двигаем движками настройки яркости и цветности, так же в настройках одной из этих программ, после чего камера работает одинаково хорошо во всех этих программах и даже автоматически регулирует свою чувствительность к освещенности.
Но вот в программах Camorama и Gimp еще предстоит выполнить определенные настройки, пока не знаю какие. В этих камерах картинку я пока не получил (сообщение "Could not connect to device (dev/video0) Please check connection"). С параметром -d /dev/video1 Camorama запустилась, но без изображения.
Права на файл video0 такие:
ls -ld /dev/video0
crw-rw---- 1 root video 81, 0 2008-08-22 16:39 /dev/video0
Если у кого есть совет по делу, пожалуйста пишите, я с удовольствием опробую это на примере. Хочется осуществить запуск web-камеры что называется "до конца".
Вместо "каморамы" можно использовать стандартную программу под Gnome с наименованием cheese (фотовидеобудка), программа делает фото и видео с установленной web-камеры.