Что делает опция ядра 'i8042.nomux = 1' во время загрузки Ubuntu?


23

У меня есть ноутбук с сенсорной панелью для нескольких гостей. Моя сенсорная панель никогда не работает ни в одном дистрибутиве Linux, таком как Ubuntu, Fedora, openSUSE, Linux Mint, Knoppix, Puppy, Slitaz и многих других. Я много чего перепробовал, но ничего не получалось. Я боролся с драйверами Synaptics более года, но это тоже не работает.

Потом где-то читал про i8042.nomuxвариант ядра. Поэтому я загрузил Ubuntu со следующими опциями:

i8042.nomux=1 i8042.reset

Это заставило мой тачпад работать на всех вариантах Ubuntu и его производных, таких как Linux Mint.

Я хочу знать об этих вариантах. Если бы я точно знал, что он делает, я бы смог использовать свою сенсорную панель во всех дистрибутивах Linux, поскольку эта опция работает только с Ubuntu.

Ответы:


29

Это загадочный вариант, необходимый только на некоторых редких устройствах (одно из которых у вас есть). Единственная документация - одна строка в списке параметров ядра .

Контроллер i8042 управляет клавиатурами и мышами PS / 2 на ПК. Похоже, что на вашем ноутбуке клавиатура и тачпад подключены через этот чип.

Из того, что я понимаю из названия опции и краткого обзора исходного кода (не полагайтесь на это при написании драйвера i8042!), Некоторые микросхемы i8042 способны мультиплексировать данные, поступающие с нескольких указательных устройств. Традиционный интерфейс PS / 2 предусматривает только одну клавиатуру и одну мышь; Современные ноутбуки часто имеют два или более сенсорной панели, трекстик и внешний разъем PS / 2. Некоторые контроллеры следуют активной спецификации мультиплексирования PS / 2 , что позволяет использовать до 4 устройств; данные, отправляемые каждым устройством, содержат информацию о том, с какого устройства оно поступило.

Драйвер Linux пытается выяснить, поддерживает ли контроллер i8042 мультиплексирование, но иногда ошибается. С помощью i8042.nomux=1параметра драйвер не пытается определить, поддерживает ли контроллер мультиплексирование, и предполагает, что это не так. С помощью i8042.resetпараметра драйвер сбрасывает контроллер при запуске, что может быть полезно для отключения режима мультиплексирования, если контроллер его поддерживает, но с ошибками.


1
Поскольку это команда ядра, могу ли я использовать эту команду в каждом дистрибутиве Linux во время загрузки?
Суяш Мохан

2
@ZealKaiser Да, этот параметр является частью стандартного ядра, он будет существовать в каждом дистрибутиве.
Жиль "ТАК - перестань быть злым"

Есть ли способ узнать, работает ли мое работающее ядро ​​с мультиплексированием?
Андре Пуель

2
@ AndréPuel Проверьте, /proc/cmdlineсодержит ли i8042.nomux=1(если драйвер находится в ядре) или значение /sys/module/i8042/parameters/nomux(если драйвер находится в модуле). Если вы найдете ненулевое значение для nomux, мультиплексирование отключено, иначе оно включено.
Жиль "ТАК - перестать быть злым"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.