Czy istnieje sposób na „ponowne uruchomienie” sterownika touchpada?

64

Używam Ubuntu 14.04 na laptopie, zwykle z zewnętrzną myszą USB, klawiaturą i podłączonym ekranem. Czasami jednak odłączam je wszystkie i przenoszę laptopa i nadal używam go z wbudowaną klawiaturą, ekranem i touchpadem.

Czasami zdarza się, że touchpad przestaje działać (ale jeśli podłączę mysz USB, mysz USB będzie działać). Chociaż zdarza się to bardzo rzadko, jest to bardzo irytujące, ponieważ jestem zmuszony ponownie uruchomić komputer, jeśli muszę ponownie uruchomić touchpad.

Czy jest jakieś obejście, które mogę wypróbować, na przykład zabicie jakiegoś procesu, który uruchomiłby się ponownie automatycznie, lub jakiegoś polecenia, które spowodowałoby ponowne uruchomienie lub odświeżenie sterownika touchpada czy coś takiego? Coś, co może „obudzić” touchpad bez konieczności ponownego uruchamiania?

matteo
źródło
Czasami zamknięcie ekranu laptopa i ponowne otwarcie rozwiązuje problem.
iluzjonista

Odpowiedzi:

32

Miałem ten problem wielokrotnie z jednym laptopem, dopóki nie zauważyłem, że touchpad tego komputera ma własny włącznik / wyłącznik, do którego musiałem trafić przypadkowo. Zwłaszcza przełącznik nie pomógł go włączyć ponownie. Po prostu przestałem go naciskać i wkrótce zacząłem używać zewnętrznej bezprzewodowej klawiatury ze zintegrowanym bezprzewodowym touchpadem i od tego czasu nie miałem z tym problemu.

AKTUALIZACJA: (Uwaga: link poniżej uszkodzony, rozwiązanie powyżej) Od opublikowania tego „rozwiązania” zamieściłem komentarz, który najwyraźniej spełniał potrzeby użytkownika. Dopiero teraz dowiedziałem się, że komentarze pozostają tylko tymczasowo i są automatycznie usuwane, ponownie zamieszczam treść przydatnego komentarza poniżej, aby mógł zostać zachowany dla innych:

Dzieliłem się „rozwiązaniem”, które działało dla mnie. Dzisiaj przyszło mi do głowy, by znaleźć rozwiązania lepiej pasujące do twojego pierwotnego pytania i znalazłem następujący link. Nie jest to coś, co osobiście uważam za „wygodne”, ale może być przynajmniej bardziej eleganckie, tworząc z niego skrypt. Znalazłem to (patrz poniżej) - gyropyge 25 września o 20:06

Naciśnij Alt+ F2i wpisz gksudo modprobe -r psmouseWpisz hasło, naciśnij Enter, a następnie naciśnij Alt+ F2ponownie, aby wprowadzić poniższe, gksudo modprobe psmousea następnie naciśnijEnter

wiatrakowiec
źródło
jednak nie moja sprawa
matteo,
2
Dzieliłem się „rozwiązaniem”, które działało dla mnie. Dzisiaj przyszło mi do głowy, by znaleźć rozwiązania lepiej pasujące do twojego pierwotnego pytania i znalazłem następujący link. Nie jest to coś, co osobiście uważam za „wygodne”, ale może być przynajmniej bardziej eleganckie, tworząc skrypt. tuxtrix.com/2010/06/…
gyropyge
Dzięki! Oznacziłem twoją odpowiedź jako odpowiedź zaakceptowaną, chociaż odpowiedź jest w twoim komentarzu (cóż, nie miałem okazji jej przetestować, ale wygląda na to, że to rozwiązanie).
matteo
Dziękuję za rozpatrzenie mojego komentarza po przemyśleniu. Ja też mogę w przyszłości skorzystać z tego rozwiązania, ponieważ moje rozwiązanie polegające na tym, aby nie naciskać szczególnie łatwego do naciśnięcia przycisku graniczącego z krawędzią touchpada, nie było szczególnie satysfakcjonujące.
gyropyge
1
Link działał dla mnie, ale na wszelki wypadek: jeśli utkniesz bez ruchu myszy na laptopie (touchpad), naciśnij kombinacje klawiszy Alt + F2 i wpisz gksudo modprobe -r psmouse Wpisz hasło, naciśnij enter i następnie naciśnij Alt + F2 ponownie, aby wprowadzić następującą psmouse gksudo modprobe ps
G Trawo
58

Znalazłem sposób na to:

Najpierw otwórz terminal i wydrukuj wszystkie urządzenia wejściowe, aby znaleźć identyfikator potrzebny dla urządzenia wejściowego, które chcesz wyłączyć. W terminalu wpisz:

xinput --list

Dalej: Zauważ, gdzie jest napisane id = X w jednej długiej kolumnie dla każdego urządzenia wejściowego. Chcesz znaleźć identyfikator urządzenia odpowiadający urządzeniu wejściowemu, które chcesz wyłączyć (być może coś, co brzmi jak „touchpad”). Następnie zamień X w następującym poleceniu na numer identyfikacyjny urządzenia wejściowego, które chcesz wyłączyć:

xinput disable X

Uwaga: jeśli nie masz pewności, którego identyfikatora urządzenia należy użyć do wyłączenia touchpada, możesz to sprawdzić, testując losowy identyfikator i sprawdzając, czy podkładka pod mysz nadal działa. Upewnij się, że NIE ROBIĆ WSZYSTKIEGO WAŻNEGO. Zapisz całą swoją pracę i przygotuj się na ponowne uruchomienie komputera, jeśli zrobisz coś takiego jak wyłączenie klawiatury. (Możesz mieć problem z ponownym włączeniem, jeśli nie możesz wpisać w terminalu.

Potem będziesz musiał uruchomić ostatnią linię (dzięki za złapanie tego Arch Stantona!)

xinput enable X

Powód: Rozpaczliwie potrzebowałem odpowiedzi na ten problem, ponieważ problemy, które miałem z touchpadem, uniemożliwiały wykonywanie jakiejkolwiek pracy. Nagle, w przypadkowym momencie podczas korzystania z laptopa, najwyraźniej bez powodu, mój touchpad przechodzi w jakiś „tryb specjalny”. Samo przesunięcie jednego palca na touchpadzie spowodowałoby przewinięcie ekranu, zamiast faktycznego przesuwania kursora myszy na ekranie, więc nie można było najechać myszą na coś w przeglądarce bez znacznych wysiłków koordynacyjnych, aby uwzględnić przewijanie ekranu i nieruchoma mysz. Chciałem znaleźć sposób, BEZ PONOWNEGO URUCHOMIENIA LAPTOPA, aby zresetować touchpad. Z drugiej strony zresetowanie touchpada powyższą metodą faktycznie rozwiązuje mój problem.

Aktualizacja: Aby jeszcze łatwiej zresetować touchpad, utworzyłem skrót dla wyżej wymienionych poleceń. Kiedy mój touchpad zaczyna działać, po prostu wykonuję kombinację klawiszy ctrl + super + r i to dla mnie resetuje. Szybko i łatwo.

Oto jak:

-Utwórz plik w katalogu domowym i nazwij go „touchpad-reset.sh”.

-Wewnątrz tego pliku umieść dwa z trzech (ostatnich dwóch) poprzednich poleceń wymienionych powyżej, z wyjątkiem tego, że zamiast używać numeru X id dla urządzenia, ponieważ może ulec zmianie wraz z dodanymi urządzeniami peryferyjnymi (może ??), których możesz użyć to zamiast tego:

Oto wyjście z mojego komputera wewnątrz terminala za pomocą tego polecenia:

xinput --list

Wynik:

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)]⎜ 

-Teraz, co robisz, zamieniasz X (który wcześniej był identyfikatorem) dla xinput disable X i xinput enable X z nazwą odpowiadającą temu identyfikatorowi w pojedynczych cudzysłowach. Na przykład z powyższego, jeśli chcesz to zrobić dla id = 13, moje urządzenie touchpad, użyjesz:

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

- Więc teraz wyłączasz według nazwy zamiast numeru ID, gdzie identyfikator może się zmienić w czasie, a następnie wyłączasz i włączasz inne urządzenie.

Na koniec musisz udzielić uprawnień, aby ten plik był wykonywalny; uruchom tę komendę z katalogiem roboczym w terminalu jako katalog domowy (gdzie utworzyłeś plik):

chmod +x your_script_name.sh

Po utworzeniu tego pliku z wpisanymi w nim odpowiednimi poleceniami, upewniając się, że znajduje się on w katalogu domowym, wykonaj następujące czynności:

  1. Naciśnij klawisz super (klawisz Windows na PC) na klawiaturze, aby wyświetlić boczny pasek jedności. Wpisz „ustawienia systemu” i naciśnij klawisz Enter.
  2. Znajdź opcję „Klawiatura” poniżej „Sprzęt” i kliknij ją.
  3. Wybierz kartę „Skróty”.
  4. W lewym oknie wybierz „Niestandardowe skróty”
  5. Kliknij przycisk + w pobliżu dolnej środkowej części.
  6. Powinno zostać wyświetlone okno z prośbą o podanie nazwy opisu i polecenia do wprowadzenia.
  7. Zmień nazwę na „reset touchpad”
  8. Użyj tego polecenia: gnome-terminal -x ./nazwa_skryptu.sh
  9. Kliknij „Zastosuj”
  10. Powinieneś teraz zobaczyć swój skrót na liście, a po prawej stronie powinien być napis „Wyłączone” lub inne śmieci. Kliknij ten tekst i przygotuj się na jakąś kombinację klawiszy, na przykład ctrl + super + r.
  11. Po utworzeniu tej kombinacji klawiszy gotowe.

Gratulacje! Baw się dobrze.

użytkownik3499524
źródło
Potem będziesz musiał biec xinput enable X.
Arch Stanton,
Ah-ha! Czy zapomniałem to tam umieścić? Strzelać. Dzięki za dodanie tego tam. Tak jak ja w końcu to wysadziłem.
user3499524,
Ach, nieważne, uratowałeś mnie :-)
Arch Stanton,
lista xinput + wyłącz + włącz działa świetnie
axel22
2
enable/ disabledziała także tylko z identyfikatorem zamiast nazwy urządzenia
Zlatev
50

Aby ponownie uruchomić sterownik touchpada laptopa:

Otwórz terminal, naciskając Ctrl+ Alt+ T i wykonaj następujące polecenie

sudo  modprobe -r psmouse

następnie

sudo modprobe psmouse

Znalazłem tutaj rozwiązanie i jest też rozwiązanie dla myszy USB

maruf
źródło
Idealne znalezienie. Mój wskaźnik utknął w pozycji, która pomogła mi go rozwiązać.
Manikandan Arunachalam
1
to działało dla mnie - mój touchpad przestał działać po pewnym czasie. Mam touchpad ALPS na Dellie z Xubuntu 16.04
Ur Ya'ar
sudo modprobe psmouse proto=impspracował dla mnie na Asus UX303UB + Ubuntu 16.04.2, ale bez funkcji multitouch. Jakoś z dnia na dzień muszę uruchomić to polecenie, aby mieć touchpad, nigdy więcej za pomocą gestów.
Pablo A
Nie działało to dla mnie w Dell Precision.
Cerin,
To rozwiązanie nie działało dla mnie. Ubuntu 18.04 z „SYNA8004: 00 06CB: CD8B Touchpad”, Lenovo X1 Carbon Gen 7. Po wznowieniu hibernacji dostaję zgrabnego zachowania touchpada.
SaTa
9

Jeśli nie wiesz, z którego modułu korzysta Twój touchpad, możesz dowiedzieć się o nim trochę

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

dla mnie to powraca

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

zobacz, jakie moduły jądra są dostępne w tej kategorii:

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

który dla mnie powraca

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

Porównaj oba - w moim przypadku wygląda na to, że jest to moduł mojego touchpada elan_i2c.ko

Edycja: Niedawno wymyśliłem, jak niezawodnie wykorzystać nazwę sterownika w skomplikowanym poleceniu, które terdon ładnie dla mnie uprościł

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

Aby sprawdzić, czy masz odpowiedni moduł, przetestuj polecenie, aby zwolnić go z jądra:

sudo modprobe -r elan_i2c

Touchpad natychmiast umrze, jeśli dostaniesz odpowiedni moduł, dzięki czemu możesz go łatwo znaleźć metodą prób i błędów. Załaduj ponownie za pomocą

sudo modprobe elan_i2c

To skutecznie ponownie uruchamia moduł. Możesz uruchomić dwa polecenia razem w następujący sposób:

sudo modprobe -r elan_i2c && sudo modprobe elan_i2c

Czasami muszę to zrobić po wznowieniu zawieszenia.

Zanna
źródło
7

Jeśli masz touchpad Synaptics:

synclient TouchpadOff=0
AnteBios
źródło
2
Yeyaaaaa! Ubuntu 18.04 LTS z Xfce i działało jak urok w Synaptics!
azatar
6

Oto, co działało dla mnie to [Zenbook ASUS UX501VW]:

sudo  modprobe -r elan_i2c
sudo  modprobe elan_i2c

A mój brakujący panel dotykowy powrócił.

Denis Walrave
źródło
dzięki! działa na zenbook ux305ca na Ubuntu 16.04 lts.
chao
4

Co może być łatwiejsze i które działało dla mnie, to przeładowywanie sterownika w jądrze. Poniższy kod najpierw znajduje nazwę sterownika jądra, który obsługuje tabliczkę dotykową, a następnie ją rozładowuje rmmodi ładuje ponownie modprobe. Pamiętaj, że musisz być rootem, aby uruchomić te polecenia, więc uruchom sudo sunajpierw.

> lsmod | grep touch
hid_multitouch         20480  0 
> rmmod hid_multitouch 
> modprobe hid_multitouch
ChrisR
źródło
2

Dla mnie w jądrze 4.13.0-46 w Asusie dla ELAN1200 nie chodziło o przeładowanie, elan_i2cale o hid-multitouchsterownik:

sudo modprobe -r hid-multitouch && sudo modprobe -r hid-multitouch
pholat
źródło
mój laptop Asus używa ukrytego sterownika dla OBU klawiatury i touchpada, więc musi to zrobić w jednym cmdline, w przeciwnym razie nie będziesz mógł pisać po modprobe -r.
Tomofumi,
1

Spróbuj także gksudo /etc/init.d/hotplug restart

qwr
źródło
1

Jeden wiersz poleceń bash, aby zresetować touchpad (na podstawie odpowiedzi @ 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
źródło
1

Najprostszym rozwiązaniem może być:

  • podłącz mysz
  • przejdź do Ustawienia systemu >> Mysz i touchpad
  • przełącz touchpad na WŁĄCZONY
Anthony Britton
źródło
Witamy w Ask Ubuntu! ;-) Rozwiązania nie muszą być maniakalne, aby były dobre! Po prostu krótko i prosto ... :-)
Fabby,
0

iluzjonista.

Rozumiem, że używasz Ubuntu 14.04; Mój jest trochę inny (jak poniżej):

Ten laptop: Acer Swift 1 (EUFI); x86-64 bit.

Typ systemu operacyjnego: Ubuntu 16.04 LTS.

Typ touchpada: SYNA7DAB: 00 06CB: 7DAC Touchpad (synaptics_i2c.ko).

Dostarczone rozwiązanie : https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey

Utwórz skrypt pliku bash (zgodnie z sugestią: Utwórz dowiązanie symboliczne do skryptu bash i zamapuj na nim skrót); Treść powinna wyglądać następująco:

#!/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]}

Upewnij się, że ma uprawnienia eXecutable!

sudo chmod +x path/filename.sh

To rozwiązanie działa świetnie dla mnie. Mam nadzieję, że dotyczy to również ciebie.

Dane osobowe własnego problemu (możliwe, że dotyczy twojej sytuacji)

Z nieznanego powodu: Touchpad tego laptopa automatycznie przestanie działać (nadal działa AFAIK). Próbowałem usunąć mysz optyczną na bazie USB; ale napotkałem ten sam problem.

xinput - lista zrzutu:

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)]

zrzut ekranu grep -iA2 touchpad / proc / bus / input / devices :

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

Podsumowanie rozwiązania ( dostarczone przez UBUNTU ): https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey

Daniel B.
źródło
0

Nazywam ten skrypt mouse-reset. Usuwa, a następnie modprobes wszystkie moduły wymienione w odpowiedziach na to pytanie do tej pory:

#!/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
źródło
0

Używam Apple Macbook Retina Pro; touchpad czasami przestaje działać. Większość powyższych metod nie znajdzie sterownika, ponieważ nazwa nie zawiera „myszy” ani „dotyku”.

Aby znaleźć sterownik touchpada, w moim przypadku bcm5974:

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

Następnie, aby rozładować i załadować ponownie:

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

Rozwiązany.

użytkownik118684
źródło
11 to konkretny numer urządzenia w Twoim przypadku, musisz go znaleźć, xinput --listzanim będziesz mógł go tutaj użyć.
Yaron