gphoto2: Não foi possível reivindicar o dispositivo USB

11

Estou tentando usar o My Canon 100D como uma webcam no Ubuntu 17.10.

Se eu tentarei iniciar:

gphoto2 --capture-movie

Retorno erro:

Ocorreu um erro na biblioteca io (' Não foi possível reivindicar o dispositivo USB '): Não foi possível reivindicar a interface 0 (Dispositivo ou recurso ocupado). Verifique se nenhum outro programa (gvfs-gphoto2-volume-monitor) ou módulo do kernel (como sdc2xx, stv680, spca50x) está usando o dispositivo e você tem acesso de leitura / gravação ao dispositivo.

A câmera é detectada pelo sistema - posso transferir dados dela.

Também lsusbmostra este dispositivo:

Barramento 001 Dispositivo 020: ID 04a9: 3270 Canon, Inc.

Descrição bastante detalhada , mas é isso.

Talvez eu deva ... Sim, por onde começar?

PeterM
fonte
Sua câmera possui algum modo de webcam ou similar? Caso contrário, espere que ele não funcione como você deseja e como o típico dispositivo de armazenamento em massa, que é como o sistema operacional o "verá" e nada mais.
Existem muitas câmeras suportadas pelo gphoto2 . Isso é muito legal, pois a qualidade é superior à webcam comum.
peterm

Respostas:

13

Aconteceu que, de fato, havia um gvfs-gphoto2-volume-monitorprocesso em segundo plano.

Execute ps aux | grep gphoto, que pode ter uma saída como:

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

As primeiras colunas são PID (identificação do processo), mate-as:

kill -9 25802
kill -9 25814

Agora o gphoto2 agora pode se conectar à câmera.

PeterM
fonte
O que fazer se o processo "gvfs-gphoto2-volume-monitor" continuar reiniciando? Temos que matar manualmente sempre o processo?
Zythyr
Esta é uma boa pergunta. Não sei como removê-lo da inicialização. Sinta-se livre para fazer outra pergunta ou melhorar esta resposta se você descobrir isso.
peterm
0

A resposta de PeterM funciona em princípio. Para simplificar e acelerar, proponho o seguinte procedimento:

Primeiro encontre todos os processos relacionados ao 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

se eles são os mostrados acima, você pode matar com segurança esses

pkill -f gphoto2

e felizmente tirar fotos

gphoto2 --capture-image-and-download --filename pic0001.jpg
Wolfgang Fahl
fonte