Touchpad nie działa po zawieszeniu laptopa

15

To wydaje się być częstym problemem, ale po wypróbowaniu wszystkich poprawek znalezionych na forach nadal jestem zagubiony.

Okular:

  • komputer: Asus k501LX-EB71
  • System operacyjny: Ubuntu 14.04.3
  • jądro: 3.19.0-26-generic
  • touchpad: touchpad Elantech
  • sterownik: xserver-xorg-input-synaptics-lts-trusty (OR) xserver-xorg-input-synaptics-lts-vivid (nie jestem pewien, który z nich jest używany)

Co próbowałem: mogę uruchomić, sudo modprobe -r psmouseaby „wyłączyć” touchpad, a następnie sudo modprobe psmousewłączyć go ponownie. To działa dobrze. Jednak po zawieszeniu nie mogę „ożywić” tabliczki dotykowej, nawet jeśli wprowadzę te polecenia.

jakieś pomysły?

AKTUALIZACJA:

Nie obserwuję tego problemu, jeśli hibernuję zamiast zawiesić. Nie jestem pewien, co zrobić z tą wskazówką ...

OBECNY OBEJŚCIE:

Ponieważ hibernacja wydaje się nie powodować problemu i mam odpowiednią ilość pamięci wymiany, po prostu hibernuję jako domyślną akcję dla rzeczy takich jak zamknięcie pokrywy. Oto kroki, które wykonałem, aby włączyć hibernację . Zmodyfikowałem również inne domyślne ustawienia zasilania, aby przejść do hibernacji za pomocą edytora dconf w sekcji org> gnome> demon ustawień> wtyczki> moc

Ross Allen
źródło
Może ci się to przydać: ubuntuforums.org/showthread.php?t=2189117
Elder Geek
hmmm ... dzięki za szybką odpowiedź, ale bez powodzenia wykonałem wszystkie kroki w tym wątku. Z jakiegokolwiek powodu nie mogę ożywić touchpada sudo modprobe psmousepo zawieszeniu. Po prostu nic się nie dzieje. Nie mogę znaleźć niczego nie na miejscu w plikach dziennika
Ross Allen,
Uważam, że twoje obejście jest odpowiedzią. Powinieneś napisać to jako takie, które może pomóc innym, a umieszczenie odpowiedzi w pytaniu może utrudnić znalezienie.
Starszy Geek,

Odpowiedzi:

8

Ten błąd jest zgłaszany w starterze: touchpad Elantech przestaje działać po zawieszeniu . Po zawieszeniu OP próbuje # modprobe -r psmousei # modprobe psmousenie działa. Ale co jeśli psmouse został usunięty przed zawieszeniem i włożony po zawieszeniu?

Jeśli działa to ręcznie, możesz zautomatyzować, tworząc nowy plik w /lib/systemd/system-sleep/katalogu zawierającym:

#!/bin/sh

case $1/$2 in
  pre/*)
    echo "Going to $2..."
    # Place your pre suspend commands here, or `exit 0` if no pre suspend action required
    modprobe -r psmouse
    ;;
  post/*)
    echo "Waking up from $2..."
    # Place your post suspend (resume) commands here, or `exit 0` if no post suspend action required
    sleep 2
    modprobe psmouse
    ;;
esac

Wiadomo, że po zawieszeniu modułu psmouse nie można usunąć. Wiemy również, że można go usunąć i wstawić przed zawieszeniem. Ta technika usuwa go przed zawieszeniem. Po wznowieniu włóż go i mam nadzieję, że jądro go nie odrzuci.

sleep 2Komenda jest z moich własnych problemów gdzie Systemd i jądra (przez gnome lub APM) były zarówno do spania i wstawania. Musiałem przekierować dźwięk pulseaudio z powrotem do telewizora z powodu błędu wprowadzonego w Ubuntu 16.04 / pulseaudio 8.0. 2-sekundowe opóźnienie było konieczne, aby jądro i systemd zakończyły budzenie. Wciąż nie rozgryzłem podwójnego zawieszenia i podwójnego wznawiania ....

WinEunuuchs2Unix
źródło
Myślę, że lepiej byłoby użyć standardowej SUSPEND_MODULESfunkcji pm-utilstego linux.die.net/man/8/pm-suspend
cgogolin
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
7

Zalecono opublikowanie mojego obejścia jako odpowiedzi:

Odkryłem, że hibernacja ( sudo pm-hibernate) nie napotkała tych samych problemów z restartowaniem touchpada, dlatego po prostu ustawiłem wszystkie odpowiednie opcje zasilania na hibernację zamiast zawieszenia. Wymaga to trochę wysiłku, ponieważ hibernacja jest domyślnie wyłączona. Oto, co musi się stać

Ross Allen
źródło
1
Uwaga: hibernacja jest domyślnie wyłączona, ponieważ istnieje duża szansa na uszkodzenie dysku twardego. Musiałem ponownie zainstalować system operacyjny dwa razy po nieudanej hibernacji. Wyłącz teraz ponownie.
crobar
1
Zmień ustawienie Touchpad w BIOS z ADVANCED na BASIC, nie ma znaczenia pod względem funkcjonalności, a touchpad nadal działa po wznowieniu z zawieszenia.
pst007x
4

Poniższe rozwiązanie działało dla mnie na moim Acer Predator Helios 300 z systemem Ubuntu 18.04 (5.0.0-36-generyczny), gdy wszystko inne nie-

Sprawdź, czy rozwiązanie działa.
Spróbuj uruchomić następujące polecenie po przebudzeniu się z zawieszenia, gdy gładzik nie działa- /sbin/rmmod i2c_hid && /sbin/modprobe i2c_hid.
Jeśli dzięki temu gładzik będzie działał, wykonaj poniższe kroki, aby utworzyć automatyczne rozwiązanie, które będzie działać za każdym razem, gdy obudzisz się z trybu wstrzymania.

Stałe rozwiązanie
1. Utwórz /lib/systemd/system-sleep/touchpad
2. Otwórz powyższy plik i edytuj go, sudo vi /lib/systemd/system-sleep/touchpad
3. Zapisz następującą zawartość w pliku-

#!/bin/sh

case $1 in
  post)
    /sbin/rmmod i2c_hid && /sbin/modprobe i2c_hid 
  ;;
esac
  1. Zrób to - chmod +x /lib/systemd/system-sleep/touchpad

Zasadniczo powoduje to ponowne uruchomienie urządzenia i2c_hid po przebudzeniu z zawieszenia.

Dzięki uprzejmości: /unix//a/526488/283735

nihal111
źródło
Świetna odpowiedź, to zadziałało dla mnie, dzięki. Moduł „psmouse” nie był dla mnie tym, czym był „i2c_hid”. Dell Inspiron Miałem to w dmesg: [24063.094911] psmouse serio1: elantech: elantech_send_cmd zapytanie 0x02 nie powiodło się. [24063.094918] psmouse serio1: elantech: nie można zapytać o możliwości. [24064.645952] psmouse serio1: Nie można włączyć myszy na isa0060 / serio1 [24065.383423] input: ImPS / 2 Logitech Wheel Mouse as / devices / platform / i8042 / serio1 / input / input38 [24240.449885] psmouse serio1: elantech: przyjęcie wersji sprzętowej 4 (z wersją oprogramowania 0x4f5001)
David Robson
3

W tej kwestii mam do czynienia z dwoma prostymi podejściami. Pierwszy, który nie zawsze działa (jak wspomniałeś) po prostu restartuje moduł myszy po akcji zawieszenia.

sudo rmmod psmouse; sudo modprobe psmouse

Oto miła dyskusja na temat tego, jak to zrobić „automatycznie”: jak wykonać polecenie po wznowieniu zawieszenia?

Alternatywnym podejściem jest zabicie modułu przed zawieszeniem, unikanie blokowania modułu po wznowieniu (co najwyraźniej generuje problem, jak podkreślono WinEunuuchs2Unix).

Aby to zrobić, używam prostej linii poleceń do zawieszenia laptopa zamiast po prostu „ręcznie” zamykać pokrywę. Oczywiście nie jest to wcale wymyślne, ale działa i jest to proste rozwiązanie. Nie ma czasu na włamanie.

sudo rmmod psmouse; sudo pm-suspend

A następnie, po wznowieniu pracy laptopa, należy ponownie włączyć moduł, wpisując:

sudo modprobe psmouse

Zawsze możesz zhakować domyślny pm-suspendskrypt, ale nie polecam go. Generowanie tych małych sekwencji poleceń ad-hoc jest proste i bezpieczniejsze.

Wreszcie, łatwym i szybkim sposobem na szybkie wykonanie „zabijania / zawieszenia” i „ponownego włączenia” modułu myszy jest powiązanie tych kroków ze skrótami klawiaturowymi: Jak mogę zmienić klawisze na klawiaturze? (Jak mogę utworzyć niestandardowe polecenia / skróty klawiaturowe?) .

Mam nadzieję, że to działa, robi to dla mnie, chociaż naprawdę niewygodnie jest sobie z tym poradzić w ten sposób. Mam ten problem zarówno w laptopach HP, jak i Asus.

Rho
źródło
Działa to dla mnie tam, gdzie nie było nic innego - dzięki!
daboross
Twoje zdrowie! Cieszę się, że to było pomocne! ; D
Rho
1

To działało dla mnie:

  1. Uruchom system BIOS, podczas uruchamiania systemu przytrzymaj F2 lub ESC

  2. Zmień ustawienie Touchpad w BIOSie z ADVANCED na BASIC (nie ma znaczenia pod względem funkcjonalności)

Teraz touchpad powinien nadal działać po wznowieniu zawieszenia.

pst007x
źródło
0

Mam kilka laptopów Asus, musiałem wyłączyć touchpad na wszystkich z nich. Powodują problemy z blokowaniem i inne problemy.

ChangosMuertos
źródło
Nie to, co miałem nadzieję usłyszeć, ale doceniam odpowiedź
Ross Allen,
to Touchpad Elan. Dosłownie sprawia, że ​​używam ctrl-alt-f1 / 2/3 do zmiany i zmiany z powrotem w celu odblokowania. Po wyłączeniu nie ma problemów. Jak wiesz, możesz użyć go w krótkich seriach i użyć mojej metody wspomnianej powyżej, aby wyjść z blokady. Mam nadzieję, że to pomaga.
ChangosMuertos
0

Sterowniki, które nie reagują dobrze na zawieszenie, są dość powszechne, niezależnie od systemu operacyjnego. Cieszę się, że znalazłeś obejście podczas hibernacji.

Ponieważ zawieszenie nie wyłącza się całkowicie i hibernacja, wydaje się to wskazywać, że kierowca nie reaguje dobrze na „1/2 życia” zawieszenia, ale jest w pełni zdolny do wystąpienia podczas cyklu włączania, który jest tym, co zapewnia hibernacja po przebudzeniu.

źródło: http://manpages.ubuntu.com/manpages/trusty/man8/pm-action.8.html

Starszy Geek
źródło
Możesz podłączyć się do procedur budzenia, aby zrestartować sterownik może ... Podobnie jak w przypadku ponownego ładowania menedżera sieci. Po prostu jeszcze nie wymyśliłem, jak to zrobić. Pracowałem nad restartem pulseaudio, ale udało mi się to zepsuć 2 dni temu :(
WinEunuuchs2Unix 20.09.16
1
@ WinEunuuchs2Unix Chciałbym to zobaczyć. ping mnie, jeśli to wymyślisz.
Elder Geek
pewna rzecz. Prawdopodobnie zrobię jedną z tych rzeczy „odpowiedz na własne pytanie” za około sześć miesięcy w tym tempie już 6 tygodni.
WinEunuuchs2Unix
1
Wysłałem odpowiedź, ale z jakiegoś dziwnego powodu wydaje mi się, że mogę pingować wszystkich oprócz ciebie (Starszego Geka).
WinEunuuchs2Unix