Встроенная камера не работает на Ubuntu 20.04.1

Вопрос или проблема

У меня эта постоянная проблема с тех пор, как я установил 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

Я могу предоставить дополнительную необходимую информацию…

Спасибо за любые советы или решения.

У меня была такая же проблема. Я отключил дополнительные драйверы Lenovo
введите описание изображения здесь

введите описание изображения здесь

Ответ или решение

Проблема с встроенной камерой на 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 может потребовать несколько подходов, начиная с простых проверок и заканчивая сложными настройками драйверов. Следуя шагам, описанным выше, вы сможете максимально увеличить ваши шансы на успешное решение проблемы.

Оцените материал
Добавить комментарий

Капча загружается...