Вебкамера в Skype
Самое главное
Проверьте права на /dev/video* и убедитесь, что у нужных пользователей они есть (например, посредством группы video):
ls -l /dev/video* id | grep --color video
Пример строчки /etc/group для двух пользователей (действует после повторного входа в систему):
video:x:118:vanya,masha
Введение
Обладатели веб-камер с некоторых пор могли заметить, что их устройства перестали работать в некоторых программах, таких как Skype. В категорию неработающих попали те приложения, которые используют интерфейс v4l1, а не v4l2. Эта "поломка" выражается в отображении шума вместо картинки с веб-камеры. Пример такого шума приведен на рисунке:
Описание проблемы
Являясь обладателем веб-камеры (ID 046d:092f Logitech, Inc. QuickCam Express Plus), автор тоже столкнулся с описываемой проблемой. В результате поиска решения выяснилось, что начиная с ядра версии 2.6.27 драйверы веб-камер стали включать в ядро. Включить включили, но не полностью. Та часть драйверов, которая отвечает за преобразование форматов представления изображений с каждой камеры к одному общему формату, была вынесена в отдельную библиотеку libv4l. Таким образом, программы, использующие интерфейс v4l1, перестали работать должным образом.
Решение проблемы
Для решения нашей проблемы нужно выполнить несложные действия. Прежде всего убеждаемся, установлена ли необходимая библиотека. Открываем терминал и вводим команду
$ rpm -qa libv4l
Если библиотека установлена, то получим название установленного пакета (на момент написания данной заметки это libv4l-0.5.6-alt1). Отсутствие какого-либо вывода свидетельствует о необходимости инсталляции библиотеки. Тут же в терминале получаем права суперпользователя (root) набрав команду "su -" (без кавычек) и введя соответствующий пароль. Далее производится установка библиотеки:
$ su -
Password:
# apt-get install libv4l
Далее выполняем команду:
# echo "export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so">>/etc/bashrc
результатом которой будет добавление в конец файла /etc/bashrc строки export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so, и это будет действовать для всех запускаемых из пользовательской командной оболочки программ. В такой глобальной настройке может не быть смысла; вместо этого можно просто именно таким образом запускать каждую конкретную программу, например (в пользовательской командной оболочке):
$ LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype
Заключение
Выполнив эти несложные действия и перезагрузив компьютер, мы получаем нормально работающие с веб-камерой Skype и другие приложения, использующие v4l1. Так же хотелось бы упомянуть программу для изменения качества изображения (цветовой баланс, экспозицию (светлее/темнее), усиление сигнала и др.) "на лету": v4l2ucp. Установить ее можно описанным выше способом (в терминале, получив права суперпользователя):
# apt-get install v4l2ucp
Запускается программа командой
$ v4l2ucp /dev/videoX
, где Х - номер устройства, обычно - 0. Если Вы не планируете использовать более одной веб-камеры, то можно создать символическую ссылку командой (опять же в терминале, получив права суперпользователя)
# ln -s /dev/video0 /dev/video
Теперь программа запускается без параметров:
$ v4l2ucp