33

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.

1
  • 2
    9 years on, this "bug" is still screwing over users (like me) Dec 12, 2021 at 6:37

1 Answer 1

41

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.

5
  • 1
    Since this is a kernel command, can I use this command in every linux distro during booting? Jan 11, 2012 at 9:49
  • 3
    @ZealKaiser Yes, this parameter is part of the standard kernel, it'll exist on every distribution. Jan 11, 2012 at 10:00
  • 1
    Is there any way to find out if my running kernel is with multiplexing on or off? Dec 6, 2012 at 14:20
  • 2
    @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. Dec 6, 2012 at 14:48
  • i8042.nomux=1 seems to have been enough for me. No need for i8042.reset.
    – Timo
    Oct 3, 2021 at 18:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .