¿Qué hace la opción de kernel 'i8042.nomux = 1' durante el arranque de Ubuntu?

23

Tengo una computadora portátil con un touchpad multi huésped. Mi touchpad nunca funciona en ninguna distribución de Linux como Ubuntu, Fedora, openSUSE, Linux Mint, Knoppix, Puppy, Slitaz y mucho más. He intentado muchas cosas pero nada funcionó. He estado luchando con los controladores Synaptics durante más de un año, pero tampoco funciona.

Luego, en algún lugar, leí sobre la i8042.nomuxopción del kernel. Entonces inicié Ubuntu con las siguientes opciones:

i8042.nomux=1 i8042.reset

Esto hizo que mi touchpad funcionara en todas las variantes de Ubuntu y sus derivados como Linux Mint.

Estoy ansioso por saber acerca de estas opciones. Si supiera exactamente lo que hace, podría usar mi panel táctil en todas las distribuciones de Linux, ya que esta opción solo funciona con Ubuntu.

Suyash Mohan
fuente

Respuestas:

29

Esta es una opción arcana, solo necesaria en algunos dispositivos raros (uno de los cuales tiene). La única documentación es una línea en la lista de parámetros del kernel .

El controlador i8042 controla los teclados y ratones PS / 2 en las PC. Parece que en su computadora portátil, tanto el teclado como el panel táctil están conectados a través de ese chip.

Por lo que entiendo por el nombre de la opción y una breve descripción del código fuente (¡no confíe en esto para escribir un controlador i8042!), Algunos chips i8042 son capaces de multiplexar datos provenientes de múltiples dispositivos señaladores. La interfaz PS / 2 tradicional solo proporciona un teclado y un mouse; Las computadoras portátiles modernas a menudo tienen dos o más de un panel táctil, un trackstick y un enchufe externo PS / 2. Algunos controladores siguen la especificación de multiplexación PS / 2 activa , que permite hasta 4 dispositivos; los datos enviados por cada dispositivo llevan una indicación de qué dispositivo proviene.

El controlador de Linux intenta averiguar si el controlador i8042 admite la multiplexación, pero a veces adivina mal. Con el i8042.nomux=1parámetro, el controlador no intenta detectar si el controlador admite multiplexación y asume que no. Con el i8042.resetparámetro, el controlador reinicia el controlador cuando se inicia, lo que puede ser útil para deshabilitar el modo de multiplexación si el controlador lo admite pero con errores.

Gilles 'SO- deja de ser malvado'
fuente
1
Dado que este es un comando del núcleo, ¿puedo usar este comando en cada distribución de Linux durante el arranque?
Suyash Mohan
2
@ZealKaiser Sí, este parámetro es parte del núcleo estándar, existirá en cada distribución.
Gilles 'SO- deja de ser malvado'
¿Hay alguna forma de averiguar si mi kernel en ejecución tiene la multiplexación activada o desactivada?
André Puel
2
@ AndréPuel Compruebe si /proc/cmdlinecontiene i8042.nomux=1(si el controlador está en el núcleo) o el valor de /sys/module/i8042/parameters/nomux(si el controlador está en un módulo). Si encuentra un valor distinto de cero para nomux, la multiplexación está desactivada, de lo contrario está activada.
Gilles 'SO- deja de ser malvado'