Cosa fa l'opzione del kernel 'i8042.nomux = 1' durante l'avvio di Ubuntu?


23

Ho un laptop con un touchpad multi-guesture. Il mio touchpad non funziona mai in alcuna distribuzione Linux come Ubuntu, Fedora, openSUSE, Linux Mint, Knoppix, Puppy, Slitaz e molti altri. Ho provato molte cose ma niente ha funzionato. Ho lottato con i driver Synaptics per oltre un anno, ma non funziona neanche.

Poi da qualche parte ho letto i8042.nomuxdell'opzione del kernel. Quindi ho avviato Ubuntu con le seguenti opzioni:

i8042.nomux=1 i8042.reset

Questo ha fatto funzionare il mio touchpad su tutte le varianti di Ubuntu e dei suoi derivati ​​come Linux Mint.

Sono ansioso di conoscere queste opzioni. Se sapessi esattamente cosa fare, sarei in grado di utilizzare il mio touchpad in tutte le distribuzioni di Linux, poiché questa opzione funziona solo con Ubuntu.

Risposte:


29

Questa è un'opzione arcana, necessaria solo su alcuni dispositivi rari (uno dei quali hai). L'unica documentazione è una riga nell'elenco dei parametri del kernel .

Il controller i8042 controlla tastiere e mouse PS / 2 nei PC. Sembra che sul tuo laptop sia la tastiera che il touchpad siano collegati tramite quel chip.

Da quello che ho capito dal nome dell'opzione e da una breve descrizione del codice sorgente (non fare affidamento su questo per scrivere un driver i8042!), Alcuni chip i8042 sono in grado di multiplexare i dati provenienti da più dispositivi di puntamento. La tradizionale interfaccia PS / 2 prevede solo una tastiera e un mouse; i laptop moderni hanno spesso due o più touchpad, un trackstick e una presa PS / 2 esterna. Alcuni controller seguono le specifiche di multiplexing PS / 2 attive , che consentono fino a 4 dispositivi; i dati inviati da ciascun dispositivo portano un'indicazione del dispositivo da cui provengono.

Il driver Linux tenta di scoprire se il controller i8042 supporta il multiplexing, ma a volte indovina in modo errato. Con il i8042.nomux=1parametro, il driver non tenta di rilevare se il controller supporta il multiplexing e presuppone che non lo sia. Con il i8042.resetparametro, il driver ripristina il controller all'avvio, il che può essere utile per disabilitare la modalità multiplex se il controller lo supporta ma in modo errato.


1
Dato che questo è un comando del kernel, posso usare questo comando in ogni distribuzione Linux durante l'avvio?
Suyash Mohan,

2
@ZealKaiser Sì, questo parametro fa parte del kernel standard, esisterà su ogni distribuzione.
Gilles 'SO- smetti di essere malvagio' l'

C'è un modo per scoprire se il mio kernel in esecuzione è attivato o disattivato in multiplexing?
André Puel,

2
@ AndréPuel Controlla se /proc/cmdlinecontiene i8042.nomux=1(se il driver è nel kernel) o il valore di /sys/module/i8042/parameters/nomux(se il driver è in un modulo). Se trovi un valore nomuxdiverso da zero per , il multiplexing è disattivato, altrimenti è attivo.
Gilles 'SO- smetti di essere malvagio' il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.