在 19.10 中重新启动神秘的触摸板驱动程序

在 19.10 中重新启动神秘的触摸板驱动程序

我在圣诞节收到了一台新笔记本电脑,里面装满了新硬件,所以我唯一的选择就是安装 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

相关内容