笔记本电脑使用电池时丢失无线鼠标连接
我刚买了一台惠普无线鼠标 ,但我遇到了一些问题。
光标经常变得对鼠标移动无响应。 我注意到它只发生在我的笔记本电脑上电池耗尽时,每当鼠标移动20-30秒时,我就不得不触摸笔记本电脑的触摸板让鼠标重新连接。
所以看起来它可能是电源管理干扰但我不确定如何解决这个问题。
编辑:我完全忘记提到的一个重要信息是我以前的Sweex MI420无线鼠标没有这个问题。
$ dmesg |grep -i mouse
:
[ 1.279240] mousedev: PS/2 mouse device common for all mice [ 2.205885] input: HP HP Wireless Laser Comfort Mouse as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input5 [ 2.206071] generic-usb 0003:03F0:8501.0001: input,hiddev0,hidraw0: USB HID v1.11 Mouse [HP HP Wireless Laser Comfort Mouse] on usb-0000:00:1a.0-1.2/input0
$ ls /sys/bus/usb/devices
:
1-0:1.0 1-1 1-1.1 1-1:1.0 1-1.1:1.0 1-1.1:1.1 1-1.2 1-1.2:1.0 2-0:1.0 2-1 2-1:1.0 usb1 usb2
我通过更改/etc/laptop-mode/conf.d/usb-autosuspend.conf
的设置来/etc/laptop-mode/conf.d/usb-autosuspend.conf
根据配置文件中的注释,某些USB设备无法正确支持自动挂起。
配置AUTOSUSPEND_USBID_BLACKLIST
中的一个选项是为违规设备添加USB设备ID列表,我添加了鼠标ID,现在它可以正常工作。
# # Configuration file for Laptop Mode Tools module usb-autosuspend. # # For more information, consult the laptop-mode.conf(8) manual page. # ############################################################################### # USB autosuspend settings # ------------------------ # # If you enable this setting, laptop mode tools will automatically enable the # USB autosuspend feature for all devices. # # NOTE: Some USB devices claim they support autosuspend, but implement it in a # broken way. This can mean keyboards losing keypresses, or optical mice turning # their LED completely off. If you have a device that misbehaves, add its USB ID # to the blacklist below and complain to your hardware vendor. ################################################################################ # Enable debug mode for this module # Set to 1 if you want to debug this module DEBUG=0 # Enable USB autosuspend feature? # Set to 0 to disable CONTROL_USB_AUTOSUSPEND="auto" # The list of USB IDs that should not use autosuspend. Use lsusb to find out the # IDs of your USB devices. # Example: AUTOSUSPEND_USBID_BLACKLIST="046d:c025 0123:abcd" AUTOSUSPEND_USBID_BLACKLIST="03f0:8501" # The list of USB driver types that should not use autosuspend. The driver # type is given by "DRIVER=..." in a USB device's uevent file. # Example: AUTOSUSPEND_USBID_BLACKLIST="usbhid usb-storage" AUTOSUSPEND_USBTYPE_BLACKLIST="" # Trigger auto-suspension of the USB deivce under conditional circumstances BATT_SUSPEND_USB=1 LM_AC_SUSPEND_USB=0 NOLM_AC_SUSPEND_USB=0 # USB Auto-Suspend timeout in seconds # Number of seconds after which the USB devices should suspend AUTOSUSPEND_TIMEOUT=2
您可能需要更改USB设备的功率值
需要考虑的三个方面:
- 完全关闭USB电源管理
- 在单个设备的基础上关闭USB挂起控制
- 关闭USB悬架(Natty)
完全关闭USB电源管理
首先,我们应该确认这确实是一个电源管理问题。
仔细检查BIOS中没有USB电源管理选项。
使用acpi=off
作为grub-boot选项启动计算机。 如果鼠标行为正确,则最有可能是电源管理问题。 如果它仍然表现不正常,则提交一个启动板错误报告。
两种可能的方法来禁用所有USB电源管理。
- Grub引导选项
usbcore.autosuspend=-1
- 从软件中心安装
laptop-mode-tools
并更改/etc/laptop-mode/conf.d/usb-autosuspend.conf
:
有各种值可以改变:
CONTROL_USB_AUTOSUSPEND="auto" --> CONTROL_USB_AUTOSUSPEND="0" AUTOSUSPEND_USBID_BLACKLIST="" AUTOSUSPEND_USBTYPE_BLACKLIST=""
基于每个设备关闭USB电源管理
看看/sys/bus/usb/devices
您应该以“xx”格式看到您的USB集线器,即对于我的笔记本电脑,我有两个“1-1”和“2-1”
通过将功率控制从“自动”更改为“开启”进行实验
即来源
功率控制
此文件包含两个单词之一:“on”或“auto”。 您可以将这些单词写入文件以更改设备的设置。
“on”表示应恢复设备并且不允许自动挂起。 (当然,系统暂停仍然是允许的。)
“auto”是允许内核自动挂起并自动恢复设备的正常状态。
NB直到内核2.6.38有一个类似的值称为“功率/电平” – 这已被弃用/删除,有利于电源/控制
所以要将电源控制改为开启
sudo su echo on > /sys/bus/usb/devices/1-1/power/control echo on > /sys/bus/usb/devices/2-1/power/control
然后断开电池连接。
我也读过你可能需要直接在usb设备上使用这种技术 – 在我的情况下“usb1”和“usb2”
sudo su echo on > /sys/bus/usb/devices/usb1/power/control echo on > /sys/bus/usb/devices/usb2/power/control
如果这样做,请尝试通过编辑rc.local文件强制从启动“打开”电源级别,即在文件中的“exit 0” 之前添加以下行
[ -w /sys/bus/usb/devices/1-1/power/control ] && echo on > /sys/bus/usb/devices/1-1/power/control [ -w /sys/bus/usb/devices/2-1/power/control ] && echo on > /sys/bus/usb/devices/2-1/power/control
或者可能:
[ -w /sys/bus/usb/devices/usb1/power/control ] && echo on > /sys/bus/usb/devices/usb1/power/control [ -w /sys/bus/usb/devices/usb2/power/control ] && echo on > /sys/bus/usb/devices/usb2/power/control
关闭USB悬架(Natty)
它也值得尝试“power / autosuspend_delay_ms”
设置值“-1”意味着usb设备永远不应该挂起ie
sudo su echo -1 > /sys/bus/usb/devices/usb1/power/autosuspend_delay_ms echo -1 > /sys/bus/usb/devices/usb2/power/autosuspend_delay_ms
要么
sudo su echo -1 > /sys/bus/1-1/devices/usb1/power/autosuspend_delay_ms echo -1 > /sys/bus/2-1/devices/usb2/power/autosuspend_delay_ms