我有一台运动相机(iON Air Pro Lite WiFi)。它使用SD卡,可以通过USB电缆连接到PC。它仅支持 Windows 和 Mac。但是,一旦通过 USB 连接并打开,摄像头确实显示为 32 GB 卷(SD 的大小)鹦鹉螺,它让我可以通过一个简单的文件编辑摄像机的配置,最重要的是,查看、复制和删除实际的视频文件。这就是我所需要的。基本上,它在 Windows 上的工作原理是相同的。
连接并打开电源后,lsusb
凸轮显示为:
Bus 003 Device 013: ID 4255:1000 GoPro 9FF2 [Digital Photo Display]
问题是:连接到我的 Linux (Debian 9) 机器,摄像头仅在 1 到 10 秒后再次自行关闭。如果我设法导航到视频文件文件夹并开始复制文件,那么只要复制过程正在进行,摄像头就会保持打开状态。文件复制完成后,摄像机会在几分钟后自行关闭。连接到 Windows 计算机时不会发生这种情况。
我的问题是,我该怎么做才能防止设备自行关闭?
看到在连接到 Windows 时以及在保持设备繁忙时不会发生这种情况,我认为应该有一种方法。然而,我真的不知道从哪里开始。我目前的思路是:
- 可能是驱动问题。由于我对司机一无所知,我不知道如何从这里出发,除非有人握住我的手或者可以向我指出令人惊奇的来源。
- 也许有一种方法可以轮询/ping USB 设备以某种通用的方式,也许这足以让它保持活力。如果是这样,这听起来像是可以用一些代码来解决的问题。我目前的研究引导我
GET_STATUS
标准设备请求但这似乎并不能解决问题(见下文)。 - 最坏的情况下,不断从设备复制虚拟文件和/或向设备复制虚拟文件的脚本(或者甚至只是重命名/移动设备上的文件)应该可以解决问题。我需要找到一种方法让它在连接这个特定设备时自动运行。这个选项似乎可行,但不是很干净(毕竟,不断的读/写确实会缩短 SD 卡的使用寿命,并且考虑到短暂的不活动可能会导致断电,这些操作需要不断运行)。
编辑1: 我发现pyUSBGET_STATUS
并编写了一个简单的脚本,每 2 毫秒向相机发送一次(通过该ctrl_transfer
函数)。这并没有阻止摄像头断电。
编辑2: 我还没找到解决办法。此外,在大约五分之一的情况下,凸轮甚至会关闭复制文件时从中。请分享有任何想法吗关于可能的原因和/或解决方案。
答案1
可能是 USB 自动挂起。
查看/sys/fs:
find /sys/devices/ -name autosuspend
并查看相关sysfs文件是否包含“1”