更新1

更新1

i8042.nopnp我试图找出仅当我进入启动菜单(无论是在启动时按 esc 还是从 grub 中按 esc)并添加到内核命令行时,我的 hp 笔记本上的触摸板才能工作的原因。这两个操作都是必要的,因为仅添加 i8042 参数确实会使触摸板可发现但无响应,并且据我所知,仅进入菜单不会产生任何影响。我发现的多个解决方案(最明显的是添加其他i8042.xxx参数)没有给出任何积极的结果(从字面上看,输出xinputdmesg没有改变)。我所说的启动菜单是指一个对话框,我可以在其中选择是否打开 BIOS 设置、更改启动顺序、从网络启动、启动 UEFI 诊断工具等。

我的笔记本电脑型号是 HP 15s-eq1017nw,配备移动 Ryzen APU(4500U,如果重要的话),没有独立 GPU。我测试过的多个发行版(具体来说:Ubuntu 21.10 和 20.04 LTS、Linux MX 21 “ahs”和标准版以及当前的 Manjaro)的固件版本是 F.34 Rev.A 和 F.54 Rev.A。

在进入dmesgxinput输出之前,我想强调一下,我只是巧合地找到了我的“解决方案”,所以它背后没有任何专业知识。

郑重声明一下,蓝牙、wifi、键盘和显示器都可以开箱即用。只是触摸板比较棘手。

dmesg触摸板工作时的输出(即当我添加i8042.nopnp到内核选项并进入BIOS设置时): https://pastebin.com/ZHu1iSp4

dmesg当我只是添加i8042.nopnp但跳过进入 BIOS 设置时的输出: https://pastebin.com/mxWX9CpL

这两个输出都是在登录后立即生成的。

触摸板在 Windows 10 上运行良好(包括在安装过程中),并被识别为 Elantech 触摸板(在 W10 和 Linux 上均如此)

最后,xinput输出:(xinput工作时)

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN071A:00 04F3:30FD Touchpad            id=10   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=12   [slave  pointer  (2)]
⎜   ↳ ELAN071A:00 04F3:30FD Mouse               id=9    [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ HP TrueVision HD Camera: HP Tru           id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ HP WMI hotkeys                            id=13   [slave  keyboard (3)]
    ↳ ACPI Virtual Keyboard Device              id=14   [slave  keyboard (3)]

xinput当检测到触摸板但不移动光标时,即当我不进入BIOS设置时)

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ HP TrueVision HD Camera: HP Tru           id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]
    ↳ ACPI Virtual Keyboard Device              id=11   [slave  keyboard (3)]
    ↳ HP WMI hotkeys                            id=12   [slave  keyboard (3)]

更新1

我刚刚检查了 grub 在进入启动菜单并调用命令时会做什么fwsetup

我想知道当机器进入此菜单/状态时会发生什么,因为此操作使触摸板不仅可以被发现而且可以工作。

在任何人询问之前,在启动 Linux 之前等待确实可以解决这个问题。

答案1

您的第一个 Pastebin(工作状态)包含以下几行:

[    1.817897] input: ELAN071A:00 04F3:30FD Mouse as /devices/platform/AMDI0010:03/i2c-1/i2c-ELAN071A:00/0018:04F3:30FD.0001/input/input6
[    1.817941] input: ELAN071A:00 04F3:30FD Touchpad as /devices/platform/AMDI0010:03/i2c-1/i2c-ELAN071A:00/0018:04F3:30FD.0001/input/input8
[    1.817968] hid-generic 0018:04F3:30FD.0001: input,hidraw0: I2C HID v1.00 Mouse [ELAN071A:00 04F3:30FD] on i2c-ELAN071A:00

然后:

[    3.788331] input: ELAN071A:00 04F3:30FD Mouse as /devices/platform/AMDI0010:03/i2c-1/i2c-ELAN071A:00/0018:04F3:30FD.0001/input/input13
[    3.788469] input: ELAN071A:00 04F3:30FD Touchpad as /devices/platform/AMDI0010:03/i2c-1/i2c-ELAN071A:00/0018:04F3:30FD.0001/input/input15
[    3.788561] hid-multitouch 0018:04F3:30FD.0001: input,hidraw0: I2C HID v1.00 Mouse [ELAN071A:00 04F3:30FD] on i2c-ELAN071A:00

在失败的情况下这些行都丢失了。

这表明触摸板是较新的连接触摸板之一i2c:基本上,触摸板还提供经典的 PS/2 类似鼠标功能以实现兼容性,但完整功能(例如多点触控)只能使用 i2c 接口来实现。

不幸的是,I2C-HID 规范往往实施得很差,需要特定于设备的怪癖。看:https://askubuntu.com/questions/1033033/elantech-touchpad-does-not-work-i2c-hid

您可以尝试modprobe elan_i2c,modprobe i2c_hid和/或modprobe hid-multitouch看看它们是否有所作为。

相关内容