如何防止 USB 设备(运动相机)进入睡眠状态?

如何防止 USB 设备(运动相机)进入睡眠状态?

我有一台运动相机(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”

答案2

你可以检查一下可调参数标签进入动力顶。它方便地显示设备及其省电状态。在列表中找到您的设备并检查状态。大概是好的,这意味着设备已设置为节能。按进入将设备设置为坏的状态并关闭省电功能。

在此输入图像描述

相关内容