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

igg*_*345 5 mouse touchpad drivers 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)]
Run Code Online (Sandbox Code Playgroud)

使用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
Run Code Online (Sandbox Code Playgroud)

这表明这designware是驱动程序?但是 usingls $(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
Run Code Online (Sandbox Code Playgroud)

我已经完成并系统地重新启动了每一个,但它们似乎都没有帮助,还有其他地方可以找到鼠标驱动程序吗?

我使用的笔记本电脑型号是:

联想IdeaPad S340


编辑

我从不同的论坛发现了一个不同的问题https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module这似乎解决了有关内置设计件驱动程序的类似问题,如果如链接所述,“它不是作为模块构建的”,我该如何重新启动设计件驱动程序?

igg*_*345 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
Run Code Online (Sandbox Code Playgroud)

然后将其放入/usr/lib/systemd/system-sleep/

您可以在以下位置找到更多信息:https://www.addictivetips.com/ubuntu-linux-tips/run-scripts-and-commands-on-suspend-and-resume-on-linux/