Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I have a laptop with a multi guesture touchpad. My touchpad never works in any Linux distro such as Ubuntu, Fedora, openSUSE, Linux Mint, Knoppix, Puppy, Slitaz and lots more. I have tried lots of things but nothing worked. I have been struggling with the Synaptics drivers for over one year but it doesn't work either.

Then somewhere I read about the i8042.nomux kernel option. So I booted Ubuntu with following options:

i8042.nomux=1 i8042.reset

This made my touchpad work on all variants of Ubuntu and its derivatives like Linux Mint.

I am eager to know about these options. If I knew what it does exactly, I would be able to use my touchpad in all linux distros, as this option only works with Ubuntu.

share|improve this question

1 Answer 1

up vote 4 down vote accepted

This is an arcane option, only necessary on some rare devices (one of which you have). The only documentation is one line in the kernel parameters list.

The i8042 controller controls PS/2 keyboards and mice in PCs. It seems that on your laptop, both the keyboard and the touchpad are connected through that chip.

From what I understand from the option name and a brief skim of the source code (don't rely on this to write an i8042 driver!), some i8042 chips are capable of multiplexing data coming from multiple pointing devices. The traditional PS/2 interface only provides for one keyboard and one mouse; modern laptops often have a two or more of a touchpad, a trackstick and an external PS/2 plug. Some controllers follow the active PS/2 multiplexing specification, which permit up to 4 devices; the data sent by each device carries an indication of which device it comes from.

The Linux driver tries to find out whether the i8042 controller supports multiplexing, but sometimes guessing wrongly. With the i8042.nomux=1 parameter, the driver does not try to detect whether the controller supports multiplexing and assumes that it doesn't. With the i8042.reset parameter, the driver resets the controller when starting, which may be useful to disable multiplexing mode if the controller does support it but in a buggy way.

share|improve this answer
    
Since this is a kernel command, can I use this command in every linux distro during booting? –  Suyash Mohan Jan 11 '12 at 9:49
1  
@ZealKaiser Yes, this parameter is part of the standard kernel, it'll exist on every distribution. –  Gilles Jan 11 '12 at 10:00
    
Is there any way to find out if my running kernel is with multiplexing on or off? –  André Puel Dec 6 '12 at 14:20
    
@AndréPuel Check if /proc/cmdline contains i8042.nomux=1 (if the driver is in the kernel) or the value of /sys/module/i8042/parameters/nomux (if the driver is in a module). If you find a nonzero value for nomux, multiplexing is off, otherwise it's on. –  Gilles Dec 6 '12 at 14:48

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.