Линукс включить веб камеру

Web-камеры в Linux

Оригинал: Webcams in Linux
Автор: Carla Schroder
Дата: 21 февраля 2008
Перевод: Андрей Синицын aka boombick
Дата перевода: 25 февраля 2009

При копировании материала обязательны указание автора, переводчика и ссылки на оригинал статьи и настоящую страницу как первоисточник перевода!

Linux и web-камеры

Сегодня web-камеры используются очень широко: большинство ноутбуков уже имеет встроенную web-камеру, многие LCD-мониторы оснащаются ими. Да и приобрести web-камеры, работающую через USB-интерфейс сегодня можно менее, чем 40$. В этой статье я расскажу вам, как настроить web-камеру для работы в linux и полноценно использовать все ее возможности

Вы не добьетесь высокого качества изображения от недорогих web-камер, в любом случае картинка будет не очень четкой и «прерывистой». Но это вполне приемлемая «прерывистость». Камеры low-end класса обычно поддерживают режим 15 кадров в секунду при разрешении 320×240 пикселей. Для сравнения, в фильмах обычно используются 24 кадра в секунду. В более дорогих моделях качество изображения лучше и битрейт повыше. Например, Logitech QuickCam Pro 9000. За цену около 100$ вы получаете встроенный микрофон, автофокус, довольно неплохую оптику и видео с разрещением до 960×720 пикселей

Так что для хорошего изображения на камере лучше не экономить. Также у вас должен быть относительно современный PC, оптимально двухядерный. Обработка видео — ресурсоемкая операция и требует «лошадиных сил». Стандартная минимальная ширина канала для передачи видео — 256 кбит/с в обе стороны

Поддержка web-камер в Linux довольно неплоха, за что стоит сказать спасибо разработчикам Linux. Обычно, производителей камер не очень заботят пользователи операционных систем, отличных от MS Windows. Michel Xhaard (Мишель Ксард) , например, с незначительной сторонней помощью разработал драйвер, который подходит более чем к 250 моделям web-камер. Этот базовый драйвер, GSPCA/SPCA5xx, входит в Debian и производные от него дистрибутивы. Также хорошие люди поддерживают проект драйвера и ПО Linux UVC , с помощью которого можно заставить заработать еще некоторые модели камер. Еще можно поблагодарить разработчиков проекта Драйвера для USB-камер Philips , хотя они по большей части поддерживают более старые модели

Плохой момент в словосочетании «неплохая поддержка» заключается в том, что в большинстве случаев драйвера придется компилировать и устанавливать руками. Добро пожаловать в старые добрые времена!

Заставляем камеру работать

Если вы еще не приобрели камеру, то сперва имеет смысл выяснить, какие модели наиболее хорошо поддерживаются в вашем дистрибутиве. Mandriva Linux наиболее «дружественна» к web-камерам. Камеры от Logitech — самые популярные, но не все модели имеют «нативные» драйвера для Linux

Если у вас уже есть web-камера, то можете уповать на везение — возможно камера заработает, как только вы подключите ее. Вот самый короткий и простой путь:

Если Camorama не работает, то можно попробовать использовать аккаунт Testbed в kopete. На рисунке изображен мой разговор с лучшим другом через kopete.

Также на скриншоте видна проблема с настройкой интегрированной камеры — вы должны поворачивать весь монитор для получения корректного изображения. К слову, я сидела довольно высоко 🙂

Camorama не поддерживает v4l2, а жаль — во второй версии сделано довольно много улучшений и исправлено много ошибок по сравнению с первой версией. На Ubuntuforums пользователи часто спрашивают, почему у них появляется ошибка «could not connect to video device (dev/video0)» при использовании Camorama. Это означает, что используется драйвер, которому нужен v4l2, или v4l вообще не установлен.

Читайте также:  Play windows apps on linux

В современных Linux-дистрибутивах udev и HAL должны самостоятельно определить камеру, создать устройство /dev/video0, владельцем которого является root и принадлежащее группе video, и загрузить нужный модуль ядра. Если вы не входите в группу video, то добавьте себя туда и перелогиньтесь. Для проверки членства в группе запустите команду id без параметров. Чтобы проверить, загрузился ли нужный модуль, запустите lsmod

Узнаем «секретное имя» web-камеры

Моя камера встроена в LCD-монитор Viewsonic VX2255. Также у этого монитора есть встроенный микрофон. Камера подключается при помощи отдельного USB-кабеля. Я подключила ее и запустила следующие команды, чтобы проверить, «схватила» ли ее моя Ubuntu Gutsy

Это говорит о том, что камера поддерживается модулем ucvvideo и я могу воспользовать web-поиском для получения более подробной информации, потому что я знаю Супер Секретное Имя Web-Камеры. Помните, что вывод dmesg обновляется при подключении и отключении устройств, так что не лишним будет запомнить последние строки. Если же в выводе dmesg нет камеры, значит ядро не видит устройство и вам не повезло

Полезные ресурсы

  • Один человек написал драйвера для 235 USB Web-камер
  • Linux UVS драйвера и ПО
  • Установка web-камеры. HOWTO. Это руководство написано для Gentoo, но подойдет для всех дистрибутивов
  • Web-камеры в Ubuntu
  • Настройка камеры в Debian Etch
  • Linux и Logitech QuickCam Pro 9000

Другие статьи на тему вебкамер на нашем сайте:

  • Jun Auza, перевод: Н.Ромоданов, «Превращаем обычную веб-камеру в камеру слежения, работающую в Ubuntu Linux» Если вы хотите превратить обычную веб-камеру в камеру слежения, чтобы знать, кто крадет ваших кур, то вам следует прочитать данную статью.

Источник

Устанавливаем веб-камеру в 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).

Читайте также:  Microsoft windows server history

Особенно полезен сайт 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 ). Эта проблема может остаться «висеть» даже при перезагрузке, однако при выключении компьютера и повторном включении проблема исчезает. Если же и это не помогло, попробуйте удалить остановившееся устройство и установить его заново.

Читайте также:  Config file lib linux

Заключение

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

Производители веб-камер, как и производители других устройств, совершенно не заинтересованы в выпуске драйверов для GNU/Linux. Таким образом, подавляющее большинство драйверов веб-камер для GNU/Linux — результат обратной разработки драйверов разработчиками-энтузиастами, многие из которых никогда не задумывались о стандартизации результатов своей работы.

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

Источник

Работа с usb видеокамерой в Linux. Часть 1

По популярности видеокамера, сегодня, стоит в одном ряду с микрофоном и наушниками. Она используется в различных направлениях, таких как распознавание объектов, дополненная реальность, видеоконференции и множество других. Но что же скрыто под капотом этих сложнейших программ? Как мы получаем картинку с видеокамеры? Этот цикл статей позволит взглянуть на простоту работы с видеокамерой на низком уровне, обработку полученного изображения.

Для начала, немного информации о работе с устройствами в системе Linux. Устройства в nix системах представляют собой файл. С некоторыми файлами-устройств мы можем работать как с обычными файлами. Например:

эта команда выведет на экран весь диск sda.

Есть устройства с которыми нельзя работать напрямую, к ним относится видеокамера.При попытке это сделать мы получим такую реакцию системы:

*Где /dev/video0 это файл-устройство найшей видеокамеры.

Для работы с ней нам понадобится системная функция ioctl детальнее о ней можно ознакомится [1]. Попробуем это применить. Вот код позволяющий считать информации с устройства (альтернатива команде cat для видеоустройств):

В первых строках кода считываются параметры с которой запущено приложение. Если параметров нету то device_name принимает стандартоне значение «/dev/video0».

В блоке «Open Device» происходит открытие устройства системной функцией open (нужно подключить header fcntl.h). Обязательный параметр O_RDWR отвечает за открытие устройства считывания/записи. Если при подключении возникла ошибка, то функция open вернет -1.

Блок «Read Params From Device» — это сердце нашей маленькой программы. Для его использования надо подключить билиотеку возможно прийдется её установить, у каждого дистрибутива свой пакет под эту библиотеку
Системная функция ioctl имеет три параметра:
file_device — дескриптор нашего устройства
VIDIOC_QUERYCAP — функция ядра, которую применяем для нашего устройства.
device_params — область памяти куда будет сброшен результат функции «VIDIOC_QUERYCAP».

device_params это структура состоящая из таких полей:

если возникла ошибка ioctl вернет -1

Блок «Close Device» закрывает дескриптор устройства.

Посмотрим программу в действии.

устройство не определилось ядром либо не подключено уборщица опять ненужные провода дергала.
Подключаем и заново запуск. Получаем такую информацию:

поле capabilities и device capabilities можно расшифровать благодаря константам из файла videodev2.h:

На этом вводная статья заканчивается. В следующих обзорах будут затронуты, такие темы как memory-mapping, виодеформаты изображения, настройка камеры, вывод изображения в текстуру, работа с несколькими камерами.

Источник

Оцените статью