Устанавливаем веб-камеру в Linux
Оригинал: Configuring your webcam to work under Linux
Автор: Bruce Byfield
Дата: 6 сентября 2007
Перевод: Александр Тарасов aka oioki
Дата перевода: 11 сентября 2007
Если вы хотите испытать ощущения пользователя ранних версий GNU/Linux, попробуйте настроить веб-камеру на своей системе. В отличие от большинства устройств, веб-камеры зачастую не устанавливаются автоматически. Более того, если вы устанавливаете принтер, то вы знаете, что искать решение нужно в пакете Common Unix Printing System ( CUPS ) и его интерфейсах. С веб-камерами дело иначе — успех вашей затеи зависит лишь от того, что вы найдете в интернете, и от ваших знаний модулей ядра и драйверов. Эти обстоятельства приводят к тому, что настройка веб-камеры звучит как вызов — однако если отнестись к делу с пониманием того, что вы делаете, достаточной степенью осторожности и, может быть, долей удачи, возможно установить веб-камеру менее чем за вечер.
Если ваша веб-камера внешняя, это будет наилучшей предпосылкой для ее успешной настройки. Существует множество сайтов для различных производителей и моделей, поиск вам в помощь. В большинстве случаев вы не найдете исчерпывающую информацию на сайте производителя. Вместо этого лучше идите на неофициальные сайты — они заполняются самими пользователями, поэтому содержат наиболее достоверные сведения и комментарии. Webcam HOWTO , составленный Говардом Шейном (Howard Shane), хотя и устарел на пару лет, но содержит несколько полезных ссылок. Если камера подключается по FireWire, попробуйте список цифровых камер IEEE1394 , поддерживаемый Дэмьеном Душампсом (Damien Douxchamps).
Особенно полезен сайт A Free World Мишеля Ксаарда (Michel Xhaard), чьи драйвера Spca5xx уже нашли путь к репозиториям основных дистрибутивов, включая Debian. Если ваша веб-камера есть в списке, а пакет драйверов в репозитории вашего дистрибутива, тогда ваши шансы велики, и камера может быть определена автоматически при установке пакета.
Но иногда придется повозиться, например, если у вас встроенная веб-камера (такое часто встречается у ноутбуков) и это не волновало вас на момент покупки компьютера, либо ваш дистрибутив не содержит пакетов с драйверами. В этих случаях настроить веб-камеру может помочь поиск в интернете конкретно по вашей модели компьютера.
Много информации о камере можно почерпнуть прямо с компьютера. Для этого есть несколько способов:
- Протестируйте камеру с помощью подходящей программы (см. ниже). Если заработает, тогда ваша камера напрямую поддерживается ядром. Этот случай редок на сегодняшний день.
- Используйте команду dmesg | more , чтобы узнать определена ли веб-камера при загрузке системы. Найдя упоминание о ней, попробуйте найти созвучный модуль ядра (опять же, можно попробовать угадать) в каталоге /lib/modules/ , конкретно в подкаталоге /usb , который зарыт в глубине файловой системы. Точное расположение подкаталога /usb зависит от дистрибутива. В Debian полный путь /lib/modules/kernel/build/drivers/usb , а в Fedora 7 — /lib/modules/kernel/kernel/drivers/usb .
- На сегодняшний день наиболее распространены USB-камеры. Для просмотра подключенных USB-устройств используйте консольную программу lsusb , либо графическую v4l2-tool (поищите ее в своем репозитории). Найдите камеру по ее имени (или попробуйте найти ее методом исключения, или вообще угадать) и запишите ей соответствующий 8-значный код (с двоеточием посередине) в последней колонке списка. Этот код определяет производителя и идентификатор продукта, который можно использовать при поиске драйвера в интернете. В программе v4l2-tool ввод этого идентификатора во вкладке Suggest Driver даже может дать вам название нужного драйвера. Вооружившись этой информацией, отправляйтесь в интернет за драйвером. Если найдете, загружайте и компилируйте его. В некоторых случаях вам придется сперва загрузить кое-какие зависимости. К примеру, драйвер для камеры Ricoh R5U870 требует наличия пакета поддержки динамических модулей ядра (Dynamic Kernel Module Support, DKMS).
В случае упомянутой Ricoh R5U870 включение DKMS означает, что драйвер может быть автоматически установлен, как только будет скомпилирован. Возможно, потребуется устанавливать драйвер как заплатку (patch) к ядру, хотя это больше относится к старым камерам. В большинстве случаев, если у вас получится скомпилировать драйвер, установить его (загрузить модуль ядра) можно будет командой modprobe имя_драйвера . Если вы найдете удачную конфигурацию и будете удовлетворены работой камеры, закрепите свой выбор добавлением имени драйвера в скрипт /etc/modules или строки modprobe имя_драйвера в /etc/rc.d/rc.local . Тогда ваш драйвер будет загружаться при запуске системы.
Тестирование
Если вы дошли досюда, значит, все самое сложное позади, но вас еще могут подстерегать некоторые трудности. В зависимости от дистрибутива, вам может потребоваться создать с помощью команды addgroup новую группу пользователей video и поместить свои учетные записи в нее, чтобы все пользователи смогли пользоваться веб-камерой. Вдобавок нужно проверить работу камеры с помощью нескольких программ, таких как CamStream , Ekiga и Kopete — некоторые могут не работать с вашей камерой. Попробуйте обновить эти программы, иногда это может решить проблему.
Если для установки драйвера веб-камеры вы использовали DKSM, то после установки проверьте, что все остальное у вас работает (к примеру, у меня перестала работать беспроводная сетевая карта, включенная с помощью Ndiswrapper ). Эта проблема может остаться «висеть» даже при перезагрузке, однако при выключении компьютера и повторном включении проблема исчезает. Если же и это не помогло, попробуйте удалить остановившееся устройство и установить его заново.
Заключение
Бесспорно, эта статья лишь отправная точка. В завершение хочу отметить, что многие камеры из вышеупомянутого списка являются результатом ребрендинга других камер, или наоборот, их выпускают под новыми названиями. Вполне возможны случаи, когда устройства, которые называются и выглядят одинаково, но совершенно различаются внутренне.
Производители веб-камер, как и производители других устройств, совершенно не заинтересованы в выпуске драйверов для GNU/Linux. Таким образом, подавляющее большинство драйверов веб-камер для GNU/Linux — результат обратной разработки драйверов разработчиками-энтузиастами, многие из которых никогда не задумывались о стандартизации результатов своей работы.
По этим причинам, я старался избегать конкретики. Проблема не в том, что настройка веб-камера сложна (вовсе нет), проблема в том, что информацию приходится собирать по крупицам. Надеюсь, эта статья поможет вам в этом нелегком деле.
Источник
Настройка веб-камеры Linux
Сейчас все ноутбуки поставляются со встроенным средством связи — веб-камерой. Это очень удобно. С помощью web-камеры Linux вы можете общаться с друзьями через интернет, делать фото или даже записывать видео с ноутбука. Но только есть одно но. Не для всех моделей веб-камер есть драйвера в ядре Linux. Веб-камеры подобно сетевым wifi адаптерам еще не полностью поддерживаются этой операционной системой. Но тем не менее многие работают и даже очень хорошо. В этой инструкции мы рассмотрим как выбрать веб-камеру для Linux, а также поговорим о том как с ней работать и настраивать.
Выбор веб-камеры для Linux
Одно дело если ваша веб-камера встроена в ноутбук и вы ничего уже не можете поменять, но другое, если вы покупаете ее сами. В таком случае к выбору web-камеры linux нужно подойти серьезно. Несмотря на то, что сейчас все больше и больше оборудования поддерживается ядром Linux, и достаточно хорошо поддерживаются многие камеры, важно обезопасить себя от проблем.
В Linux, для подключения веб-камер чаще всего используется драйвер v4l, он по умолчанию включен в ядро. Если ваша веб камера linux будет совместима с этим драйвером, скорее всего, с ней проблем не будет. Посмотреть список совместимых устройств можно на сайте Ubuntu. Если кратко, то — вот основные производители:
Конечно, есть и другие производители, и другие драйвера, но с этим драйвером есть большая вероятность того что все будет работать из коробки. v4l использует другие драйвера для работы с оборудованием от различных производителей, но драйвера для всех веб камер, поддерживаемых v4l уже встроены в ядро.
Настройка веб-камеры в Linux
Если веб камера linux совместима с вашей системой, то она автоматически определится и будет работать. Давайте посмотрим определилась ли веб-камера в вашей системе:
Устройство video0 и есть ваша webcam linux, если все в порядке, вы можете с ней работать. Но что же делать если камеры нет? Не все камеры поддерживаются по умолчанию ядром и драйвером v4l. Но для некоторых есть сторонние драйвера, так что еще есть шанс заставить все это работать. Сначала посмотрим что скажет система о состоянии драйверов нашей веб камеры:
В этом примере программа сообщает что нужно использовать драйвер gspca_zc3xx, он готов к использованию и осталось его только загрузить командой:
Теперь еще раз проверьте есть ли устройство видео в каталоге /dev/.
Обычно система в этом сообщении должна сказать какой драйвер нужен, а уже с помощью интернета вы сможете найти как его установить в своей системе. Если предыдущий драйвер не работает или у вас другая веб-камера можно попробовать также драйвер uvcvideo:
Не во всех дистрибутивы по умолчанию выставляются правильные права на доступ к файлу устройства веб-камеры. Добавим разрешение на чтение и запись для всех пользователей в группе video:
$ sudo chmod g+rw /dev/video0
Настройка веб-камеры linux завершена. Теперь давайте рассмотрим как использовать веб-камеру в Linux.
Работа с веб-камерой в Linux
Кроме стандартного использования web-камеры linux по назначению для видеозвонков в программе Skype, можно делать еще много вещей, например писать видео или делать фотографии. В Linux существует несколько способов записи видео с помощью веб-камеры.
Рассмотрим самые распространенные из них. Во-первых, вы можете транслировать вывод веб камеры сразу на экран компьютера или ноутбука просто выполнив команду:
А с помощью mencoder вы можете сразу писать вывод веб-камеры в avi файл:
Если в вашей системе не установлены эти утилиты, то вы можете использовать даже ffmpeg для записи видео с веб камеры:
Вам необязательно использовать для этой задачи консольные утилиты. Записывать видео с различных устройств позволяет и такая программа, как vlc. Запустите программу из главного меню, откройте меню файл, устройство захвата:
Выберите устройство для записи видеокамера, файл устройства video0:
Дальше нажмите на стрелочку около кнопки Play и выберите Convert (конвертировать) такое решение необходимо для сохранения данных в файл, если сохранять ничего не нужно, можно сразу нажать Play, чтобы проигрывать видео на экране в реальном времени:
Здесь осталось только выбрать файл для сохранения в поле конвертировать в файл:
После того как вы нажмете Старт начнется запись и засветится лампочка на веб-камере:
В набор программ v4l-tools входит утилита streamer, которая позволяет выполнять различные действия веб-камерой в Linux, записывать фото и видео.
Возможно, перед началом работы придется установить сам пакет:
Теперь можно использовать программу. Для записи одного фрейма выполните:
Следующая команда сохранит 10 фреймов:
А такой командой можно записать видео, длительностью 30 секунд и с расширением 352 х 240 пикселей:
Выводы
Вот и все. В этой статье была кратко рассмотрена настройка веб-камеры Linux. Если у вас остались вопросы, пишите комментарии!
Источник
Установка, настройка системы и управления для камер
Итак, приступим, будем использовать:
- Систему: Ubuntu Server 12.04;
- Видеорегистратор: Zoneminder;
- Камеры: аналоговые и айпишные dlink;
- Плата видеозахвата: PCI bridge: Hint Corp HiNT HB4 PCI-PCI Bridge (PCI6150)
- Основное требование: поднять сервер видеонаблюдения для производства
Айпишники, которые будут использоваться в нашем how-to:
192.168.110.151 – адрес нашего самого видеорегистратора;
192.168.107.103 – адрес айпишной камеры.
1) Подробнейшая инструкция по установке Ubuntu 12.04 сервера. Пошаговые скриншоты прилагаются.
Для установки Ubuntu 12.04 Server качаем iso образ на странице, записываем на CD и загружаемся с него. Первое окно, выбираем язык установки, в нашем случае я выбираю Русский:
Запускаем установку Ubuntu 12.04:
Не соглашаемся с автоматическим определением клавиатуры:
Выбираем язык раскладки:
Выбираем способ переключения клавиатуры, я предпочитаю Ctrl + Shift, в Вашем случае может быть иначе:
Будет происходить настройка сети по dhcp:
Нас это не устраивает, поэтому, нажимаем кнопочку «Вернуться»
Выбираем «Настройка сети вручную»
Далее в предложенных, окнах, пишем настройки нашей сети, шлюз и днс. Следующее окно предложит написать имя компьютера в моем случае, это tester. Пишем имя пользователя:
Вводим пароль, предварительно записав его в блокнот:
Далее идет автоматическая настройка часового пояса и спросит, является ли это правильным часовым поясом:
Сегодня я выберу автоматическую разметку диска:
и записываем изменения:
Далее последует сам процесс установки Ubuntu 12.04 Server:
В процессе установки, если вы используете прокси, необходимо указать адрес прокси-сервера:
Отключаем обновления, т.к. они могу вызвать нестабильность системы:
Что же, мы уже почти завершили установку Ubuntu 12.04 Server и дошли до этапа выбора предназначения нашей системы. От выбора пунктов этого шага зависит то, какую роль будет выполнять ваш новый Ubuntu-сервер — это может быть и сервер баз данных и почтовый сервер и т.д. В нашем случае надо обязательно выбрать lamp и openssh server.
Вводим пароля root для mysql:
На последнем этапе установщик предложит установить системный загрузчик в главную загрузочную запись:
Несколько секунд и вы можете изъять диск с Ubuntu 12.04 Server из дисковода и нажать на «Продолжить»:
Когда сервер будет успешно перегружен, вы сможете войти в систему, используя свои логин и пароль.
2) Установка, настройка видеорегистратора Zoneminder
Zoneminder 1.25.0 на Ubuntu 12.04
Для успешной работы нам необходимо установит OpenSSH Server, и LAMP Server, что мы сделали в предыдущем пункте.
1. Логинимся под root:
2. Устанавливаем обновления и перезагружаемся:
3. Нам необходим: Статический айпишник
5. Сохраняем документ.
7. Переходим непосредственно к установке zoneminder:
8. Редактируем сам скрипт Zoneminder, т.к. он не запускается автоматом при загрузке:
Вставляем в документе перед строкой «zmfix -a», вот такую — sleep 15.
9. Сохраняем документ.
10. Делаем символьную ссылочку:
11. Перезагружаем веб-сервер:
12. Добавляем пользователя от которого будут происходить манипуляции с видео:
13. Устанавливаем cambozola для поддержки воспроизведения видеопотока:
14. Добавляем сертификаты для веб-сервера:
15. Активируем их:
16. Активируем дефолтный ssl-виртуальный хост:
17. Перезапускаем веб-сервер:
18. Доя успешного использования https проделываем следующее:
19. Вставляем эти две строчки:
20. Сохраняем документ.
21. Даем на него права:
22. Редактируем файл sysctl.conf для того, что бы дать понять ядру сколько памяти будем использовать под zoneminder (в противном случаем будет черный экран):
23. Вставляем в самый низ документа следующие две строки:
24. Передаем эти значения в ядро:
26. Заходим в Zoneminder:
27. В консоли жмем кнопку “Options”
LANG_DEFAULT Default language used by web interface, выставляем значение “ru_ru”
Возможность видеть русский интерфейс.
28. Жмем добавить монитор.
29. И заполняем две графы опциями.
30. При просмотре монитора мы скорее всего увидим черный экран, поигравшись с опциями, возможно увидеть изображение, но с большими помехами.
31. Как решить данную проблему я расскажу в следующем пункте настройке камер.
32. С айпишними камерами все немного проще, заходим в консоль управления нашей айпи камерой, нам нужно, три параметра: 1) имя пользователя и пароль на доступ к камере через http, 2) путь к камере, 3) ее разрешение.
33. Заходим в консоль управления камерой через браузер:
34. Добавляем нового пользователя (например test с паролем test):
35. Смотрим разрешение:
Ага, у нас оно 320×240.
36. Смотрим теперь путь к камере>
37. Жмём в Zoneminder, “Добавить монитор”. Вписываем следующие опции на вкладках “Общие” и “Источник”:
3) Настройка аналоговых камер на плате видеозахвата PCI bridge: Hint Corp HiNT HB4 PCI-PCI Bridge (PCI6150).
1. Устанавливаем следующие пакеты:
2. Смотрим, определились ли вообще наши видеоустройства:
Должны получить вывод
Значит наши аналоговые устройства вывода видео определены в системе.
3. Смотрим, информацию о нашем устройстве (все аналоговые видеоустройства хранятся в виде /dev/video):
Получаем такой вывод:
Вот, что было причиной того, почему наше устройство не корректно отображалось в Zoneminder. Это не есть хорошо, т.к. ядру не переданы параметры драйвера нашего устройства, смотрим дальше.
4. Нам необходимо выгрузить модуль:
5. На что получаем неутвердительный ответ:
Я просидел над пересборками ядра и прочей ерундной очень много времени, ответ оказался простым. Наше аналоговое устройство использовалось, а использовалось оно видеорегистратором, так, что делаем так.
6. Останавливаем zoneminder:
7. Пробуем выгрузить модуль:
8. Как видим команду он проглотил нормально, поэтому пробуем передать параметры ядру вручную:
9. Смотрим, информацию о нашем устройстве (все аналоговые видеоустройства хранятся в виде /dev/video):
А теперь уже получаем такой вывод:
Что означает, что все вышло отлично и драйвера, применились.
10. Даем на всякий случай права на камеры:
11. Запускаем Zoneminder:
12. Заходим в Zoneminder:
Проверяем нашу аналоговую камеру и можем убедиться, что с изображением все хорошо и мы можем спокойно наблюдать его в нашем видеорегистраторе. Далее нам это все дело необходимо автоматически, что бы подымалось в ядре, без ручного запуска.
13. Создаем файл bttv.conf:
14. Вставляем в него следующее содержимое:
16. Любуемся полученным результатом:
4) Возможные проблемы, с которыми прийдется столкнуться при выполнении моего HOW-TO.
1. Русский шрифт в консоли:
• в любом текстовом редакторе с правами рута нужно в файл /etc/initramfs-tools/initramfs.conf добавить строчку FRAMEBUFFER=Y. Это также можно сделать выполнив следующие команды:
• Обновить образ рамдиска периода инициализации ядра (initrd):
• Поле этих манипуляций настройки сделанные командой:
• наконец начнут работать: Русским фонтами будет показываться все с самого начала — т.е. даже запрос на проверку дисков (возникающий в процессе инициализации ядра) будет выводится кириллицей, а не квадратами.
2. Ubuntu не видит монитор.
Не все виды мониторов видят Ubuntu после установки, чаще всего вы увидите «Неоптимальный режим 1024×768. Оптимальный режим 1240 x 860»:
• Заходим /etc/default/grub
• Снимаем комментарий с строчки
Источник