解决ubuntu鼠标自动休眠引起鼠标失灵的问题

来源:互联网 发布:金融行业的大数据 编辑:程序博客网 时间:2024/04/30 05:58

查看鼠标的usb设备

$ lsusbBus 003 Device 002: ID 8087:8000 Intel Corp. Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hubBus 001 Device 003: ID 17ef:6050 Lenovo Bus 001 Device 002: ID 09da:054f A4Tech Co., Ltd. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
在/sys/bus/usb/devices/中找到对应的设备,如上面的

Bus 001 Device 003: ID 17ef:6050 Lenovo
是我的usb鼠标总线1上,是设备3,在该文件夹中,查看目录

$ ls /sys/bus/usb/devices/1-0:1.0  1-1:1.0  1-3      2-0:1.0  3-1      usb1  usb31-1      1-1:1.1  1-3:1.0  3-0:1.0  3-1:1.0  usb2
可以看到有3个usb总线,执行下面命令确认一下,是该设备
 cat /sys/bus/usb/devices/usb1/1-3/idVendor
17ef
和上面的设备ID能对应上。

$ cat /sys/bus/usb/devices/usb1/1-3/power/autosuspend2
当前状态是自动挂起,执行下面命令改为禁止自动挂起。

$ sudo echo '-1' > /sys/bus/usb/devices/usb1/1-3/power/autosuspend
以上只能临时解决问题,要永久解决问题,可以把上面一句命令加到系统启动脚本里。

以下是自己写的一段自动化脚本,加到系统启动脚本里就可以了,其中第一行的Lenovo是lsusb命令看到的鼠标的名称。

usbl=`lsusb | sed -n '/Lenovo/p'`busid=`echo $usbl | cut -d " " -f2`deviceid=`echo $usbl | cut -d " " -f6`busid=`echo $busid | cut -b 3`deviceid=`echo $deviceid | cut -d ":" -f1`echo $deviceidfor((i=0;i<10;i++))do    if [ -f "/sys/bus/usb/devices/$busid-$i/idVendor" ]; then        idvendor=`cat /sys/bus/usb/devices/$busid-$i/idVendor`        echo "idvendor: $idvendor"        if [ "$idvendor"="$deviceid" ];then            echo "will change it:$idvendor i is:$i"            sudo echo -1 > /sys/bus/usb/devices/$busid-$i/power/autosuspend        fi    fidone




0 0