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.

很冗长的描述,但就是这样。

也许我应该...是的,从哪里开始?


您的相机有网络摄像头模式或类似模式吗?如果不是这样,则期望它不会像您期望的那样正常工作,就像操作系统将“看到”它的典型大容量存储设备一样,仅此而已。

通过gphoto2支持多台摄像机。这真的很棒,因为其质量优于典型的网络摄像头。
PeterM

Answers:


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(进程ID),将其杀死:

kill -9 25802
kill -9 25814

现在,gphoto2现在可以连接到相机了。


如果“ 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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.