【问题标题】:What sets the /sys/bus/usb/devices/xyz/power/control file?什么设置 /sys/bus/usb/devices/xyz/power/control 文件?
【发布时间】:2022-11-16 09:07:27
【问题描述】:

长话短说

我想知道是否有办法从 USB 设备描述符控制 /sys/bus/usb/devices/5-1.1/power/control 文件中的值。主机总是将它设置为auto,我希望它隐式设置为on

全文

我在笔记本电脑 USB 冷却器上添加了一个微控制器,因为我希望设备在主机挂起时进入休眠状态。微控制器是 DigiSpark ATTiny85,我正在使用 V-USB 库来模拟 USB 设备。

为了检测主机是否挂起,我不断检查主机是否发送了帧起始数据包(它每 3 毫秒左右发送一次,除非挂起),如果没有收到新数据包,设备就会进入休眠状态。接收 SoF 数据包会导致中断,从而唤醒微控制器,从而唤醒冷却器。

到目前为止,一切正常。

但是,我对这个文件有一个小问题: /sys/bus/usb/devices/5-1.1/power/control 被设置为“自动”,并且由于冷却器和主机之间确实没有通信(除了主机发送到设备的 SoF 数据包),主机在连接后很快自动挂起设备。 :/

一旦我将文件值设置为on,主机就不会再根据是否存在通信来尝试自动挂起设备(所需的挂起睡眠行为仍然可以正常工作)。但是,当然,每次拔下并重新插入设备时都需要这样做。

现在......也许我也可以从冷却器向主机发送一些虚拟数据,以模拟通信,但是,除非主机读取它,否则一些缓冲区肯定会填满,这就是为什么这看起来不像一个解决方案。

我想知道是否有某种方法可以调整 USB 设备描述符以告诉主机虽然这是一个总线供电设备,但它不应该尝试自动挂起它。

任何想法都受到高度赞赏。

【问题讨论】:

    标签: linux embedded usb attiny


    【解决方案1】:

    就此而言,您甚至不必断开/重新连接设备即可重新设置值。在我的 Fedora 36 系统上,它会在每个工作日关闭几次键盘和鼠标。而且我也不是没有使用过它们,有时它会在打字的过程中关闭它们。

    肯定有什么东西正在主动更改设置,因为每当连接中断时我都会看到键盘灯闪烁。我必须等一分钟,直到它决定重新开始工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      • 1970-01-01
      相关资源
      最近更新 更多