gphoto2: Не удалось захватить USB-устройство

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

Я пытаюсь использовать мой Canon 100D в качестве веб-камеры на Ubuntu 17.10.

Каждый раз, когда я пытаюсь запустить:

gphoto2 --capture-movie

Я получаю следующую ошибку:

Произошла ошибка в библиотеке ввода-вывода ('**Не удалось захватить USB-устройство**'):
Не удалось захватить интерфейс 0 (Устройство или ресурс заняты). Убедитесь, что никакая другая
программа (gvfs-gphoto2-volume-monitor) или модуль ядра (например, sdc2xx, stv680,
spca50x) не использует устройство, и у вас есть доступ на чтение/запись к устройству.

Камера обнаружена системой, и я могу передавать данные с нее.

Также lsusb показывает это устройство:

Шина 001 Устройство 020: ID 04a9:3270 Canon, Inc.

Довольно подробное описание, но это так.

Как я могу решить эту проблему?

Выяснилось, что на самом деле в фоновом режиме был процесс gvfs-gphoto2-volume-monitor.

Запустите ps aux | grep gphoto, который может выдать что-то вроде:

peter    25802  2.1  0.1 302504  8736 ?        Ssl  13:10   0:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
peter    25814  2.2  0.1 441508 11176 ?        Sl   13:10   0:00 /usr/lib/gvfs/gvfsd-gphoto2 --spawner :1.3 /org/gtk/gvfs/exec_spaw/21
peter    25835  0.0  0.0  22676  1096 pts/0    S+   13:10   0:00 grep --color=auto gphoto

Первая колонка – это PID (идентификатор процесса), убейте их:

kill -9 25802
kill -9 25814

Теперь gphoto2 может подключиться к камере.

Проще и быстрее, чем ответ PeterM:

  1. Сначала найдите все процессы, связанные с gphoto2

    pgrep -fla gphoto2
    1236 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
    1345 /usr/lib/gvfs/gvfsd-gphoto2 --spawner :1.4 /org/gtk/gvfs/exec_spaw/1
    
  2. если они те, что показаны выше, вы можете смело их завершить

    pkill -f gphoto2
    
  3. С радостью, делайте фотографии

    gphoto2 --capture-image-and-download --filename pic0001.jpg
    

Если на вашей SD-карте установлен magic lantern, вам нужно удалить эту SD-карту, чтобы она работала.

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

Ошибки при работе с gphoto2 на Linux, особенно когда вы пытаетесь использовать камеру Canon 100D в качестве веб-камеры на Ubuntu 17.10, могут быть затруднительными. Одной из наиболее распространённых ошибок является сообщение: "Не удалось захватить USB-устройство: Не удалось захватить интерфейс 0 (Устройство или ресурс занят)". Это может быть вызвано тем, что уже существует процесс, использующий ваше устройство, или что доступ к устройству ограничен.

Причины ошибки

  1. Занятость устройства: Причиной ошибки чаще всего является работающий в фоновом режиме процесс, который уже использует камеру, например, gvfs-графические процессы.
  2. Проблемы с правами доступа: Возможно, у вас недостаточно прав для взаимодействия с устройством.
  3. Конфликт с модулями ядра: Определённые модули ядра могут блокировать доступ к устройству.

Способы решения проблемы

Шаг 1: Проверка запущенных процессов

Для начала проверьте все процессы, которые могут использовать gphoto2. Выполните следующую команду в терминале:

ps aux | grep gphoto

Или для более лёгкого поиска:

pgrep -fla gphoto2

Если вы увидите процессы, такие как:

/usr/lib/gvfs/gvfs-gphoto2-volume-monitor
/usr/lib/gvfs/gvfsd-gphoto2

Это значит, что эти процессы удерживают устройство и вызывают ошибку.

Шаг 2: Завершение работы процессов

Если вы обнаружили процессы, которые использует gphoto2, их можно безопасно завершить. Для этого:

  • Используйте команду kill, указав PID (идентификатор процесса):
kill -9 <PID>
  • Либо воспользуйтесь более простой командой pkill, чтобы завершить все связанные процессы сразу:
pkill -f gphoto2

Шаг 3: Проверка и запуск gphoto2

После завершения данных процессов попробуйте снова запустить вашу команду:

gphoto2 --capture-movie

Если вам нужно сделать фото и скачать его, выполните:

gphoto2 --capture-image-and-download --filename pic0001.jpg

Дополнительные рекомендации

  • Если в вашей SD-карте установлена программа Magic Lantern, её нужно удалить, чтобы избежать конфликтов с gphoto2.
  • Убедитесь, что у вас есть все необходимые разрешения на доступ к устройству. Если необходимо, добавьте вашу учетную запись в группы, обладающие соответствующими правами (например, plugdev).

Заключение

Следуя приведённым выше шагам, вы сможете устранить ошибку "Не удалось захватить USB-устройство" и обеспечить корректную работу вашего оборудования на Ubuntu 17.10. Убедитесь, что вы регулярно обновляете системные пакеты, чтобы избежать подобных проблем в будущем.

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

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