我的 lenovo x230 上的触摸板没有运行 synaptics 驱动程序,而我需要该驱动程序来增强其功能。相反,它使用 libinput。如何让 synaptics 驱动程序在启动时获得优先级?
触摸板是(xinput list
):
⎜ ↳ PS/2 Synaptics TouchPad id=13 [slave pointer (2)]
我可以使用以下命令检查它正在使用的驱动程序grep -i "Using input driver" /var/log/Xorg.0.log
:
(II) Using input driver 'libinput' for 'PS/2 Synaptics TouchPad'
但是,我确实安装了 synaptics 驱动程序(sudo apt install xserver-xorg-input-synaptics
):
Reading package lists... Done
Building dependency tree
Reading state information... Done
xserver-xorg-input-synaptics is already the newest version (1.9.0-1ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
我可以在 libinput 驱动程序旁边看到 synaptics 驱动程序的配置文件(ls /usr/share/X11/xorg.conf.d/
):
10-amdgpu.conf 40-libinput.conf 70-wacom.conf
10-quirks.conf 51-synaptics-quirks.conf
10-radeon.conf 70-synaptics.conf
我的结论是 synaptics 和 libinput 驱动程序都已安装,但出于某种原因 libinput 具有更高的优先级。这很令人困惑,因为据我所知,配置文件的编号越高/usr/share/X11/xorg.conf.d/
,优先级就越高,这意味着应该选择 synaptics。
我怎样才能让 synaptics 运行?到目前为止,我尝试将synaptics.conf
文件移动到/etc/X11/xorg.conf.d
因为 我读到这个目录具有更高的优先级,但这没有奏效。相关部分/var/log/Xorg.0.log
是
[ 7.718] (II) config/udev: Adding input device PS/2 Synaptics TouchPad (/dev/input/event5)
[ 7.718] (**) PS/2 Synaptics TouchPad: Applying InputClass "libinput pointer catchall"
[ 7.718] (II) Using input driver 'libinput' for 'PS/2 Synaptics TouchPad'
[ 7.718] (**) PS/2 Synaptics TouchPad: always reports core events
[ 7.718] (**) Option "Device" "/dev/input/event5"
[ 7.718] (**) Option "_source" "server/udev"
[ 7.719] (II) event5 - PS/2 Synaptics TouchPad: is tagged by udev as: Mouse
[ 7.719] (II) event5 - PS/2 Synaptics TouchPad: device is a pointer
[ 7.719] (II) event5 - PS/2 Synaptics TouchPad: device removed
[ 7.748] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input5/event5"
[ 7.748] (II) XINPUT: Adding extended input device "PS/2 Synaptics TouchPad" (type: MOUSE, id 13)
[ 7.748] (**) Option "AccelerationScheme" "none"
[ 7.748] (**) PS/2 Synaptics TouchPad: (accel) selected scheme none/0
[ 7.748] (**) PS/2 Synaptics TouchPad: (accel) acceleration factor: 2.000
[ 7.748] (**) PS/2 Synaptics TouchPad: (accel) acceleration threshold: 4
[ 7.749] (II) event5 - PS/2 Synaptics TouchPad: is tagged by udev as: Mouse
[ 7.749] (II) event5 - PS/2 Synaptics TouchPad: device is a pointer
[ 7.749] (II) config/udev: Adding input device PS/2 Synaptics TouchPad (/dev/input/mouse0)
[ 7.749] (II) No input driver specified, ignoring this device.
[ 7.750] (II) This device may have been added with another device file.
它引用的其他设备文件是什么? 在哪里libinput
被选为触摸板驱动程序?我怎样才能被synaptics
选中?
编辑:我的 libinput 版本是
kp@kvnp:~$ libinput --version
1.10.4
似乎只有一种滚动方法可用:
kp@kvnp:~$ xinput list-props 16
Device 'PS/2 Synaptics TouchPad':
Device Enabled (150): 1
Coordinate Transformation Matrix (152): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Natural Scrolling Enabled (285): 1
libinput Natural Scrolling Enabled Default (286): 0
libinput Scroll Methods Available (289): 0, 0, 1
libinput Scroll Method Enabled (290): 0, 0, 1
libinput Scroll Method Enabled Default (291): 0, 0, 1
libinput Button Scrolling Button (292): 2
libinput Button Scrolling Button Default (293): 2
libinput Middle Emulation Enabled (294): 1
libinput Middle Emulation Enabled Default (295): 0
libinput Accel Speed (296): 0.000000
libinput Accel Speed Default (297): 0.000000
libinput Accel Profiles Available (298): 1, 1
libinput Accel Profile Enabled (299): 1, 0
libinput Accel Profile Enabled Default (300): 1, 0
libinput Left Handed Enabled (301): 0
libinput Left Handed Enabled Default (302): 0
libinput Send Events Modes Available (270): 1, 0
libinput Send Events Mode Enabled (271): 0, 0
libinput Send Events Mode Enabled Default (272): 0, 0
Device Node (273): "/dev/input/event5"
Device Product ID (274): 2, 1
libinput Drag Lock Buttons (287): <no items>
libinput Horizontal Scroll Enabled (288): 1
当我尝试在 libinput 中进行两指滚动时,我得到以下输出:
kp@kvnp:~$ xinput set-prop 16 290 1 0 0
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 131 (XInputExtension)
Minor opcode of failed request: 57 ()
Value in failed request: 0x122
Serial number of failed request: 19
Current serial number in output stream: 20
答案1
我知道这个帖子很旧了,但是我最近更新到 Ubuntu 20.04 LTS 后也遇到了同样的问题。
我通过改变突触编号优先级解决了这个问题
/usr/share/X11/xorg.conf.d/
。
就我而言,这是命令的输出ls -1 /usr/share/X11/xorg.conf.d/
10-amdgpu.conf
10-quirks.conf
10-radeon.conf
40-libinput.conf
51-synaptics-quirks.conf
70-synaptics.conf
70-wacom.conf
我使用命令将70-synaptics.conf
其更改为30-synaptics.conf
mv 70-synaptics.conf 30-synaptics.conf
这使得它的优先级高于40-libinput.conf
。请务必以 root 身份执行此操作。然后reboot
。
答案2
我重新安装了内核,然后安装了
xserver-xorg-input-multitouch
xserver-xorg-input-mouse
通过允许将触摸板识别为SynPS/2 Synaptics Touchpad
而不是 ,解决了此问题PS/2 Synaptics Touchpad
。简而言之,我认为内核将触摸板识别为基本鼠标。我不太清楚为什么。
答案3
购买了新的触摸板/键盘,触摸板太敏感,安装了 synaptic 和 evdev.confg
10-amdgpu.conf
10-evdev.conf
10-quirks.conf
10-radeon.conf
40-libinput.conf
51-synaptics-quirks.conf
70-synaptics.conf
70-wacom.conf
libinput.conf 仍然是 evdev 驱动程序的默认驱动程序,尝试“mv 70-synaptics.conf 30-synaptics.conf”没有用,不得不 cd 到“/usr/share/X11/xorg.conf.d”之后“mv 70-synaptics.conf 30-synaptics.conf”起作用了,并且还将 libinput.conf 更改为 70
10-amdgpu.conf
10-evdev.conf
10-quirks.conf
10-radeon.conf
30-synaptics.conf
51-synaptics-quirks.conf
70-libinput.conf
70-wacom.conf
不确定这是否能修复我过于敏感的触摸板/键盘(Perixx PERIBOARD-510H Plus,迷你 USB 触摸板键盘美国英语布局 11005)
设备“SINO WEALTH USB 触摸板键盘”:设备已启用(173):1
但这里的信息非常有用,感谢这里的所有人
刚刚检查了 xinput list-props 11,libinput 仍然是设备驱动程序,哦,
我的操作系统是 ubuntu 22.04.4 gnome 版本 42.9 内核版本 6.5.0-25-generic