当我解除绑定 Trackpoint 驱动程序 (psmouse) 后,当我按下它时,驱动程序会重新绑定。是什么原因造成的?

当我解除绑定 Trackpoint 驱动程序 (psmouse) 后,当我按下它时,驱动程序会重新绑定。是什么原因造成的?

有关背景信息,请参阅手动绑定和解绑驱动

我可以在 Thinkpad 上解绑 Trackpoint 驱动程序:

$ cd /sys/bus/serio/drivers/psmouse/
$ ls -l
total 0
--w-------. 1 root root 4096 Dec  5 20:04 bind
-rw-r--r--. 1 root root 4096 Dec  5 19:19 bind_mode
-r--r--r--. 1 root root 4096 Dec  5 19:19 description
lrwxrwxrwx. 1 root root    0 Dec  5 19:19 module -> ../../../../module/psmouse
lrwxrwxrwx. 1 root root    0 Dec  5 19:19 serio1 -> ../../../../devices/platform/i8042/serio1
lrwxrwxrwx. 1 root root    0 Dec  5 20:14 serio2 -> ../../../../devices/platform/i8042/serio1/serio2
--w-------. 1 root root 4096 Dec  5 19:19 uevent
--w-------. 1 root root 4096 Dec  5 20:07 unbind
$ echo serio2 | sudo tee unbind
serio2
$ ls
bind  bind_mode  description  module  serio1  uevent  unbind

单击或移动某个指点杆按钮后,指点杆再次开始工作。这是因为驱动程序再次被绑定:

$ ls
bind  bind_mode  description  module  serio1  serio2  uevent  unbind

是什么原因导致司机再次被绑定?

  • 内核:4.11.8-200.fc25.x86_64
  • 操作系统:Fedora 工作站 25
  • 硬件:Thinkpad X201

答案1

我怀疑这与 Linux 如何检测系统启动后插入的 PS/2 设备有关。 (“热插拔”)。

PS/2 端口是在不支持热插拔的时代设计的。例如,早期的 Microsoft Windows 不支持热插拔 PS/2 端口。

我怀疑没有热插拔信号,或者不能依赖它。因此 Linux 只能监听任何未绑定 PS/2 端口上的数据。当它接收到一些数据时,它必须重新探测端口。

至少这是一个很好的理论。但是,如果我在另一台笔记本电脑(Dell Latitude E5450)上取消绑定组合触摸板/轨迹点设备,则不会发生同样的情况。我必须再次手动绑定驱动程序;例如,当我按下按钮时,它不会神奇地再次开始工作。

相关内容