ここで奇妙な問題が発生しました。統合シナプスマウス/ゴムマウスが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-smp
Antixリポジトリで既存の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-devices
Windowsを実行した後にこのコマンドを実行するとマウスが見えますが、実行する前にマウスはありませんでした。
私はバグを埋めるためにカーネルチームに提案しました。
何をすべきか?
dmidecode
メーカーとモデルに関する関連データは次のとおりです。
# dmidecode -s system-manufacturer
LENOVO
# dmidecode -s system-product-name
20EV000YPG
# dmidecode -s system-version
ThinkPad E560
libunput-list-devices
Windows 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メール保護]