如何禁用特定设备的USB自动挂起?


18

这与无线鼠标暂时冻结(休眠)电池电源中讨论的问题有关。

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

在PowerTOP中为鼠标的接收器禁用USB自动挂起是一个临时解决方案,但重启后无法生存。

如何仅对一台特定设备永久禁用USB自动挂起?

首选不涉及安装其他软件包的解决方案(毕竟,我要禁用某些功能),但这不是必需的。删除PowerTOP(似乎是某些解决方案)不是我想要的-我喜欢PowerTOP ...

laptop-mode-tools完全禁用USB自动挂起安装也不是我想要的,因此是新问题。

另外:这会影响笔记本电池吗?Logitech鼠标的统一接收器始终保持连接状态,因此,如果这样会阻止可能会损坏的所有设备发生自动挂起的情况。

Answers:


25

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(Trusty Tahr)

hecticgeek.com此处所述,该技巧包括两个部分:

使用lsusb以确定您想为禁用autosuspend USB设备的设备ID。

然后将它们加入到AUTOSUSPEND_USBID_BLACKLIST/etc/laptop-mode/conf.d/runtime-pm.confusb-autosuspend.conf直到Ubuntu的14.04)配置文件(详细情况以及在有记录的为好)。


实际上,我的鼠标不久后就迷路了/被盗了,所以我无法测试。但是从.conf文件中判断,这正是我所希望的:)
black_puppydog13年

看起来像是AUTOSUSPEND_RUNTIME_DEVID_BLACKLIST现在(Ubuntu 17.04)
2015年

2
装有Ubuntu 16.04 LTS的戴尔Ubuntu笔记本电脑tlp不是安装而是安装的laptop-mode-tools,因此,如果您希望将USB设备列入自动挂起模式,而不将其列入黑名单USB_BLACKLIST,请在文件中进行设置/etc/default/tlp-更改将立即进行
Stuart Caie

HID已从tlp列入黑名单:/ etc / default / tlp#注意:输入设备(usbhid)被自动排除(请参见下文)#USB_BLACKLIST =“ 045e:07a5”
Tom

TLP文档提到它是笔记本电脑(更具体地说是ThinkPad)的电源管理。它适用于台式机吗?
康拉德·鲁道夫

7

我在Avocent KVM上的PC上遇到了类似的问题,该计算机上未安装笔记本电脑模式工具(并且无论如何都不想以这种方式解决)。以我为例,自动挂起KVM会使键盘和鼠标的行为异常(空闲几秒钟后,它们将挂起并丢失输入数据一段时间,直到足够的单击和摇动将它们唤醒)。

当我运行PowerTOP并为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

6

在其中/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

5

USB设备的电源选项位于中/sys/bus/usb/devices/n-n/power。不幸的是,给定设备的nn需要花一些时间来找出答案,因此,我认为这对于脚本自动执行将是一个绊脚石。

echo -1 > /sys/bus/usb/devices/3-2/power/autosuspend

关闭该设备上的自动暂停功能。魔法nn实际上确实出现在

udevadm info --export-db

所以我想udev将成为您的朋友;在标识您的鼠标的参数上键入某种udev脚本,然后运行将-1回显到相关文件中的脚本。


4
这样重启后还能生存吗?回显到/ sys似乎是永久的,不是吗?
black_puppydog 2012年

2
将命令放在“ / exit 0”行之前的/etc/rc.local中
Bryce 2014年

4

我创建了自己的udev规则:

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

2

在Ubuntu 16.04 LTS(Xenial Xerus)中,我在/etc/laptop-mode/conf.d/runtime-pm.conf以下位置找到了解决方案:

# Auto-Suspend timeout in seconds
# Number of seconds after which the USB devices should suspend
AUTOSUSPEND_TIMEOUT=1800

它最初是2为我设计的。30分钟更为合理。

更改后,请执行以下操作:

sudo service laptop-mode restart

我仍然不确定如何完全禁用它,但是现在对我来说很好。

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.