Библиотека сайта rus-linux.net
Устанавливаем веб-камеру в 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 - результат обратной разработки драйверов разработчиками-энтузиастами, многие из которых никогда не задумывались о стандартизации результатов своей работы.
По этим причинам, я старался избегать конкретики. Проблема не в том, что настройка веб-камера сложна (вовсе нет), проблема в том, что информацию приходится собирать по крупицам. Надеюсь, эта статья поможет вам в этом нелегком деле.