Недавно я столкнулся с любопытной ситуацией: встроенная камера на ноутбуке перестала определяться приложениями. Сначала я грешил на firmware, потом на баги в программах, но в итоге всё оказалось куда прозаичнее. Эта история подтолкнула меня к тому, чтобы разобраться, как на самом деле проверить, видит ли система камеру, работает ли она аппаратно и выдаёт ли видеопоток. Ведь часто проблема кроется не в софте, а в «железе» или случайно нажатой кнопке.
Сразу отмечу: главной загадкой для меня стала волшебная клавиша на ноутбуке (обычно Fn+F6 или с иконкой камеры), которая аппаратно блокирует питание встроенной веб-камеры. Пока я не догадался её проверить, пришлось изрядно поломать голову. Поэтому в статье я покажу не только программные методы диагностики, но и напомню о таких «механических» ловушках.
Поиск устройства камеры в системе
1. Список USB-устройств (команда lsusb)
Первым делом стоит убедиться, что камера вообще присутствует в системе на уровне USB. Даже если камера встроенная, она часто подключается через внутренний USB-контроллер. Команда lsusb выводит все USB-устройства, подключённые к компьютеру. В выводе нужно найти строку, содержащую слова «Camera», «Webcam» или название производителя (например, Bison, Chicony, Sunplus).
Пример вывода:
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 2ea8:2203 Wings Tech Gaming Mouse
Bus 001 Device 003: ID 3142:0031 FIFINE 683 Microphone FIFINE 683 Microphone
Bus 001 Device 004: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 001 Device 005: ID 5986:211c Bison Electronics Inc. HD Webcam
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Здесь видно устройство Bison Electronics Inc. HD Webcam на шине 1. Если камера не отображается, возможно, она отключена аппаратно (та самая клавиша) или неисправна.
2. Проверка устройств, доступных через V4L2
V4L2 (Video for Linux 2) — это стандартный интерфейс ядра Linux для работы с видеоустройствами. Чтобы с ним работать, нужно установить пакет утилит:
# apt-get install v4l-utils
После установки можно запросить список всех видеоустройств, зарегистрированных в системе:
v4l2-ctl --list-devices
HD Webcam: HD Webcam (usb-0000:00:14.0-11):
/dev/video0
/dev/video1
/dev/media0
В выводе мы видим имя камеры и связанные с ней файлы устройств (/dev/video0, /dev/video1). Если ничего не отображается, значит, камера не распознана ядром — это может быть проблемой драйвера или аппаратной неисправностью.
3. Захват видеопотока с помощью ffplay
Самый наглядный способ проверить, что камера не только определена, но и выдаёт картинку — открыть видеопоток с помощью ffplay (из пакета ffmpeg). Установите ffmpeg, если его нет:
# apt-get install ffmpeg
Затем выполните:
$ ffplay /dev/video0
Если камера работает, откроется окно с изображением. Если нет — появится сообщение об ошибке (например, «No such device» или «Cannot open video device»). В моём случае после нажатия волшебной клавиши ffplay показывал чёрный экран, что и натолкнуло на мысль об аппаратном отключении.
4. Использование guvcview (графическая утилита)
Для тех, кто предпочитает графический интерфейс, отлично подходит guvcview. Установите его:
# apt-get install guvcview
Затем запустите:
$ guvcview
Программа покажет окно предпросмотра и позволит менять настройки камеры (яркость, контраст, разрешение). Если камера не определяется, guvcview выдаст предупреждение. На скриншоте ниже — пример успешного захвата.

Дополнительные советы и альтернативы
- Cheese — ещё одна простая графическая программа для работы с веб-камерой. Установка:
apt-get install cheese. - fswebcam — консольная утилита для захвата одного кадра. Полезна для быстрой проверки:
fswebcam -r 640x480 test.jpg. Если кадр сохранился — камера работает. - Проверка прав доступа: убедитесь, что ваш пользователь состоит в группе
video. Если нет, добавьте:sudo usermod -aG video $USERи перелогиньтесь. - Аппаратные переключатели: на многих ноутбуках есть физическая кнопка или слайдер отключения камеры. Также в BIOS/UEFI может быть опция «Camera» — проверьте, включена ли она.
Заключение
Диагностика камеры в Ubuntu сводится к трём шагам: проверка видимости устройства через lsusb, проверка регистрации в V4L2 через v4l2-ctl, и тест видеопотока через ffplay или guvcview. Если на каком-то этапе устройство не обнаруживается, стоит проверить аппаратные переключатели и права доступа. Надеюсь, мой опыт поможет вам сэкономить время и нервы.




