Was bewirkt die Kernel-Option 'i8042.nomux = 1' beim Booten von Ubuntu?

23

Ich habe einen Laptop mit einem Multi-Guesture-Touchpad. Mein Touchpad funktioniert in keiner Linux-Distribution wie Ubuntu, Fedora, openSUSE, Linux Mint, Knoppix, Puppy, Slitaz und vielen mehr. Ich habe viele Dinge ausprobiert, aber nichts hat funktioniert. Ich habe über ein Jahr lang mit den Synaptics-Treibern zu kämpfen, aber es funktioniert auch nicht.

Dann habe ich irgendwo etwas über die i8042.nomuxKernel-Option gelesen . Also habe ich Ubuntu mit folgenden Optionen gebootet:

i8042.nomux=1 i8042.reset

Dadurch funktionierte mein Touchpad auf allen Varianten von Ubuntu und seinen Derivaten wie Linux Mint.

Ich bin gespannt auf diese Möglichkeiten. Wenn ich genau wüsste, was es macht, könnte ich mein Touchpad in allen Linux-Distributionen verwenden, da diese Option nur mit Ubuntu funktioniert.

Suyash Mohan
quelle

Antworten:

29

Dies ist eine arkane Option, die nur bei einigen seltenen Geräten (von denen Sie eines haben) erforderlich ist. Die einzige Dokumentation ist eine Zeile in der Liste der Kernelparameter .

Der i8042-Controller steuert PS / 2- Tastaturen und -Mäuse in PCs. Es scheint, dass auf Ihrem Laptop sowohl die Tastatur als auch das Touchpad über diesen Chip verbunden sind.

Von dem, was ich aus dem Optionsnamen und eine kurzen Skim des verstehen Quellcode (Verlassen Sie sich nicht auf diesem einen i8042 - Treiber zu schreiben!), Sind einig i8042 - Chips in der Lage , das Multiplexen von Daten aus mehreren Zeigegeräten kommen. Die herkömmliche PS / 2-Schnittstelle bietet nur eine Tastatur und eine Maus. Moderne Laptops verfügen häufig über ein Touchpad, einen Trackstick und einen externen PS / 2-Stecker. Einige Controller folgen der aktiven PS / 2-Multiplexspezifikation , die bis zu 4 Geräte zulässt. Die von jedem Gerät gesendeten Daten enthalten eine Angabe darüber, von welchem ​​Gerät sie stammen.

Der Linux-Treiber versucht herauszufinden, ob der i8042-Controller Multiplexing unterstützt, rät aber manchmal falsch. Mit dem i8042.nomux=1Parameter versucht der Treiber nicht festzustellen, ob der Controller Multiplexing unterstützt, und geht davon aus, dass dies nicht der Fall ist. Mit dem i8042.resetParameter setzt der Treiber den Controller beim Start zurück. Dies kann nützlich sein, um den Multiplexing-Modus zu deaktivieren, wenn der Controller dies unterstützt, jedoch fehlerhaft.

Gilles 'SO - hör auf böse zu sein'
quelle
1
Da dies ein Kernel-Befehl ist, kann ich diesen Befehl während des Bootens in jeder Linux-Distribution verwenden?
Suyash Mohan
2
@ZealKaiser Ja, dieser Parameter ist Teil des Standard-Kernels und wird in jeder Distribution vorhanden sein.
Gilles 'SO - hör auf böse zu sein'
Gibt es eine Möglichkeit herauszufinden, ob mein laufender Kernel Multiplexing aktiviert oder deaktiviert hat?
André Puel
2
@ AndréPuel Prüfe ob /proc/cmdlineenthält i8042.nomux=1(wenn sich der Treiber im Kernel befindet) oder den Wert von /sys/module/i8042/parameters/nomux(wenn sich der Treiber in einem Modul befindet). Wenn Sie einen Wert ungleich Null für finden nomux, ist das Multiplexen deaktiviert, andernfalls ist es aktiviert.
Gilles 'SO- hör auf böse zu sein'