我有一台运行最新固件和 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 库会阻止键盘和触摸板作为响应。唤醒时,硬件不会发送有关离开平板电脑模式的事件。
这种行为似乎很难可靠地重现。不过,以下解决方法似乎有效:
- 短暂关闭并再次打开盖子。下次重启前只需执行一次。
- 将盖子翻转至平板电脑模式,然后再翻转回来。此操作可以在让笔记本电脑进入睡眠状态之前提前完成,并且只需在重启前执行一次即可。
intel_vbtn
通过(可以手动或从 cron 执行)重新加载驱动程序modprobe -r intel_vbtn && modprobe intel_vbtn
。它将检测开关。- 延迟启动时加载
intel_vbtn
驱动程序。可以通过添加rd.driver.blacklist=intel_vbtn
到 Linux 内核命令行来实现。驱动程序仍会加载,但会在启动过程中稍后加载。