2012 年 Macbook Pro 上的 Ubuntu - 对触摸板施加额外压力时指针会停止

2012 年 Macbook Pro 上的 Ubuntu - 对触摸板施加额外压力时指针会停止

任何帮助都将不胜感激。我在 Macbook Pro 上安装了 Ubuntu,除了触摸板之外,其他一切都运行良好。

仅当我以绝对最小的压力操作触摸板时,指针才会移动。

只要稍微施加一点压力,指针就会停止并卡住。通过将触摸板上的压力降至最低,它就会再次开始移动。

如果我以 Mac 恢复模式启动,触摸板可以正常工作,不会因手指的压力而停止工作。这是正常使用,在触摸板上施加的压力方面没有任何异常。

我尝试安装一些工具来更改触摸板的所有设置,例如键入时禁用、滚动设置等,但无法使其正常工作。有什么建议吗?

我的 Ubuntu 版本是 21.10 | 操作系统类型 64 位 | GNOME 版本 40.4.0 | 窗口系统 Wayland

下面是一个简短的视频,展示了触摸板压力增加时指针卡住的情况。视频中 libinput 打开,测量触摸板压力。

https://youtu.be/MqLGDbBO5Y4

输出来自libinput

+-------------------------------------------------------------------------------+
| Thresh |   30   |  25  |  130   |  256   |                                    |
+-------------------------------------------------------------------------------+
| Touch  |  down  |  up  |  palm  | thumb  | min  | max  | p  | avg  |  median  |
+-------------------------------------------------------------------------------+
|  1750  |   x    |  x   |   x    |        |  25  | 241  | 0  | 174  |   177    |
|  1751  |   x    |  x   |   x    |        |  26  | 218  | 0  | 176  |   174    |
|  1752  |   x    |  x   |   x    |        |  22  | 212  | 0  | 155  |   155    |
|  1753  |   x    |  x   |   x    |        |  50  | 193  | 0  | 163  |   176    |
+-------------------------------------------------------------------------------+

提前致谢!


从我所看到的情况来看,似乎发生的情况是手掌检测非常早就触发了,即使我只用一根手指轻轻按压触摸板。

我正在尝试输入 local-overrides.quirks 文件,但不确定如何让 libinput 真正读取 quirks 文件。是否只需注销并重新登录即可?

这是我尝试让 libinput 读取的 .ini 文件。

不确定 MatchDMIModalias 的语法是否良好......

[Touchpad palm pressure override]
MatchUdevType=touchpad
MatchName=bcm5974
MatchDMIModalias=dmi:*svnAppleInc.:*pnMacBookPro9,2*
AttrPalmPressureThreshold=256

我无法弄清楚 local-overrides.quirks 是如何工作的,所以我编辑了 libinput 在初始化时读取的实际怪癖文件。

我将 palmpressurethreshold 调到最大值,因此现在测量时,它不再触发手掌。

ModelAppleTouchpad=1
AttrSizeHint=104x75
AttrTouchSizeRange=150:130
AttrPalmSizeThreshold=700
AttrPalmPressureThreshold=255

但是,当我对指针施加一点点压力时,它仍然会冻结。:'(


+-------------------------------------------------------------------------------+
| Thresh |   30   |  25  |  255   |  256   |                                    |
+-------------------------------------------------------------------------------+
| Touch  |  down  |  up  |  palm  | thumb  | min  | max  | p  | avg  |  median  |
+-------------------------------------------------------------------------------+
|   32   |   x    |  x   |        |        |  34  | 139  | 0  | 121  |   128    |
|   33   |   x    |  x   |        |        |  25  | 127  | 0  | 112  |   114    |
|   34   |   x    |  x   |        |        |  24  | 130  | 0  | 112  |   116    |
|   35   |   x    |  x   |        |        |  20  | 139  | 0  | 103  |   105    |
|   36   |   x    |  x   |        |        |  21  | 148  | 0  | 125  |   132    |
|   37   |   x    |  x   |        |        |  31  | 238  | 0  | 156  |   160    |
|   38   |   x    |  x   |        |        |  26  | 180  | 0  | 139  |   145    |
|   39   |   x    |  x   |        |        |  17  | 166  | 0  | 135  |   142    |
|   40   |   x    |  x   |        |        |  31  | 222  | 0  | 142  |   140    |
|   41   |   x    |  x   |        |        |  36  | 172  | 0  | 140  |   143    |
|   41   |   x    |  x   |        |        |  0   | 172  | 0  | 138  |   143    |

尽管如此,当我施加一点点压力时,指针仍然会冻结,甚至没有发出手掌触摸测量工具的信号。:'(。必须继续调查!


耶!打破它就解决了!

因此,即使调整了手掌压力阈值,使手掌永远不会触发,当我在触摸板上施加一些额外的压力时,指针仍然会冻结。非常烦人。我尝试了许多不同的布尔怪癖,例如 ModelTabletModeNoSuspend、ModelTabletModeSwitchUnreliable,认为额外的压力可能会让 linbinput 认为我正在切换到平板电脑模式并以某种方式禁用触摸板。没有成功。

然后我决定对它进行彻底的改造,将布尔值设为“5”,看看它是否真的读取了我写的内容。这导致 quirk 出现解析错误,从而阻止了整个 quirk 的运行,瞧!触摸板工作正常!这让我意识到 quirk 上的一个预设设置是导致指针冻结的原因。

有问题的参数是 AttrPalmSizeThreshold。不知何故,如果检测到额外的压力,这个怪癖会冻结指针,至少在我的 Macbook Pro 9,2 上是这样。从怪癖中移除它使触摸板工作正常!大获成功!

相关内容