Lenovo Thinkpadでマウスパッドが機能しない

Lenovo Thinkpadでマウスパッドが機能しない

ここで奇妙な問題が発生しました。統合シナプスマウス/ゴムマウスがLinuxでは機能しません。

統合マウス/マウスパッドは、Windowsで最初に有効にした場合にのみ機能します。 Linuxでは複数回再起動でき、正常に動作します。ノートパソコンの電源が切れない限り認識されます。

ノートパソコンのバッテリーが消耗したら、マウスパッド/マウスのみを再利用できます。Windowsで初めて起動する場合

したがって、Linuxの実行中にバッテリーを取り外すと、簡単にエラーを再現できます。これによりマウスパッドが認識されなくなります。~までWindowsを再起動します。そのため、オープンソースドライバは、ハードウェアが未知の(初期化された)状態のときにデバイスを認識しないようです。

私は2016 Lenovo ThinkPad E560、i7-6500U CPU @ 2.50GHz、16GB RAM、SSDディスクでDebian 9 / Antix 17.1を使用しています。

radeon.modeset=0マシンにデュアルカードがありますが、カーネルパラメータでradeonを無効にしました。したがって、関連パラメータは次のとおりです。

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 520 (rev 07)

私のxserver-xorg関連パッケージは次のとおりです。

xserver-xorg - 7.7+19
xserver-xorg-core - 1.19.2-1.0nosystemd2
xserver-xorg-input-libinput - 0.23.0-2
xserver-xorg-input-synaptics - 1.9.0-1+b1
xserver-xorg-video-intel - 2.99.917+git20161206-1

4.10.5-antix.3-amd64-smpAntixリポジトリで既存のDebianカーネルを実行してみましたが、 4.18.4-antix.1-amd64-smp症状は変わりませんでした。 @StephenKittが言ったように、新しいバージョンではシナプス処理に変化があります。

私の現在のカーネルパラメータは次のとおりです。

$ cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-4.18.4-antix.1-amd64-smp root=UUID=00c17984-859f-4197-8bd8-b346ddd092bd ro iommu=1 intel_iommu=on iommu=pt ipv6.disable=1 intremap=no_x2apic_optout radeon.modeset=0

また、xorgのマウスパッド処理をxserver-xorg-input-synapticsからxserver-xorg-input-libinputに変更し、後者をインストールした後、次のことを行うためのオンラインアドバイスに従いました。

 cd /etc/X11/xorg.conf.d
 ln -s /usr/share/X11/xorg.conf.d/40-libinput.conf 

症状は同じままです。

また、デバイス/ドライバ名を確認するためにWindows 10のデバイスマネージャに入り、「Ultranav」というデュアルマウスパッド/キーボードゴム製品でした。libinput-list-devices「AlpsPS/2 ALPS DualPoint TouchPad」とも名付けられました。他のLenovoモデルの中で、このマウスをElantechと呼んでいる人もいます。

libinput-toolsデバッグケースもインストールしました。興味深いことに、libinput-list-devicesWindowsを実行した後にこのコマンドを実行するとマウスが見えますが、実行する前にマウスはありませんでした。

私はバグを埋めるためにカーネルチームに提案しました。

何をすべきか?

dmidecodeメーカーとモデルに関する関連データは次のとおりです。

# dmidecode -s system-manufacturer
LENOVO
# dmidecode -s system-product-name
20EV000YPG
# dmidecode -s system-version
ThinkPad E560

libunput-list-devicesWindows 10の起動前後の違い。

$ diff libunput-list-devices-before_windows.txt after-windows.txt
2c2
< Kernel:           /dev/input/event8
---
> Kernel:           /dev/input/event10
20c20
< Kernel:           /dev/input/event10
---
> Kernel:           /dev/input/event12
38c38
< Kernel:           /dev/input/event7
---
> Kernel:           /dev/input/event9
128c128
< Kernel:           /dev/input/event18
---
> Kernel:           /dev/input/event20
163,164c163,164
< Device:           ThinkPad Extra Buttons
< Kernel:           /dev/input/event9
---
> Device:           AlpsPS/2 ALPS DualPoint Stick
> Kernel:           /dev/input/event6
165a166,202
> Seat:             seat0, default
> Capabilities:     pointer 
> Tap-to-click:     n/a
> Tap-and-drag:     n/a
> Tap drag lock:    n/a
> Left-handed:      disabled
> Nat.scrolling:    disabled
> Middle emulation: disabled
> Calibration:      n/a
> Scroll methods:   *button
> Click methods:    none
> Disable-w-typing: n/a
> Accel profiles:   flat *adaptive
> Rotation:         n/a
> 
> Device:           AlpsPS/2 ALPS DualPoint TouchPad
> Kernel:           /dev/input/event7
> Group:            7
> Seat:             seat0, default
> Size:             97.50x53.87mm
> Capabilities:     pointer 
> Tap-to-click:     disabled
> Tap-and-drag:     enabled
> Tap drag lock:    disabled
> Left-handed:      disabled
> Nat.scrolling:    disabled
> Middle emulation: disabled
> Calibration:      n/a
> Scroll methods:   *two-finger edge 
> Click methods:    *button-areas clickfinger 
> Disable-w-typing: enabled
> Accel profiles:   none
> Rotation:         n/a
> 
> Device:           ThinkPad Extra Buttons
> Kernel:           /dev/input/event11
> Group:            8

ベストアンサー1

興味深いことに、このバグの他の単語(Lenovo、Alps、Ultraranavを含む)を検索している間、Arch Linux wikiの記事でカーネルパラメータを提案する記事を見つけました。ライブラリ入力

タッチパッドがまったく検出されない

注:これはlibinputの問題ではありません。 Touchpad_Synaptics#No_Multi-touch_in_some_Elantech_touchpadsに接続されているパラメータの説明があります。

タッチパッドデバイスが検出されず、まったくデバイスとして表示されない場合、考えられる解決策は、これらのカーネルパラメータの1つ以上を使用することです。

i8042.noloop i8042.nomux i8042.nopnp i8042.reset

その後、いくつかのテストを実行したところ、私の場合は、i8042.resetファイルGRUB_CMDLINE_LINUX_DEFAULTにカーネルパラメータを追加し、次のコマンドを実行するだけで/etc/default/grub十分であることを確認しました。

update-grub2

その後、バッテリーを取り外してエラーを再現してみました。コンピュータがハングしてLinuxが再起動した後、最初にWindows 10を起動しなくても、Ultraranav / Elantech内蔵マウスが最初に認識され動作しました。

私はこれがカーネルバグだと言いたいです。

他のノートブックと同様に、Lenovo ThinkpadはLinuxカーネルのi8042リセットデバイスのリストに追加する必要があります。

これらの誤った項目を見つけた後、後でこの要件を見つけました。 Enter:i8042 - i8042リセットリストにLenovo LaVie Zを追加するそして入力:i8042:i8042リセットリストにLenovo ThinkPad L460を追加する

Linuxカーネルのソースコードを目視で調べると、最新の4.19-rc2カーネルソースコードには、Lenovo ThinkPad E560をi8042リセットリストに追加するソースコードもありません。

そのため、これを追加するために、grubのi8042.resetカーネルパラメータの代わりに使用できる簡単なdiff / patchを作成しました。

--- drivers/input/serio/i8042-x86ia64io.h.old   2018-09-06 04:53:36.460003164 +0100
+++ drivers/input/serio/i8042-x86ia64io.h   2018-09-06 04:57:16.833465129 +0100
@@ -655,6 +655,14 @@
            DMI_MATCH(DMI_PRODUCT_NAME, "P65xRP"),
        },
    },
+   {
+                /* Lenovo ThinkPad E560 */
+                .matches = {
+                        DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+                        DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad E560"),
+                },
+        },
+
    { }
 };

PS。 @StephenKittの提案に従って、この投稿をLinuxカーネルのバグレポートに送信しようとしました。[Eメール保護]

おすすめ記事