Que fait l'option de noyau «i8042.nomux = 1» pendant le démarrage d'Ubuntu?

23

J'ai un ordinateur portable avec un pavé tactile multi-invité. Mon pavé tactile ne fonctionne jamais dans aucune distribution Linux comme Ubuntu, Fedora, openSUSE, Linux Mint, Knoppix, Puppy, Slitaz et bien d'autres. J'ai essayé beaucoup de choses mais rien n'a fonctionné. Je lutte avec les pilotes Synaptics depuis plus d'un an, mais cela ne fonctionne pas non plus.

Puis quelque part, j'ai lu sur l' i8042.nomuxoption du noyau. J'ai donc démarré Ubuntu avec les options suivantes:

i8042.nomux=1 i8042.reset

Cela a permis à mon pavé tactile de fonctionner sur toutes les variantes d'Ubuntu et de ses dérivés comme Linux Mint.

J'ai hâte de connaître ces options. Si je savais exactement ce qu'il fait, je serais en mesure d'utiliser mon pavé tactile dans toutes les distributions Linux, car cette option ne fonctionne qu'avec Ubuntu.

Suyash Mohan
la source

Réponses:

29

Il s'agit d'une option mystérieuse, uniquement nécessaire sur certains appareils rares (dont l'un que vous avez). La seule documentation est une ligne dans la liste des paramètres du noyau .

Le contrôleur i8042 contrôle les claviers et souris PS / 2 dans les PC. Il semble que sur votre ordinateur portable, le clavier et le pavé tactile sont connectés via cette puce.

D'après ce que je comprends du nom de l'option et d'un bref survol du code source (ne vous y fiez pas pour écrire un pilote i8042!), Certaines puces i8042 sont capables de multiplexer des données provenant de plusieurs périphériques de pointage. L'interface PS / 2 traditionnelle ne prévoit qu'un clavier et une souris; les ordinateurs portables modernes ont souvent deux ou plus d'un pavé tactile, un trackstick et une prise PS / 2 externe. Certains contrôleurs suivent la spécification de multiplexage PS / 2 active , qui autorise jusqu'à 4 périphériques; les données envoyées par chaque appareil portent une indication de quel appareil il provient.

Le pilote Linux essaie de savoir si le contrôleur i8042 prend en charge le multiplexage, mais parfois en devinant à tort. Avec le i8042.nomux=1paramètre, le pilote n'essaie pas de détecter si le contrôleur prend en charge le multiplexage et suppose que non. Avec le i8042.resetparamètre, le pilote réinitialise le contrôleur au démarrage, ce qui peut être utile pour désactiver le mode de multiplexage si le contrôleur le prend en charge, mais de manière boguée.

Gilles 'SO- arrête d'être méchant'
la source
1
Puisqu'il s'agit d'une commande de noyau, puis-je utiliser cette commande dans chaque distribution Linux pendant le démarrage?
Suyash Mohan
2
@ZealKaiser Oui, ce paramètre fait partie du noyau standard, il existera sur chaque distribution.
Gilles 'SO- arrête d'être méchant'
Existe-t-il un moyen de savoir si mon noyau en cours d'exécution est activé ou désactivé par multiplexage?
André Puel
2
@ AndréPuel Vérifiez si /proc/cmdlinecontient i8042.nomux=1(si le pilote est dans le noyau) ou la valeur de /sys/module/i8042/parameters/nomux(si le pilote est dans un module). Si vous trouvez une valeur non nulle pour nomux, le multiplexage est désactivé, sinon il est activé.
Gilles 'SO- arrête d'être méchant'