首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用libinput代替synaptics驱动的Touchpad

用libinput代替synaptics驱动的Touchpad
EN

Ask Ubuntu用户
提问于 2019-11-30 04:22:46
回答 1查看 10.3K关注 0票数 8

我的联想x230上的触摸屏没有运行synaptics驱动程序,我需要它增加功能。相反,它使用的是libinput。我怎样才能让synaptics驱动程序在引导时获得优先权?

触摸屏是(xinput list):

代码语言:javascript
复制
⎜   ↳ PS/2 Synaptics TouchPad                   id=13   [slave  pointer  (2)]

我可以检查它在grep -i "Using input driver" /var/log/Xorg.0.log中使用的驱动程序:

代码语言:javascript
复制
(II) Using input driver 'libinput' for 'PS/2 Synaptics TouchPad'

但是,我确实安装了synaptics驱动程序(sudo apt install xserver-xorg-input-synaptics):

代码语言:javascript
复制
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驱动程序(ls /usr/share/X11/xorg.conf.d/)旁边看到synaptics驱动程序的配置文件:

代码语言:javascript
复制
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的相关部分是

代码语言:javascript
复制
[     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版本是

代码语言:javascript
复制
kp@kvnp:~$ libinput --version
1.10.4

似乎只有一种滚动方法可用:

代码语言:javascript
复制
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):   
    libinput Horizontal Scroll Enabled (288):   1

当我试图让两个手指在libinput中滚动时,我得到了以下输出:

代码语言:javascript
复制
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
EN

回答 1

Ask Ubuntu用户

发布于 2021-01-26 15:22:03

我知道这个线程是旧的,但是最近我在更新到Ubuntu20.04LTS之后遇到了同样的问题。

我通过改变/usr/share/X11/xorg.conf.d/中的synaptics号优先级来解决这个问题。

在我的例子中,这是命令ls -1 /usr/share/X11/xorg.conf.d/的输出

代码语言:javascript
复制
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

代码语言:javascript
复制
mv 70-synaptics.conf 30-synaptics.conf

这给了它比40-libinput.conf更高的优先级。一定要以根用户的身份执行此操作。然后是reboot

票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1192638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档