我在圣诞节收到了一台新笔记本电脑,里面装满了新硬件,所以我唯一的选择就是安装 ubuntu 19.10,但在我遇到的错误中,每当我必须将电脑从睡眠状态唤醒时,触摸板似乎都会“冻结”,但我仍然不知道如何重新启动鼠标垫驱动程序,我按照几组不同的说明进行操作有没有办法“重新启动”触摸板驱动程序?但无济于事
我确信它sudo modprobe -r drivername && sudo modprobe drivername
可以工作,但我似乎找不到我的触摸板的驱动程序。
使用xinput --list
回报
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Wireless Mouse id=9 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen id=10 [slave pointer (2)]
⎜ ↳ MSFT0002:01 04F3:304B Touchpad id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=11 [slave keyboard (3)]
↳ Ideapad extra buttons id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
使用xinput disable 12 && xinput enable 12
没有帮助。
使用grep -iA2 touchpad /proc/bus/input/devices
收益率:
N: Name="MSFT0002:01 04F3:304B Touchpad"
P: Phys=i2c-MSFT0002:01
S: Sysfs=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-MSFT0002:01/0018:04F3:304B.0001/input/input23
这表明这designware
是驱动程序?但使用ls $(find /lib/modules/$(uname -r) -type d -name mouse)
不会显示任何这样的驱动程序名称:
appletouch.ko bcm5974.ko cyapatp.ko elan_i2c.ko gpio_mouse.ko psmouse.ko sermouse.ko synaptics_i2c.ko synaptics_usb.ko vsxxxaa.ko
我已经检查过并系统地重新启动了每一个,但似乎都没有任何帮助,还有没有其他地方可以找到鼠标驱动程序供我查看?
我使用的笔记本电脑型号是:
联想 IdeaPad S340
编辑
我在另一个论坛上发现了另一个问题https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module这似乎解决了有关内置设计件驱动程序的类似问题,如果如链接所述“它不是作为模块构建的”,我该如何重新启动设计件驱动程序?
答案1
当使用 ubuntu 自带的内置鼠标驱动程序时,我发现最好的方法是重新启动模块i2c_hid
,这就是i2c_designware
用作 i2c 管理器的原因。这就是为什么你无法在命令中找到它lib_modules
。
我能够使用lsmod
命令列出内核中的模块来解决这个问题,然后查找关键字i2c
。之后,找到正确的答案就是一种幸运的猜测。
正如 @ZanyZachary1 所建议的那样,找到要重新启动的模块后,只需设置一个 bash 脚本,在笔记本电脑恢复或进入睡眠状态时运行即可。
#!/bin/sh
case $1/$2 in
pre/*)
echo "Going to $2..."
# Place your pre suspend commands here, or `exit 0` if no pre suspend action required
modprobe -r i2c_hid
;;
post/*)
echo "Waking up from $2..."
# Place your post suspend (resume) commands here, or `exit 0` if no post suspend action required
sleep 2
modprobe i2c_hid
;;
esac
然后将其放入/usr/lib/systemd/system-sleep/
您可以在以下位置找到更多相关信息:https://www.addictivetips.com/ubuntu-linux-tips/run-scripts-and-commands-on-suspend-and-resume-on-linux/
答案2
假设您有这些:
xserver-xorg-input-libinput
xserver-xorg-input-evdev
xserver-xorg-input-mouse
(如果没有sudo apt install xserver-xorg-input-libinput xserver-xorg-input-evdev xserver-xorg-input-mouse
)您可能必须安装这个:xserver-xorg-input-synaptics
sudo apt install xserver-xorg-input-synaptics