11 votes

Pourquoi le clavier de mon ordinateur portable est défectueux depuis le noyau 5.4.0-47 jusqu'à 5.8.0-20 ?

Mon Kubuntu a été mis à jour du noyau 5.4.0-42 au noyau 5.4.0-47 et le clavier de mon ordinateur portable ne fonctionne plus (sauf les touches de luminosité). Le redémarrage en 5.4.0-42 a résolu le problème.

Le clavier fonctionne également parfaitement sous Windows 10 (j'ai un double démarrage).

Le clavier fonctionne également dans Grub (2.04). Mais il ne fonctionne pas dans les noyaux 5.4.0-47 et plus.

La mise à jour vers Kubuntu 20.10 (beta) n'aide pas non plus (noyau 5.8.0-20 même problème).

Mon problème est similaire à celui-ci : Le clavier d'un ordinateur portable HP cesse de fonctionner sous le noyau 5.4.0-45-generic

Et oui, j'ai vu ça sur launchpad : https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1894017

Quel est donc le problème et pourquoi n'est-il pas corrigé dans toute la gamme des noyaux 5.4.0-47 - 5.8.0-20 ?

9voto

IGR94 Points 309

La solution a été trouvée ici : https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1894017

Je viens de mettre sur liste noire intel_vbtn module du noyau dans /etc/modprobe.d/blacklist.conf et redémarré. L'auteur a mentionné qu'en quelque sorte intel_vbtn pense que mon ordinateur portable est en mode tablette (QUOI ? !) et a désactivé le clavier/touchpad.

Comment établir une liste noire

Pour ce faire, vous pouvez soit créer un nouveau fichier dans la section /etc/modprobe.d avec le suffixe .conf ou utiliser le principal blacklist.conf fichier. La première solution peut être préférable, car vous pouvez alors supprimer le fichier lorsqu'il n'est plus nécessaire (c'est-à-dire lorsque le bogue est corrigé) :

sudoedit /etc/modprobe.d/blacklist-intel_vbtn.conf

Ajoutez une ligne au fichier, avec éventuellement un commentaire expliquant pourquoi vous faites cela

# bug in module breaks keyboard, so don't load it
blacklist intel_vbtn

Enregistrez le fichier, quittez et redémarrez.

P.S. Après avoir envoyé un courrier à M. Hans de Goede de RedHat, j'ai obtenu la réponse suivante :

Cela devrait être corrigé par cette commit amont, qui a atterri dans l'arbre de Linus il y a quelques heures. de Linus il y a quelques heures : https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/platform/x86?id=8169bd3e6e193497cab781acddcff8fde5d0c416

Igor, si tu le fais :

cat /sys/class/dmi/id/chassis_type

Sur votre ordinateur portable, et la sortie est PAS "31" ou "32" puis cette solution devrait fonctionner pour vous.

Si la sortie est effectivement "31" ou "32" (ce que je ne pense pas), alors s'il vous plaît laissez-moi savoir, parce que nous avons alors besoin d'un correctif différent.

P.P.S. Sur mon système (Intel Celeron N2940) chassis_type renvoie à 10

2voto

gregers Points 151

Il semble que ce soit libinput qui reçoive un SW_TABLET_MODE de l'un des dispositifs d'entrée de l'ordinateur portable. Je ne sais pas pourquoi ils désactivent le clavier et le pavé tactile lors de la réception de cet événement, mais je suppose que c'est pour éviter d'appuyer sur des boutons sur les ordinateurs portables, vous pouvez retourner l'écran de façon à ce que le clavier/pavé tactile soit sous l'écran tactile.

Cependant, certains modèles d'ordinateurs portables émettent cet événement même lorsque le clavier n'est pas retourné. Le Dell Precision 5760 possède un périphérique d'entrée "Intel HID switches" qui déclenche cet événement lorsque l'ordinateur portable est déplacé. Ainsi, chaque fois que j'ai déclenché l'accéléromètre, le clavier interne et le pavé tactile ont cessé de fonctionner pendant un certain temps. Avant de revenir en mode ordinateur portable. Ce bogue semble avoir été [corrigé il y a quelques semaines][1], donc espérons qu'il sera bientôt déployé dans une version stable.

D'autres ont suggéré de mettre sur liste noire intel_vbtn mais cela n'a pas fonctionné pour moi. Probablement à cause d'un pilote différent utilisé. Mais j'ai trouvé une autre solution de contournement, qui est une solution dans libinput pour ce problème exact ; enregistrer une bizarrerie pour le périphérique d'entrée déclenchant le mode tablette : ModelTabletModeSwitchUnreliable .

Tout d'abord, vous devez déterminer quel périphérique d'entrée déclenche l'alarme. SW_TABLET_MODE événement. Installez libinput-tools pour vous aider à déboguer le problème :

$ sudo atp install libinput-tools

Maintenant, nous devons enregistrer tous les événements d'entrée avec sudo libinput debug-events . Démarrez-le, et essayez de déclencher le SW_TABLET_MODE événement. Cela devrait ressembler à quelque chose comme ceci :

-event27  SW_TABLET_MODE  .....

Cela signifie que c'est /dev/input/event27 qui déclenche le mode tablette. Il s'agit probablement d'un numéro différent pour les autres. Dressons la liste des périphériques d'entrée pour en connaître le nom :

$ sudo libinput list-devices

Recherchez le numéro de l'événement que vous avez obtenu plus tôt et notez le numéro de l'événement. nom du dispositif :

Device:           Intel HID switches
Kernel:           /dev/input/event27

Maintenant, nous avons besoin de quelques identifiants pour les modalias de vos ordinateurs :

$ cat /sys/class/dmi/id/modalias
dmi:bvnDellInc.:bvr1.4.1:bd09/08/2021:br1.4:svnDellInc.:pnPrecision5760:pvr:sku0A5E:rvnDellInc.:rn0FW9DW:rvrA00:cvnDellInc.:ct10:cvr:

La partie que vous choisissez n'a pas vraiment d'importance, mais j'ai choisi svnDellInc.:pnPrecision5760: puisqu'il comprend le fabricant et le modèle de mon ordinateur.

En tant que root, créez un fichier /etc/libinput/local-overrides.quirks

[QUIRKS DESCRIPTION]
MatchName=*DEVICE NAME*
MatchDMIModalias=dmi:*PART OF MODALIAS*
ModelTabletModeSwitchUnreliable=1

Pour mon Dell Precision 5760, cela ressemble à ceci :

[Precision 5760 Disable Tablet Mode]
MatchName=*Intel HID switches*
MatchDMIModalias=dmi:*svnDellInc.:pnPrecision5760:*
ModelTabletModeSwitchUnreliable=1

Sauvegarder le fichier. Pour vérifier que la bizarrerie correspond à l'appareil, essayez :

$ libinput quirks list /dev/input/event27

Il devrait afficher le ModelTabletModeSwitchUnreliable bizarrerie.

Redémarrez votre ordinateur, et le SW_TABLET_MODE doivent être ignorés.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X