如何禁用特定设备的 USB 自动暂停?

如何禁用特定设备的 USB 自动暂停?

这与无线鼠标在使用电池供电时暂时冻结(睡眠)

摘要:鼠标使用电池操作时会冻结,因为它会在一定时间后自动暂停,并且需要更多时间才能唤醒。

禁用鼠标接收器的 USB 自动暂停功能电源TOP是一个临时解决方案,但是重启后无法继续使用。

如何永久禁用 USB 自动暂停功能一个特定的设备?

最好采用不涉及安装其他软件包的解决方案(毕竟,我想禁用一些东西),但这不是必需的。删除 PowerTOP(对某些人来说这似乎是一个解决方案)不是我想要的 - 我喜欢 PowerTOP...

而且安装laptop-mode-tools以完全禁用 USB 自动暂停也不是我想要的,因此又出现了新的问题。

另外:这会影响我的笔记本电池吗?罗技鼠标的统一接收器始终保持连接状态,因此如果这阻止了所有设备的自动挂起,那可能就很糟糕了。

答案1

Ubuntu 16.04(Xenial Xerus)

sudo apt install tlp
sudo lsusb

找到 USB 设备的输入 ID - 它应该看起来像1234:5678

编辑文件sudo vi /etc/default/tlp并添加您设备的输入 ID,方法USB_BLACKLIST是添加以下包含您设备输入 ID 的行,如下所示:

USB_BLACKLIST="1234:5678"

Ubuntu 14.04(可信塔尔羊)

如上所述这里是 hecticgeek.com,这个技巧由两部分组成:

用于lsusb确定您想要禁用自动挂起的 USB 设备的设备 ID。

然后将它们添加到(直到 Ubuntu 14.04)配置文件AUTOSUSPEND_USBID_BLACKLIST中(详细信息也有详细记录)。/etc/laptop-mode/conf.d/runtime-pm.confusb-autosuspend.conf

答案2

我在 PC 上也遇到了类似的问题艾沃森特 虚拟机,其中没有安装 laptop-mode-tools(无论如何也不想用这种方式解决)。就我而言,自动暂停 KVM 使键盘和鼠标行为不稳定(闲置几秒钟后,它们会暂停并丢失输入数据一段时间,直到足够的点击和摇晃将它们唤醒)。

当我跑步的时候电源TOP并为 Avocent 关闭 USB 自动挂起,PowerTOP 告诉我从命令行禁用它的命令是:

echo 'on' > '/sys/bus/usb/devices/3-10/power/control'

'3-10' 位在不同的系统上会有所不同。除了运行 PowerTOP 之外,我不知道如何确定这一点,但可能有一些方法。

相反,我用的是udev与我的设备的产品 ID 匹配的规则:

trent+14.04:/etc/udev/rules.d$ cat 10-usb-avocent-kvm-pm.rules

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0624", ATTR{idProduct}=="0013", ATTR{product}=="SC Secure KVM", TEST=="power/control", ATTR{power/control}:="on"

为了获取正确的 udev 信息,我运行了:

udevadm info -a --path /sys/bus/usb/devices/N-N

答案3

/etc/laptop-mode/conf.d/usb-autosuspend.conf会发现:

# Enable USB autosuspend feature?
# Set to 0 to disable
CONTROL_USB_AUTOSUSPEND="auto"

您应该将其改为CONTROL_USB_AUTOSUSPEND="0"

这将自动使任何 USB 设备在 中具有值“on” /sys/bus/usb/devices/"DEVICE ID"/power/control。这将使自动暂停文件的值处于非活动状态:

$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend
2
$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend_delay_ms
2000

答案4

我创建了自己的udev规则:

ACTION=="add", ATTR{idVendor}=="0cf3", ATTR{idProduct}=="3004", RUN="/bin/sh -c 'echo 0 >/sys/\$devpath/authorized'"

相关内容