スリープ後にキーボードとトラックパッドが機能しなくなる

スリープ後にキーボードとトラックパッドが機能しなくなる

最新のファームウェアと Ubuntu 20.04 を実行している Dell Inspiron 5379 を使用しています。ノートブックがスリープ状態になると、キーボードとトラックパッドが断続的に機能しなくなります。タッチスクリーンは機能するため、オンスクリーン キーボードを使用して再起動できます。再起動後、キーボードとタッチパッドは機能します。

/etc/default/grubグーグルで検索したら、これを使ってGRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.direct i8042.dumbkbd"編集するという提案を見つけましたUbuntu 17.04 キーボードがサスペンド後に応答しないしかし、効果はありません。

私も見つけたDell Inspiron 15-7568 タッチパッドが Xenial 16.04 でフリーズするしかし、インストールしていないので適用できないようですsynapse

アップデート: をインストールした後synaptics(および を介してトラックパッドで使用されていることを確認xinput list-props)、問題はキーボードのみに影響します。キーボードは引き続き を介して管理されていますlibinput

これは、特定の状況で「タブレットモード」が有効になっていることに関係しているのではないかと私は確信しています(https://www.dell.com/support/article/en-uk/sln305434/how-to-enable-or-disable-tablet-mode-on-your-notebook-in-windows-10?lang=en)。私が調べる必要があるのは、それを無効にする方法だと思います。

関連する可能性があるもの:https://bbs.archlinux.org/viewtopic.php?id=237782

アップデート2xinput list-props:キーボードが機能していない状態で実行しようとしましたが、追加情報はありません:

vitor@vitor-Inspiron-5379:~$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=12   [slave  pointer  (2)]
⎜   ↳ DELL0804:00 06CB:7E7E Mouse               id=13   [slave  pointer  (2)]
⎜   ↳ DELL0804:00 06CB:7E7E Touchpad            id=14   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD: Integrate           id=10   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD: Integrate           id=11   [slave  keyboard (3)]
    ↳ Intel Virtual Button driver               id=15   [slave  keyboard (3)]
    ↳ Intel HID events                          id=16   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=17   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=18   [slave  keyboard (3)]
# Device not working
vitor@vitor-Inspiron-5379:~$ xinput list-props 18
Device 'AT Translated Set 2 keyboard':
    Device Enabled (171):   1
    Coordinate Transformation Matrix (173): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Send Events Modes Available (293): 1, 0
    libinput Send Events Mode Enabled (294):    0, 0
    libinput Send Events Mode Enabled Default (295):    0, 0
    Device Node (296):  "/dev/input/event4"
    Device Product ID (297):    1, 1
vitor@vitor-Inspiron-5379:~$ 
# Device working (after reboot)
vitor@vitor-Inspiron-5379:~$ xinput list-props 18
Device 'AT Translated Set 2 keyboard':
    Device Enabled (171):   1
    Coordinate Transformation Matrix (173): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Send Events Modes Available (293): 1, 0
    libinput Send Events Mode Enabled (294):    0, 0
    libinput Send Events Mode Enabled Default (295):    0, 0
    Device Node (296):  "/dev/input/event4"
    Device Product ID (297):    1, 1
vitor@vitor-Inspiron-5379:~$ 

アップデート3: フォローこれ適切なイベントが見つかりました(https://github.com/alesguzik/linux_detect_tablet_modeも便利です。ドライバーのバインドを解除しても、問題は解決されないようです。

タブレット モードを管理するには、GNOME 拡張機能を作成する必要があるのではないかと考えています。

アップデート4: ラップトップをタブレット モードに拡張すると、タブレット モード イベントが引き続き発生しますが、ドライバーのバインドを解除すると、カバーを開いたときに問題が抑制されるようです。これについてはまだ説明がありません。これを自動化する方法を見つけて、可能であれば、根本的な原因を特定してみます。

答え1

Dell Inpiron 13 700 でも、非常によく似た問題が発生しています。私も同じことをしていました。マウス/キーボードを再び機能させるためにノートブックを再起動していたのですが、かなりイライラしていました。画面を反転して強制的にタブレット モードにしてから、再び「ノートブック」の位置に戻すと、すべてが正常に機能するようになると考えました。これで問題が解決するわけではありませんが、回避策として、少なくとも再起動する必要はありません。

答え2

一部の Dell Inspiron 2-in-1 ラップトップでは、サスペンド時に「タブレット」モードに入ると報告されるようです。libinput ライブラリは、それに応じてキーボードとタッチパッドをブロックします。起動すると、ハードウェアはタブレット モードを終了するイベントを送信しません。

この動作を確実に再現するのは難しいようです。ただし、次の回避策が機能するようです。

  1. 蓋を閉じて、しばらく開けます。次の再起動まで、1 回だけ実行する必要があります。
  2. カバーをタブレット モードにし、元に戻します。これは、ラップトップをスリープ状態にする前に事前に実行でき、再起動するまでに 1 回だけ実行する必要があります。
  3. intel_vbtnドライバーをリロードしますmodprobe -r intel_vbtn && modprobe intel_vbtn(手動または cron から実行できます)。スイッチが検出されます。
  4. 起動時にドライバーの読み込みを遅らせますintel_vbtn。これは、Linux カーネルのコマンド ラインに追加することで実行できますrd.driver.blacklist=intel_vbtn。ドライバーは引き続き読み込まれますが、起動中に後で読み込まれます。

関連情報