gphoto2: не удалось получить доступ к USB-устройству

11

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

Пытаюсь ли я запустить:

gphoto2 --capture-movie

Я возвращаю ошибку:

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

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

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

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

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

Возможно, я должен ... Да, с чего начать?

PeterM
источник
Ваша камера имеет какой-либо режим веб-камеры или аналогичный? Если нет, то ожидайте, что он будет работать не так, как вы хотите, а просто как типичное запоминающее устройство, которое ОС будет «видеть» и больше ничего.
Есть много камер, поддерживаемых gphoto2 . Это действительно круто, так как по качеству превосходит обычную веб-камеру.
PeterM

Ответы:

13

Оказалось, что это действительно был 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
источник
Что делать, если процесс "gvfs-gphoto2-volume-monitor" возобновляется? Должны ли мы вручную всегда убивать процесс?
Zythyr
Это хороший вопрос. Я не знаю, как удалить его из автозагрузки. Не стесняйтесь задавать еще один вопрос или улучшите этот ответ, если выясните это.
PeterM
0

Ответ PeterM работает в принципе. Чтобы сделать его проще и быстрее, я предлагаю следующую процедуру:

Сначала найдите все процессы, которые связаны с 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

если это те, которые показаны выше, вы можете безопасно убить их

pkill -f gphoto2

и с удовольствием снимаю

gphoto2 --capture-image-and-download --filename pic0001.jpg
Вольфганг Фаль
источник