'i8042.nomux=1' 内核选项在 Ubuntu 启动期间有什么作用?

Suy*_*han 27 linux ubuntu kernel touchpad

我有一台带有多用途触摸板的笔记本电脑。我的触摸板在任何 Linux 发行版中都无法使用,例如 Ubuntu、Fedora、openSUSE、Linux Mint、Knoppix、Puppy、Slitaz 等等。我尝试了很多东西,但没有任何效果。一年多来,我一直在努力使用 Synaptics 驱动程序,但它也不起作用。

然后在某处我读到了i8042.nomux内核选项。所以我用以下选项启动了 Ubuntu:

i8042.nomux=1 i8042.reset
Run Code Online (Sandbox Code Playgroud)

这使我的触摸板适用于 Ubuntu 及其衍生产品(如 Linux Mint)的所有变体。

我很想知道这些选项。如果我确切地知道它的作用,我将能够在所有 linux 发行版中使用我的触摸板,因为此选项仅适用于 Ubuntu。

Gil*_*il' 36

这是一个神秘的选项,仅在某些稀有设备(您拥有其中一个)上才需要。唯一的文档是内核参数列表中的一行。

i8042 控制器控制PC 中的PS/2键盘和鼠标。似乎在您的笔记本电脑上,键盘和触摸板都是通过该芯片连接的。

从我从选项名称和源代码的简要浏览中了解到(不要依赖于此来编写 i8042 驱动程序!),一些 i8042 芯片能够多路复用来自多个指针设备的数据。传统的PS/2接口只提供一键盘一鼠标;现代笔记本电脑通常有两个或多个触摸板、一个轨迹杆和一个外部 PS/2 插头。一些控制器遵循主动 PS/2 多路复用规范,最多允许 4 个设备;每个设备发送的数据都带有它来自哪个设备的指示。

Linux驱动试图找出i8042控制器是否支持多路复用,但有时会猜错。使用该i8042.nomux=1参数,驱动程序不会尝试检测控制器是否支持多路复用,并假设它不支持。使用该i8042.reset参数,驱动程序在启动时重置控制器,如果控制器确实支持多路复用模式,但以错误的方式禁用多路复用模式,这可能很有用。

  • @ZealKaiser 是的,此参数是标准内核的一部分,它将存在于每个发行版中。 (3认同)
  • @AndréPuel 检查 `/proc/cmdline` 是否包含 `i8042.nomux=1`(如果驱动程序在内核中)或 `/sys/module/i8042/parameters/nomux` 的值(如果驱动程序在内核中)模块)。如果您发现 `nomux` 的非零值,则多路复用关闭,否则开启。 (2认同)