Що робить параметр ядра '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.