Apa yang dilakukan opsi kernel 'i8042.nomux = 1' saat boot Ubuntu?

23

Saya punya laptop dengan touchpad multi-guesture. Touchpad saya tidak pernah berfungsi di distro Linux apa pun seperti Ubuntu, Fedora, openSUSE, Linux Mint, Knoppix, Puppy, Slitaz dan banyak lagi. Saya sudah mencoba banyak hal tetapi tidak ada yang berhasil. Saya telah berjuang dengan driver Synaptics selama lebih dari satu tahun tetapi tidak berhasil juga.

Kemudian di suatu tempat saya membaca tentang i8042.nomuxopsi kernel. Jadi saya mem-boot Ubuntu dengan opsi berikut:

i8042.nomux=1 i8042.reset

Ini membuat touchpad saya berfungsi pada semua varian Ubuntu dan turunannya seperti Linux Mint.

Saya ingin tahu tentang opsi ini. Jika saya tahu persis apa fungsinya, saya akan dapat menggunakan touchpad saya di semua distro linux, karena opsi ini hanya berfungsi dengan Ubuntu.

Suyash Mohan
sumber

Jawaban:

29

Ini adalah opsi misterius, hanya diperlukan pada beberapa perangkat langka (salah satunya Anda miliki). Dokumentasi hanya satu baris dalam daftar parameter kernel .

Kontroler i8042 mengontrol keyboard dan mouse PS / 2 di PC. Tampaknya pada laptop Anda, keyboard dan touchpad tersambung melalui chip itu.

Dari apa yang saya pahami dari nama pilihan dan skim singkat dari kode sumber (tidak bergantung pada ini untuk menulis driver i8042!), Beberapa i8042 chip mampu multiplexing data yang berasal dari beberapa perangkat menunjuk. Antarmuka PS / 2 tradisional hanya menyediakan satu keyboard dan satu mouse; laptop modern sering memiliki dua atau lebih touchpad, trackstick dan steker PS / 2 eksternal. Beberapa pengendali mengikuti spesifikasi multiplexing PS / 2 yang aktif , yang memungkinkan hingga 4 perangkat; data yang dikirim oleh masing-masing perangkat membawa indikasi dari mana perangkat itu berasal.

Driver Linux mencoba mencari tahu apakah pengontrol i8042 mendukung multiplexing, tetapi terkadang menebak dengan salah. Dengan i8042.nomux=1parameter, driver tidak mencoba mendeteksi apakah controller mendukung multiplexing dan menganggap itu tidak. Dengan i8042.resetparameter, driver me-reset pengontrol saat memulai, yang mungkin berguna untuk menonaktifkan mode multiplexing jika pengontrol benar-benar mendukungnya tetapi dengan cara kereta.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
Karena ini adalah perintah kernel, dapatkah saya menggunakan perintah ini di setiap distro linux selama boot?
Suyash Mohan
2
@ ZealKaiser Ya, parameter ini adalah bagian dari kernel standar, itu akan ada di setiap distribusi.
Gilles 'SO- stop being evil'
Apakah ada cara untuk mengetahui apakah kernel saya berjalan dengan multiplexing hidup atau mati?
André Puel
2
@ AndréPuel Periksa apakah /proc/cmdlineberisi i8042.nomux=1(jika driver ada di kernel) atau nilai /sys/module/i8042/parameters/nomux(jika driver ada di modul). Jika Anda menemukan nilai bukan nol untuk nomux, multiplexing tidak aktif, jika tidak aktif.
Gilles 'SO- berhenti menjadi jahat'