Co robi opcja jądra „i8042.nomux = 1” podczas uruchamiania systemu Ubuntu?

23

Mam laptopa z touchpadem dla wielu gości. Mój touchpad nigdy nie działa w żadnej dystrybucji Linuksa, takiej jak Ubuntu, Fedora, openSUSE, Linux Mint, Knoppix, Puppy, Slitaz i wiele innych. Próbowałem wielu rzeczy, ale nic nie działało. Walczę ze sterownikami Synaptics od ponad roku, ale to też nie działa.

Potem gdzieś przeczytałem o i8042.nomuxopcji jądra. Więc uruchomiłem Ubuntu z następującymi opcjami:

i8042.nomux=1 i8042.reset

To sprawiło, że mój touchpad działa na wszystkich wariantach Ubuntu i jego pochodnych, takich jak Linux Mint.

Chcę wiedzieć o tych opcjach. Gdybym wiedział, co dokładnie robi, byłbym w stanie używać mojego touchpada we wszystkich dystrybucjach Linuksa, ponieważ ta opcja działa tylko z Ubuntu.

Suyash Mohan
źródło

Odpowiedzi:

29

Jest to tajemna opcja, niezbędna tylko na niektórych rzadkich urządzeniach (z których jedno masz). Jedyną dokumentacją jest jeden wiersz na liście parametrów jądra .

Kontroler i8042 kontroluje klawiatury PS / 2 i myszy na komputerach PC. Wygląda na to, że na laptopie klawiatura i touchpad są połączone przez ten układ.

Z tego, co rozumiem z nazwy opcji i krótkiego przeglądu kodu źródłowego (nie polegaj na tym, aby napisać sterownik i8042!), Niektóre układy i8042 są zdolne do multipleksowania danych pochodzących z wielu urządzeń wskazujących. Tradycyjny interfejs PS / 2 zapewnia tylko jedną klawiaturę i jedną mysz; nowoczesne laptopy często mają dwa lub więcej touchpadów, suwak i zewnętrzną wtyczkę PS / 2. Niektóre kontrolery są zgodne z aktywną specyfikacją multipleksowania PS / 2 , która dopuszcza do 4 urządzeń; dane przesyłane przez każde urządzenie zawierają wskazanie, z którego urządzenia pochodzą.

Sterownik Linux próbuje dowiedzieć się, czy kontroler i8042 obsługuje multipleksowanie, ale czasami zgaduje niepoprawnie. Dzięki temu i8042.nomux=1parametrowi sterownik nie próbuje wykryć, czy kontroler obsługuje multipleksowanie i zakłada, że ​​nie. Dzięki temu i8042.resetparametrowi sterownik resetuje kontroler podczas uruchamiania, co może być przydatne do wyłączenia trybu multipleksowania, jeśli kontroler obsługuje go, ale w błędny sposób.

Gilles „SO- przestań być zły”
źródło
1
Ponieważ jest to polecenie jądra, czy mogę używać tego polecenia w każdej dystrybucji Linuksa podczas uruchamiania?
Suyash Mohan
2
@ZealKaiser Tak, ten parametr jest częścią standardowego jądra, będzie istniał w każdej dystrybucji.
Gilles „SO- przestań być zły”
Czy jest jakiś sposób, aby dowiedzieć się, czy moje uruchomione jądro ma włączone lub wyłączone multipleksowanie?
André Puel,
2
@ AndréPuel Sprawdź, czy /proc/cmdlinezawiera i8042.nomux=1(jeśli sterownik jest w jądrze) lub wartość /sys/module/i8042/parameters/nomux(jeśli sterownik jest w module). Jeśli znajdziesz niezerową wartość dla nomux, multipleksowanie jest wyłączone, w przeciwnym razie jest włączone.
Gilles „SO- przestań być zły”