Curiosamente, pesquisando variações de palavras do bug, incluindo Lenovo, Alps e Ultranav, encontrei um artigo sugerindo parâmetros do kernel no post no wiki do Arch Linux libinput
Touchpad not detected at all
Notes: Not a libinput issue. An explanation of the parameters is linked in Touchpad_Synaptics#No_Multi-touch_in_some_Elantech_touchpads, which is much better than saying "try some of these".
If a touchpad device is not detected and shown as a device at all, a possible solution might be using one or more of these kernel parameters.
i8042.noloop i8042.nomux i8042.nopnp i8042.reset
Fiz então alguns testes e descobri que no meu caso foi suficiente adicionar o parâmetro do kernel i8042.reset
to GRUB_CMDLINE_LINUX_DEFAULT
no arquivo /etc/grub/default
e executar:
update-grub2
Depois disso, tirei a bateria para tentar replicar o bug. Depois que a máquina morreu e reinicializou o Linux, o mouse interno Ultranav / Elantech já era reconhecido e funcionava no começo, sem a necessidade de inicializar o Windows 10 primeiro.
Eu diria que isso se qualifica como um bug do kernel.
Similarmente a outros portáteis, o Lenovo Thinkpad precisa ser adicionado à lista de dispositivos redefinidos do i8042 no kernel do Linux, onde há uma lista de máquinas familiares que precisam da redefinição do chipset i8042 a fim de detectar consistentemente o seu Elantech TouchPad.
Eu encontrei este requisito depois de encontrar essas entradas de bugs. Entrada: i8042 - adicione Lenovo LaVie Z à lista de reinicialização do i8042 e Entrada: i8042: adicione o Lenovo ThinkPad L460 à i8042 lista de reinicialização
A partir da inspeção visual do código-fonte do kernel do Linux, o código-fonte para adicionar o Lenovo ThinkPad E560 à lista de redefinição do i8042 também não está presente nas fontes de kernel 4.19-rc2 mais recentes.
Então, para adicioná-lo, eu escrevi um diff / patch simples que pode ser usado em vez de usar o parâmetro do kernel i8042.reset no grub:
--- 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. Seguindo a sugestão do @StephenKitt, eu tentei enviar este post como um relatório de bug do kernel do Linux para [email protected]