Apakah ada cara untuk "me-restart" driver touchpad?

64

Saya menggunakan Ubuntu 14.04 pada laptop, biasanya dengan mouse usb eksternal dan keyboard dan layar terhubung. Namun, kadang-kadang, saya mencabut semuanya dan memindahkan laptop dan terus menggunakannya dengan keyboard, layar, dan touchpad bawaan.

Pada waktu yang acak itu terjadi bahwa touchpad berhenti bekerja (tetapi jika saya pasang mouse usb, mouse usb tidak berfungsi). Meskipun ini sangat jarang terjadi, ketika itu terjadi itu adalah gangguan besar, karena saya dipaksa untuk reboot jika saya membutuhkan touchpad untuk bekerja lagi.

Apakah ada beberapa solusi yang dapat saya coba, seperti membunuh beberapa proses yang secara otomatis restart, atau beberapa perintah yang akan menyebabkan driver touchpad untuk memulai kembali atau menyegarkan atau sesuatu? Adakah yang bisa "membangunkan" touchpad tanpa harus reboot?

matteo
sumber
Terkadang menutup layar laptop dan membuka kembali menyelesaikan masalah.
ilusionis

Jawaban:

32

Saya mengalami masalah dengan satu laptop berulang kali sampai saya perhatikan bahwa touchpad komputer itu memiliki tombol On / Off sendiri yang pasti saya pukul secara tidak sengaja. Khususnya, saklar tidak membantu untuk menyalakannya kembali. Saya hanya berhati-hati untuk tidak menekannya, dan tak lama kemudian saya menggunakan keyboard nirkabel eksternal dengan touchpad nirkabel terintegrasi, dan saya tidak lagi mengalami masalah itu sejak itu.

UPDATE: (Catatan: tautan di bawah ini rusak, solusinya di atas) Karena memposting "solusi" ini, saya memposting komentar yang tampaknya memenuhi kebutuhan pengguna. Baru saja mengetahui bahwa komentar tetap sementara dan secara otomatis dihapus, saya memposting ulang konten komentar yang berguna di bawah ini agar dapat disimpan untuk orang lain:

Saya membagikan "solusi" yang berhasil untuk saya. Hari ini terpikir oleh saya untuk mencari solusi yang lebih dekat dengan pertanyaan awal Anda dan menemukan tautan berikut. Itu bukan apa yang saya pribadi anggap "nyaman", tapi setidaknya bisa lebih elegan dengan membuatnya menjadi skrip. Saya menemukan ini (lihat di bawah) - gyropyge 25 Sep pukul 20:06

Tekan Alt+ F2dan ketikkan gksudo modprobe -r psmouseKetikkan kata sandi, tekan Enter, lalu tekan Alt+ F2lagi untuk memasukkan yang berikut ini gksudo modprobe psmousedan kemudian tekanEnter

Gyropyge
sumber
bukan kasus saya,
matteo
2
Saya membagikan "solusi" yang berhasil untuk saya. Hari ini terpikir oleh saya untuk mencari solusi yang lebih dekat dengan pertanyaan awal Anda dan menemukan tautan berikut. Itu bukan apa yang saya pribadi anggap "nyaman", tetapi setidaknya bisa menjadi lebih elegan dengan menjadikannya sebuah skrip. tuxtrix.com/2010/06/…
gyropyge
Terima kasih! Saya telah menandai jawaban Anda sebagai jawaban yang diterima meskipun jawabannya sebenarnya ada di komentar Anda (well, saya belum punya kesempatan untuk mengujinya tetapi sepertinya itu solusinya).
matteo
Terima kasih atas pertimbangan komentar saya sesudahnya. Saya juga mungkin mendapatkan manfaat dari solusi itu di masa depan, karena solusi saya untuk mencoba tidak menekan tombol yang mudah dipukul yang membatasi tepi touch-pad belum terlalu memuaskan.
gyropyge
1
Tautan berfungsi untuk saya, tetapi untuk berjaga-jaga: Jika Anda macet tanpa gerakan mouse di laptop (touchpad), lalu tekan kombinasi tombol Alt + F2 dan ketik gksudo modprobe -r psmouse Ketikkan kata sandi, tekan enter, dan kemudian tekan Alt + F2 lagi untuk memasukkan psmouse gksudo modprobe berikut
G Trawo
58

Saya menemukan cara untuk melakukan ini:

Pertama, buka terminal, dan cetak semua perangkat input untuk menemukan id yang Anda butuhkan untuk perangkat input yang ingin Anda nonaktifkan. Di terminal, ketik:

xinput --list

Berikutnya: Perhatikan di mana tertulis id = X dalam satu kolom panjang untuk setiap perangkat input. Anda ingin menemukan id perangkat yang sesuai dengan perangkat input yang ingin Anda nonaktifkan (Mungkin sesuatu yang terdengar seperti "touchpad"). Kemudian ganti X pada perintah berikut dengan nomor id yang mewakili perangkat input yang ingin Anda nonaktifkan:

xinput disable X

Catatan: Jika Anda tidak yakin id perangkat mana yang harus Anda gunakan untuk menonaktifkan touchpad, maka Anda dapat mengetahuinya dengan menguji id acak dan melihat apakah alas mouse Anda masih berfungsi. Pastikan Anda TIDAK MELAKUKAN APA PUN. Simpan semua pekerjaan Anda dan bersiaplah untuk me-restart komputer Anda jika Anda melakukan sesuatu seperti menonaktifkan keyboard Anda. (Anda mungkin mengalami kesulitan mencoba mengaktifkannya kembali jika Anda tidak dapat mengetik ke terminal.

Maka Anda harus menjalankan baris terakhir ini (Terima kasih telah menangkap Arch Stanton ini!)

xinput enable X

Alasan: Saya sangat membutuhkan jawaban untuk masalah ini karena masalah yang saya alami dengan touchpad membuat pekerjaan apa pun menjadi mustahil. Tiba-tiba, pada saat-saat acak ketika menggunakan laptop saya, tanpa alasan jelas, touchpad saya masuk ke semacam "mode khusus". Hanya menggerakkan satu jari pada touchpad saya akan menyebabkan layar bergulir, bukannya benar-benar menggerakkan kursor mouse pada layar sehingga tidak mungkin untuk mendapatkan mouse untuk melayang di atas apa pun di broswer tanpa upaya koordinasi yang cukup besar untuk memperhitungkan layar bergulir. dan mouse yang tidak bergerak. Saya ingin menemukan cara, TANPA MEMULAI LAPTOP, untuk mereset touchpad. Di sisi positifnya, mengatur ulang touchpad dengan metode di atas sebenarnya memperbaiki masalah saya.

Pembaruan: Untuk membuat menyetel ulang touchpad lebih mudah, saya membuat hotkey untuk perintah yang tercantum di atas. Ketika touchpad saya menggunakan fritz, saya cukup melakukan kombinasi tombol ctrl + super + r dan melakukan reset untuk saya. Cepat dan mudah.

Begini caranya:

-Buat file di dalam direktori home Anda dan beri nama "touchpad-reset.sh".

-Dalam file ini, masukkan dua dari tiga (dua terakhir) perintah sebelumnya yang tercantum di atas kecuali, daripada menggunakan nomor id X untuk perangkat, karena itu dapat berubah dengan perangkat tambahan (mungkin ??) Anda dapat menggunakan ini sebagai gantinya:

Berikut ini adalah output dari komputer saya di dalam terminal menggunakan commmand ini:

xinput --list

Hasil:

Virtual core pointer                        id=2    [master pointer  (3)]⎜   
   ↳ Virtual core XTEST pointer                 id=4    [slave  pointer  (2)]⎜   
   ↳ Genius 2.4G Wireless Mouse                 id=10   [slave  pointer  (2)]⎜   
   ↳ MSFT0001:00 06CB:75BD UNKNOWN              id=13   [slave  pointer  (2)]⎜   
   ↳ ELAN Touchscreen                           id=12   [slave  pointer  (2)]⎜ 

-Sekarang apa yang Anda lakukan, Anda mengganti X (yang merupakan id sebelumnya) untuk xinput menonaktifkan X dan xinput mengaktifkan X dengan nama yang sesuai dengan id di dalam tanda kutip tunggal. Misalnya, dari yang di atas, jika Anda ingin melakukannya untuk id = 13, perangkat touchpad saya, Anda akan menggunakan:

xinput disable 'MSFT0001:00 06CB:75BD UNKNOWN'
xinput enable 'MSFT0001:00 06CB:75BD UNKNOWN'

-Jadi sekarang, Anda menonaktifkan berdasarkan nama bukan nomor ID, di mana id dapat berubah waktu dan kemudian Anda akan menonaktifkan dan mengaktifkan beberapa perangkat lain.

Akhirnya, Anda perlu memberikan izin untuk membuat file ini dapat dieksekusi; jalankan perintah ini dengan direktori kerja Anda di terminal sebagai direktori home Anda (tempat Anda membuat file):

chmod +x your_script_name.sh

Jadi, begitu Anda membuat file ini dengan perintah yang sesuai yang tertulis di dalamnya, pastikan itu ada di direktori home Anda, ambil langkah-langkah berikut di bawah ini:

  1. Tekan tombol super (tombol windows pada PC) pada keyboard untuk memunculkan bilah sisi kesatuan. Ketik 'pengaturan sistem' dan tekan tombol enter.
  2. Temukan opsi 'Keyboard' di bawah tulisan 'Hardware' dan klik.
  3. Pilih tab 'Pintasan'.
  4. Di jendela kiri, pilih 'Pintasan Khusus'
  5. Klik tombol + di dekat bagian tengah bawah.
  6. Sebuah jendela akan muncul meminta nama deskripsi dan perintah untuk dimasukkan.
  7. Jadikan namanya seperti "reset touchpad"
  8. Gunakan perintah ini: gnome-terminal -x ./name_of_your_script.sh
  9. Klik pada 'Terapkan'
  10. Anda sekarang akan melihat jalan pintas Anda terdaftar dan di paling kanan itu harus tertulis "Dinonaktifkan" atau beberapa sampah lainnya. Klik pada teks itu dan bersiaplah untuk membuat semacam kombinasi tombol, mungkin seperti ctrl + super + r.
  11. Setelah Anda membuat kombinasi tombol ini, Anda selesai.

Selamat! Selamat bersenang-senang.

pengguna3499524
sumber
Maka Anda harus lari xinput enable X.
Arch Stanton
Ah-ha! Apakah saya lupa meletakkannya di sana? Menembak. Terima kasih telah menambahkan itu di sana. Sama seperti saya untuk meledakkannya pada akhirnya.
user3499524
Ahah nevermind, Anda menyelamatkan saya :-)
Arch Stanton
daftar xinput + disable + enable works great
axel22
2
enableSaya disablejuga bekerja dengan ID saja alih-alih nama perangkat
Zlatev
50

Untuk me-restart driver touchpad laptop:

Buka terminal dengan menekan Ctrl+ Alt+ T dan jalankan perintah berikut

sudo  modprobe -r psmouse

kemudian

sudo modprobe psmouse

Saya telah menemukan solusinya di sana- sini juga ada solusi untuk mouse usb

maruf
sumber
Temuan yang sempurna. Penunjuk saya terhenti di posisi ini membantu saya menyelesaikannya.
Manikandan Arunachalam
1
ini bekerja untuk saya - touchpad saya akan berhenti berfungsi setelah beberapa waktu. Saya memiliki touchpad ALPS di Dell yang menjalankan Xubuntu 16.04
Ur Ya'ar
sudo modprobe psmouse proto=impsbekerja untuk saya di Asus UX303UB + Ubuntu 16.04.2 tetapi tanpa fitur multitouch. Entah bagaimana dari satu hari ke hari lainnya saya perlu menjalankan perintah itu untuk memiliki touchpad, tidak pernah lagi dengan gerakan.
Pablo A
Ini tidak berhasil untuk saya pada Dell Precision.
Cerin
Solusi ini tidak berhasil untuk saya. Ubuntu 18.04 dengan "SYNA8004: 00 06CB: CD8B Touchpad", Lenovo X1 Carbon Gen 7. Saya mendapatkan perilaku touchpad yang tajam setelah melanjutkan dari hibernasi.
SaTa
10

Jika Anda tidak tahu modul apa yang digunakan touchpad Anda, Anda bisa mengetahuinya dengan sedikit menggali

grep -iA2 touchpad /proc/bus/input/devices

bagi saya ini kembali

N: Name="Elan Touchpad"
P: Phys=
S: Sysfs=/devices/platform/80860F41:03/i2c-11/i2c-ELAN0100:00/input/input10

kemudian lihat modul kernel apa yang tersedia dalam kategori ini:

ls $(find /lib/modules/$(uname -r) -type d -name mouse)

yang bagi saya kembali

appletouch.ko  bcm5974.ko  cyapatp.ko  elan_i2c.ko  gpio_mouse.ko  
psmouse.ko  sermouse.ko  synaptics_i2c.ko  synaptics_usb.ko  vsxxxaa.ko

Referensi silang dua - dalam kasus saya sepertinya modul untuk touchpad saya elan_i2c.ko

Sunting: Saya baru-baru ini menemukan cara untuk mendapatkan nama pengemudi yang andal digunakan dengan perintah yang berbelit-belit, yang terdon disederhanakan dengan baik untuk saya

grep -hriPo 'DRIVER=\K.+' /sys 2>/dev/null | while read driver; do [ -e /lib/modules/$(uname -r)/kernel/drivers/input/mouse/"$driver"* ] && echo $driver; done

Untuk memeriksa Anda mendapatkan modul yang tepat, ujilah perintah untuk menurunkannya dari kernel:

sudo modprobe -r elan_i2c

Touchpad akan langsung mati jika Anda mendapatkan modul yang tepat, sehingga Anda dapat dengan mudah menemukannya dengan coba-coba. Muat ulang dengan

sudo modprobe elan_i2c

Ini secara efektif me-restart modul. Anda dapat menjalankan dua perintah bersama seperti ini:

sudo modprobe -r elan_i2c && sudo modprobe elan_i2c

Saya kadang-kadang harus melakukan ini pada resume dari penundaan.

Zanna
sumber
7

Jika Anda memiliki touchpad sinaptik:

synclient TouchpadOff=0
AnteBios
sumber
2
Yeyaaaaa! Ubuntu 18.04 LTS dengan xfce dan itu bekerja seperti pesona dengan Synaptics!
azatar
6

Inilah yang berhasil bagi saya adalah [Zenbook ASUS UX501VW]:

sudo  modprobe -r elan_i2c
sudo  modprobe elan_i2c

Dan touch pad saya yang hilang sudah kembali.

Denis Walrave
sumber
Terima kasih! berfungsi untuk zenbook ux305ca di ubuntu 16.04 lts.
chao
4

Apa yang mungkin lebih mudah, dan yang berhasil bagi saya, adalah memuat ulang driver di kernel. Kode berikut pertama-tama menemukan nama driver kernel yang menangani touch pad, lalu membongkar rmmoddan memuatnya kembali modprobe. Perhatikan bahwa Anda harus melakukan root untuk menjalankan perintah ini, jadi jalankan sudo suterlebih dahulu.

> lsmod | grep touch
hid_multitouch         20480  0 
> rmmod hid_multitouch 
> modprobe hid_multitouch
ChrisR
sumber
2

Bagi saya, pada kernel 4.13.0-46 pada Asus untuk ELAN1200, ini bukan tentang memuat ulang elan_i2ctetapi hid-multitouchdriver:

sudo modprobe -r hid-multitouch && sudo modprobe -r hid-multitouch
pholat
sumber
laptop Asus saya menggunakan driver hid untuk KEDUA keyboard & touchpad, jadi itu perlu dilakukan seperti ini dalam cmdline tunggal, jika tidak, Anda tidak dapat mengetik setelah modprobe -r.
Tomofumi
1

Juga coba gksudo /etc/init.d/hotplug restart

qwr
sumber
1

Satu baris perintah bash untuk mengatur ulang touchpad (berdasarkan pada respons @ user3499524):

id=`xinput --list |grep -i touchpad | cut -f2 | cut -f2 -d=` && xinput disable $id && xinput enable $id && echo "The touchpad has been reset."
NeverMinded
sumber
1

Solusi paling sederhana adalah:

  • tancapkan mouse
  • masuk ke Pengaturan Sistem >> Mouse dan Panel Sentuh
  • alihkan touchpad ke ON
Anthony Britton
sumber
Selamat Datang di Tanya Ubuntu! ;-) Solusi tidak perlu menjadi culun untuk menjadi baik! Tetap singkat dan sederhana ... :-)
Fabby
0

pemain sulap.

Saya mengerti Anda menjalankan Ubuntu 14.04; Milik saya sedikit berbeda (sebagai berikut):

Laptop ini: Acer Swift 1 (EUFI); x86-64 bit.

Jenis OS: Ubuntu 16.04 LTS.

Jenis touchpad: SYNA7DAB: 00 06CB: 7DAC Touchpad (synaptics_i2c.ko).

Solusi yang disediakan : https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey

Buat skrip file bash (seperti yang disarankan: Buat symlink ke skrip bash dan petakan hotkey ke skrip itu); Isi harus sebagai berikut:

#!/bin/bash

declare -a STATES=(1 0)
DEVICE=$(xinput list --name-only | grep Touchpad)
STATE=$(xinput list-props "$DEVICE" | grep 'Device Enabled' | sed 's/^.*:[ \t]*//')
xinput set-prop "$DEVICE" 'Device Enabled' ${STATES[$STATE]}

Pastikan memiliki izin eXecutable!

sudo chmod +x path/filename.sh

Solusi ini sangat bagus untuk saya. Semoga ini berlaku untuk Anda juga.

Detail pribadi dari masalah Anda sendiri (mungkin berlaku untuk situasi Anda)

Untuk beberapa alasan yang tidak diketahui: Touchpad laptop ini secara otomatis akan menjadi non-fungsional (namun masih menjalankan AFAIK). Saya telah berusaha untuk menghapus mouse optik berbasis USB; belum mengalami masalah yang sama.

xinput --daftar dump:

larvae@MST-Laptop:~/Desktop$ xinput --list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=10   [slave  pointer  (2)]
⎜   ↳ SYNA7DAB:00 06CB:7DAC Touchpad            id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Logitech USB Receiver                     id=9    [slave  keyboard (3)]
    ↳ HD WebCam                                 id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
    ↳ Acer WMI hotkeys                          id=14   [slave  keyboard (3)]

grep -iA2 touchpad / proc / bus / input / dump perangkat :

larvae@MST-Laptop:~/Desktop$ grep -iA2 touchpad /proc/bus/input/devices
N: Name="SYNA7DAB:00 06CB:7DAC Touchpad"
P: Phys=i2c-SYNA7DAB:00
S: Sysfs=/devices/pci0000:00/0000:00:17.0/i2c_designware.4/i2c-9/i2c-SYNA7DAB:00/0018:06CB:7DAC.0003/input/input11

Rekap solusi ( disediakan oleh UBUNTU ): https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey

Daniel B
sumber
0

Saya menyebut skrip ini mouse-reset. Itu menghapus dan kemudian modprobes semua modul yang tercantum dalam jawaban atas pertanyaan ini sejauh ini:

#!/bin/bash

modules=(psmouse hid_multitouch elan_i2c)

for mod in "${modules[@]}"; do
    sudo rmmod "$mod" 2> /dev/null
    sudo modprobe -v "$mod" 2> /dev/null
done
Tom Hale
sumber
0

Saya menggunakan Apple Macbook Retina Pro; touchpad terkadang berhenti bekerja. Sebagian besar metode di atas tidak akan menemukan driver karena namanya tidak mengandung 'mouse' atau 'touch'.

Untuk menemukan driver touchpad, dalam kasus saya bcm5974:

MacBookPro:~$ xinput list-props 11
Device 'bcm5974':
    Device Enabled (147):   1`
...

Kemudian untuk membongkar dan memuat kembali:

MacBookPro:~$ sudo modprobe -r bcm5974
MacBookPro:~$ sudo modprobe bcm5974

Terpecahkan.

pengguna118684
sumber
11 adalah nomor perangkat khusus dalam kasus Anda, Anda harus menemukan nomor ini menggunakan xinput --listsebelum Anda dapat menggunakannya di sini.
Yaron