- Вопрос или проблема
- Ответ или решение
- Проблема с встроенной камерой на Ubuntu 20.04.1: Решение
- 1. Проверка загрузки и распознавания камеры
- 2. Проверка модуля uvcvideo
- 3. Тестирование с помощью v4l2-ctl
- 4. Обновление программного обеспечения и драйверов
- 5. Проверка прав доступа
- 6. Отключение ненужных драйверов
- 7. Альтернативные приложения для тестирования
- Заключение
Вопрос или проблема
У меня эта постоянная проблема с тех пор, как я установил Ubuntu 16… Камера на моем ноутбуке просто не работает.
У меня эта проблема уже 4 года, я пробовал каждое решение, которое есть в Google, и регулярно проверяю на наличие новых решений. Ничего не работает!!
В данный момент у меня новая и чистая установка Ubuntu 20.04.1. Мой ноутбук – Lenovo ideapad, камера – Easycamera.
-
Cheese говорит: “Произошла ошибка при воспроизведении видео с веб-камеры” –
"Не удалось выделить необходимую память.: gstv4l2src.c(660): gst_v4l2src_decide_allocation (): /GstCameraBin:camerabin/GstWrapperCameraBinSrc:camera_source/GstBin:bin20/GstV4l2Src:v4l2src3: Ошибка активации пула буферов"
-
VLC говорит
"Ошибка демультиплексора v4l2: не удалось начать поток: ошибка протокола"
-
Zoom просто зависает на черном экране.
Я также вижу некоторые мигания светодиода рядом с камерой, когда я пытаюсь ее использовать, но никогда не появляется изображение. Камера работает и действительна.
Некоторые общие выводы:
- sudo lshw
- lsmod | grep uvcvideo
- v4l2-ctl –list-devices
- ls -ltrh /dev/video*
- dmesg | grep -i camera
- dmesg | grep -i 1-5
- sudo v4l2-ctl -d /dev/video1 –all
- sudo v4l2-compliance -d /dev/video1
$ sudo lshw
*-usb:2
Описание: Видео
Продукт: EasyCamera
Производитель: AzureWave
Физический id: 5
Информация шины: usb@1:5
Версия: 16.04
Серийный номер: 0001
Возможности: usb-2.00
Конфигурация: драйвер=uvcvideo maxpower=500mA speed=480Mbit/s
$ lsmod | grep uvcvideo
uvcvideo 98304 0
videobuf2_vmalloc 20480 1 uvcvideo
videobuf2_v4l2 24576 1 uvcvideo
videobuf2_common 53248 2 videobuf2_v4l2,uvcvideo
videodev 237568 4 videobuf2_v4l2,v4l2loopback_dc,uvcvideo,videobuf2_common
mc 57344 4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
Поскольку моя камера не работает, я использую камеру своего телефона через Droidcam
…
$ v4l2-ctl --list-devices
Droidcam (platform:v4l2loopback_dc-000):
/dev/video0
EasyCamera: EasyCamera (usb-0000:00:14.0-5):
/dev/video1
/dev/video2
ls -ltrh /dev/video*
crw-rw----+ 1 root video 81, 0 9 Янв 21:02 /dev/video0
crw-rw----+ 1 root video 81, 2 9 Янв 21:02 /dev/video2
crw-rw----+ 1 root video 81, 1 9 Янв 21:02 /dev/video1
Когда я запускаю компьютер, это вывод
$ dmesg | grep -i camera
[ 2.029718] usb 1-5: Продукт: EasyCamera
[ 2.729222] uvcvideo: Найдено UVC 1.00 устройство EasyCamera (13d3:5673)
[ 2.734513] input: EasyCamera: EasyCamera как /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/input/input10
и
$ dmesg | grep -i 1-5
[ 1.839392] usb 1-5: новое высокоскоростное USB-устройство номер 4, использующее xhci_hcd
[ 2.029707] usb 1-5: Новое USB-устройство найдено, idVendor=13d3, idProduct=5673, bcdDevice=16.04
[ 2.029717] usb 1-5: Новые строки USB-устройства: Mfr=3, Продукт=1, Серийный номер=2
[ 2.029718] usb 1-5: Продукт: EasyCamera
[ 2.029720] usb 1-5: Производитель: AzureWave
[ 2.029721] usb 1-5: Серийный номер: 0001
[ 2.734513] input: EasyCamera: EasyCamera как /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/input/input10
[ 488.765312] usb 1-5: USB отключен, номер устройства 4
[ 489.148174] usb 1-5: новое высокоскоростное USB-устройство номер 6, использующее xhci_hcd
[ 489.342853] usb 1-5: Новое USB-устройство найдено, idVendor=13d3, idProduct=5673, bcdDevice=16.04
[ 489.342856] usb 1-5: Новые строки USB-устройства: Mfr=3, Продукт=1, Серийный номер=2
[ 489.342859] usb 1-5: Продукт: EasyCamera
[ 489.342861] usb 1-5: Производитель: AzureWave
[ 489.342863] usb 1-5: Серийный номер: 0001
Но после того, как я пытаюсь использовать камеру, я получаю повторяющийся вывод (возможно, это подсказка):
dmesg | grep -i camera
[ 2.029718] usb 1-5: Продукт: EasyCamera
[ 2.729222] uvcvideo: Найдено UVC 1.00 устройство EasyCamera (13d3:5673)
[ 2.734513] input: EasyCamera: EasyCamera как /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/input/input10
[ 489.342859] usb 1-5: Продукт: EasyCamera
[ 489.348052] uvcvideo: Найдено UVC 1.00 устройство EasyCamera (13d3:5673)
[ 489.353594] input: EasyCamera: EasyCamera как /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/input/input20
[ 526.011437] usb 1-5: Продукт: EasyCamera
[ 526.018596] uvcvideo: Найдено UVC 1.00 устройство EasyCamera (13d3:5673)
[ 526.024153] input: EasyCamera: EasyCamera как /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/input/input21
[ 576.650603] usb 1-5: Продукт: EasyCamera
[ 576.654826] uvcvideo: Найдено UVC 1.00 устройство EasyCamera (13d3:5673)
[ 576.662541] input: EasyCamera: EasyCamera как /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/input/input22
[ 582.143837] usb 1-5: Продукт: EasyCamera
[ 582.148263] uvcvideo: Найдено UVC 1.00 устройство EasyCamera (13d3:5673)
[ 582.154765] input: EasyCamera: EasyCamera как /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/input/input23
$ sudo v4l2-ctl -d /dev/video1 --all
Информация о драйвере:
Имя драйвера : uvcvideo
Тип карты : EasyCamera: EasyCamera
Информация шины : usb-0000:00:14.0-5
Версия драйвера : 5.8.18
Возможности : 0x84a00001
Видеозахват
Захват метаданных
Потоковая передача
Расширенный формáт пикселей
Возможности устройства
Возможности устройства: 0x04200001
Видеозахват
Потоковая передача
Расширенный формáт пикселей
Информация о медиадрайвере:
Имя драйвера : uvcvideo
Модель : EasyCamera: EasyCamera
Серийный номер : 0001
Информация шины : usb-0000:00:14.0-5
Версия медиа : 5.8.18
Аппаратная ревизия: 0x00001604 (5636)
Версия драйвера : 5.8.18
Информация об интерфейсе:
ID : 0x03000002
Тип : V4L Video
Информация о сущности:
ID : 0x00000001 (1)
Имя : EasyCamera: EasyCamera
Функция : V4L2 I/O
Флаги : по умолчанию
Pad 0x01000007 : 0: Sink
Приоритет: 2
Вход видео : 0 (Камера 1: ок)
Формат видеозахвата:
Ширина/высота : 1280/720
Формат пикселей : 'MJPG' (Motion-JPEG)
Поле : None
Байты на линию : 0
Размер изображения: 1843200
Цветовое пространство: sRGB
Функция передачи : По умолчанию (отображается на sRGB)
Кодирование YCbCr/HSV: По умолчанию (отображается на ITU-R 601)
Квантование : По умолчанию (отображается на полный диапазон)
Флаги :
Способности обрезки видеозахвата:
Пределы : Слева 0, Сверху 0, Ширина 1280, Высота 720
По умолчанию : Слева 0, Сверху 0, Ширина 1280, Высота 720
Соотношение пикселей: 1/1
Выбор видеозахвата: crop_default, Слева 0, Сверху 0, Ширина 1280, Высота 720, Флаги:
Выбор видеозахвата: crop_bounds, Слева 0, Сверху 0, Ширина 1280, Высота 720, Флаги:
Параметры потоковой передачи видеозахвата:
Возможности : timeperframe
Кадры в секунду : 30.000 (30/1)
Буферы чтения : 0
яркость 0x00980900 (int) : min=0 max=100 step=1 default=50 value=50
контраст 0x00980901 (int) : min=0 max=100 step=1 default=50 value=50
насыщенность 0x00980902 (int) : min=0 max=100 step=1 default=50 value=50
оттенок 0x00980903 (int) : min=0 max=100 step=1 default=50 value=50
автоматическая температура баланса белого 0x0098090c (bool) : default=1 value=1
гамма 0x00980910 (int) : min=0 max=100 step=1 default=50 value=50
частота линии питания 0x00980918 (menu) : min=0 max=2 default=1 value=1
0: Выключено
1: 50 Гц
2: 60 Гц
температура баланса белого 0x0098091a (int) : min=2500 max=6500 step=10 default=4500 value=4500 flags=inactive
резкость 0x0098091b (int) : min=0 max=100 step=1 default=50 value=50
компенсация заднего света 0x0098091c (int) : min=0 max=2 step=1 default=0 value=0
автоэкспозиция приоритет 0x009a0903 (bool) : default=0 value=1
$ sudo v4l2-compliance -d /dev/video1
v4l2-compliance SHA: недоступно, 64 бита
Тест соответствия для устройства uvcvideo /dev/video1:
Информация о драйвере:
Имя драйвера : uvcvideo
Тип карты : EasyCamera: EasyCamera
Информация шины : usb-0000:00:14.0-5
Версия драйвера : 5.8.18
Возможности : 0x84a00001
Видеозахват
Захват метаданных
Потоковая передача
Расширенный формáт пикселей
Возможности устройства
Возможности устройства: 0x04200001
Видеозахват
Потоковая передача
Расширенный формáт пикселей
Информация о медиадрайвере:
Имя драйвера : uvcvideo
Модель : EasyCamera: EasyCamera
Серийный номер : 0001
Информация шины : usb-0000:00:14.0-5
Версия медиа : 5.8.18
Аппаратная ревизия: 0x00001604 (5636)
Версия драйвера : 5.8.18
Информация об интерфейсе:
ID : 0x03000002
Тип : V4L Video
Информация о сущности:
ID : 0x00000001 (1)
Имя : EasyCamera: EasyCamera
Функция : V4L2 I/O
Флаги : по умолчанию
Pad 0x01000007 : 0: Sink
Необходимые ioctls:
тест MC информации (см. 'Информация о медиадрайвере' выше): ОК
тест VIDIOC_QUERYCAP: ОК
Разрешить множественные открытия:
тест второго /dev/video1 открыта: ОК
тест VIDIOC_QUERYCAP: ОК
тест VIDIOC_G/S_PRIORITY: ОК
тест на неограниченные открытия: ОК
Отладочные ioctls:
тест VIDIOC_DBG_G/S_REGISTER: ОК (Не поддерживается)
тест VIDIOC_LOG_STATUS: ОК (Не поддерживается)
Входные ioctls:
тест VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: ОК (Не поддерживается)
тест VIDIOC_G/S_FREQUENCY: ОК (Не поддерживается)
тест VIDIOC_S_HW_FREQ_SEEK: ОК (Не поддерживается)
тест VIDIOC_ENUMAUDIO: ОК (Не поддерживается)
тест VIDIOC_G/S/ENUMINPUT: ОК
тест VIDIOC_G/S_AUDIO: ОК (Не поддерживается)
Входы: 1 Аудиовходы: 0 Тюнеры: 0
Выходные ioctls:
тест VIDIOC_G/S_MODULATOR: ОК (Не поддерживается)
тест VIDIOC_G/S_FREQUENCY: ОК (Не поддерживается)
тест VIDIOC_ENUMAUDOUT: ОК (Не поддерживается)
тест VIDIOC_G/S/ENUMOUTPUT: ОК (Не поддерживается)
тест VIDIOC_G/S_AUDOUT: ОК (Не поддерживается)
Выходы: 0 Аудиовыходы: 0 Модуляторы: 0
Конфигурация ioctls (Вход 0):
тест VIDIOC_ENUM/G/S/QUERY_STD: ОК (Не поддерживается)
тест VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: ОК (Не поддерживается)
тест VIDIOC_DV_TIMINGS_CAP: ОК (Не поддерживается)
тест VIDIOC_G/S_EDID: ОК (Не поддерживается)
Управляющие ioctls (Вход 0):
ошибка: v4l2-test-controls.cpp(216): отсутствует класс контроля для класса 00980000
ошибка: v4l2-test-controls.cpp(253): отсутствует класс контроля для класса 009a0000
тест VIDIOC_QUERY_EXT_CTRL/QUERYMENU: ОШИБКА
тест VIDIOC_QUERYCTRL: ОК
предупреждение: v4l2-test-controls.cpp(442): s_ctrl вернул EILSEQ
тест VIDIOC_G/S_CTRL: ОК
предупреждение: v4l2-test-controls.cpp(691): s_ext_ctrls вернул EILSEQ
предупреждение: v4l2-test-controls.cpp(715): g_ext_ctrls(0) недопустимый error_idx 0
предупреждение: v4l2-test-controls.cpp(766): s_ext_ctrls вернул EILSEQ
предупреждение: v4l2-test-controls.cpp(782): error_idx должен быть равен count
предупреждение: v4l2-test-controls.cpp(803): error_idx должен быть равен count
ошибка: v4l2-test-controls.cpp(808): doioctl(node, VIDIOC_G_EXT_CTRLS, &ctrls)
тест VIDIOC_G/S/TRY_EXT_CTRLS: ОШИБКА
тест VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: ОК
тест VIDIOC_G/S_JPEGCOMP: ОК (Не поддерживается)
Стандартные управления: 11 Приватные управления: 0
Формат ioctls (Вход 0):
тест VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: ОК
предупреждение: v4l2-test-formats.cpp(1327): S_PARM поддерживается, но не сообщает V4L2_CAP_TIMEPERFRAME
ошибка: v4l2-test-formats.cpp(1229): node->has_frmintervals && !cap->capability
тест VIDIOC_G/S_PARM: ОШИБКА
тест VIDIOC_G_FBUF: ОК (Не поддерживается)
тест VIDIOC_G_FMT: ОК
тест VIDIOC_TRY_FMT: ОК
предупреждение: v4l2-test-formats.cpp(976): Не удалось установить fmt2
тест VIDIOC_S_FMT: ОК
тест VIDIOC_G_SLICED_VBI_CAP: ОК (Не поддерживается)
тест Обрезка: ОК (Не поддерживается)
тест Компоновка: ОК (Не поддерживается)
тест Масштабирование: ОК (Не поддерживается)
Кодек ioctls (Вход 0):
тест VIDIOC_(TRY_)ENCODER_CMD: ОК (Не поддерживается)
тест VIDIOC_G_ENC_INDEX: ОК (Не поддерживается)
тест VIDIOC_(TRY_)DECODER_CMD: ОК (Не поддерживается)
Буфер ioctls (Вход 0):
тест VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: ОК
тест VIDIOC_EXPBUF: ОК
ошибка: v4l2-test-buffers.cpp(1833): ret != EINVAL && ret != EBADR && ret != ENOTTY
тест Запросы: ОШИБКА
Итого для устройства uvcvideo /dev/video1: 45, Успешно: 41, Неудачно: 4, Предупреждения: 8
Я могу предоставить дополнительную необходимую информацию…
Спасибо за любые советы или решения.
Ответ или решение
Проблема с встроенной камерой на Ubuntu 20.04.1: Решение
Если у вас возникли проблемы с работой встроенной камеры на вашем ноутбуке Lenovo Ideapad с установленной операционной системой Ubuntu 20.04.1, вы не одиноки. Эта проблема может быть вызвана множеством факторов, включая несовместимость драйверов, ошибки в работе программного обеспечения или конфликты с другими устройствами. Ниже приведены шаги, которые помогут вам диагностировать и потенциально решить данную проблему.
1. Проверка загрузки и распознавания камеры
Сначала убедитесь, что камера правильно распознается операционной системой. Используйте команду dmesg
для отображения сообщений о загрузке и подключении устройства после включения камеры:
dmesg | grep -i camera
Вы должны увидеть строки, подтверждающие, что камера была обнаружена, например:
uvcvideo: Found UVC 1.00 device EasyCamera (13d3:5673)
Если камера распознается, но не работает, переходите к следующему шагу.
2. Проверка модуля uvcvideo
Проверка загруженных модулей может помочь определить, загружен ли драйвер камеры. Используйте следующую команду:
lsmod | grep uvcvideo
Вы должны увидеть строку, подтверждающую, что uvcvideo
загружен.
3. Тестирование с помощью v4l2-ctl
Используйте утилиту v4l2-ctl
для получения информации о устройстве видеозахвата:
v4l2-ctl --list-devices
Это покажет вам, какие видео устройства доступны. Убедитесь, что ваша EasyCamera отображается и что все необходимые устройства статистики созданы.
Чтобы выполнить тестирование устройства:
sudo v4l2-ctl -d /dev/video1 --all
Обратите внимание на вывод о поддерживаемых форматах и параметрах захвата. Если вы видите ошибки или предупреждения, это может указывать на проблему с драйверами или совместимостью.
4. Обновление программного обеспечения и драйверов
Убедитесь, что ваше программное обеспечение обновлено. Запустите следующие команды для обновления системы:
sudo apt update
sudo apt upgrade
Убедитесь, что установлены последние пакеты для вашей версии ядра и драйверов.
5. Проверка прав доступа
Существуют ограничения прав доступа, которые могут помешать программе использовать вашу камеру. Проверьте, есть ли у вашей учетной записи доступ к устройству:
ls -ltrh /dev/video*
Обратите внимание на права доступа. Если ваша учетная запись не является членом группы video
, добавьте её:
sudo usermod -aG video $USER
Выйдите из системы и войдите снова, чтобы изменения вступили в силу.
6. Отключение ненужных драйверов
Некоторые пользователи сообщали, что отключение дополнительных драйверов Lenovo помогло решить проблему. Откройте "Дополнительные драйверы" в панели управления и проверьте, нет ли конфликтующих драйверов, связанных с видео.
7. Альтернативные приложения для тестирования
Попробуйте использовать разные приложения для доступа к камере. Например, вы можете протестировать guvcview
, который часто предоставляет больше информации о проблемах с устройством:
sudo apt install guvcview
guvcview
Если камера работает в guvcview
, но не работает в других приложениях, проблема может быть связана с конкретным программным обеспечением.
Заключение
Если после выполнения всех этих шагов проблема с камерой всё ещё сохраняется, возможно, стоит рассмотреть возможность обращения в службу поддержки Lenovo или сообщество Ubuntu, так как проблема может быть связана с аппаратными неисправностями или специфическими проблемами с драйверами, требующими более глубокого изучения.
Подводя итог, восстановление работы вашей встроенной камеры на Ubuntu 20.04.1 может потребовать несколько подходов, начиная с простых проверок и заканчивая сложными настройками драйверов. Следуя шагам, описанным выше, вы сможете максимально увеличить ваши шансы на успешное решение проблемы.