Touchpad tidak berfungsi setelah menangguhkan laptop

14

Ini sepertinya masalah umum, tetapi setelah mencoba semua perbaikan yang saya temukan di forum, saya masih bingung.

Spesifikasi:

  • komputer: Asus k501LX-EB71
  • OS: Ubuntu 14.04.3
  • kernel: 3.19.0-26-generik
  • touchpad: touchpad Elantech
  • driver: xserver-xorg-input-synaptics-lts-trusty (OR) xserver-xorg-input-synaptics-lts-vivid (tidak yakin mana yang sedang digunakan)

Apa yang saya coba: Saya dapat lari sudo modprobe -r psmouseuntuk "mematikan" touchpad, dan kemudian sudo modprobe psmousemenyalakannya kembali. Ini berfungsi dengan baik. Namun ketika saya menangguhkan, saya tidak bisa "menghidupkan kembali" panel sentuh, bahkan jika saya memasukkan perintah ini.

Adakah pikiran?

MEMPERBARUI:

Saya tidak mengamati masalah ini jika saya hibernasi alih-alih menangguhkan. Saya tidak yakin apa yang membuat petunjuk itu ...

WORKAROUND SAAT INI:

Karena hibernasi tampaknya tidak menyebabkan masalah dan saya memiliki jumlah memori swap yang sesuai, saya hanya hibernasi sebagai tindakan default untuk hal-hal seperti menutup tutupnya. Berikut adalah langkah-langkah yang saya ikuti untuk mengaktifkan hibernate . Saya juga memodifikasi pengaturan daya default lain untuk hibernasi menggunakan dconf Editor di bawah org> gnome> settings-daemon> plugins> power

Ross Allen
sumber
Anda mungkin menemukan ini berguna: ubuntuforums.org/showthread.php?t=2189117
Penatua Geek
hmmm ... terima kasih atas tanggapan cepatnya tetapi saya telah mengikuti semua langkah di utas itu tanpa hasil. Untuk alasan apa pun, saya tidak dapat menghidupkan kembali touchpad sudo modprobe psmousesetelah ditangguhkan. Sederhananya, sepertinya tidak ada yang terjadi. Saya tidak dapat menemukan sesuatu yang tidak beres pada file log
Ross Allen
Saya akan mempertimbangkan solusi Anda sebagai jawaban. Anda harus menuliskannya sedemikian rupa sehingga kemungkinan dapat membantu orang lain dan menanamkan jawaban dalam pertanyaan Anda mungkin membuatnya lebih sulit ditemukan.
Penatua Geek

Jawaban:

8

Bug ini dilaporkan di launchpad: Elantech touchpad berhenti berfungsi setelah ditangguhkan . Setelah menangguhkan, OP mencoba # modprobe -r psmousedan # modprobe psmousetidak berhasil. Tetapi bagaimana jika psmouse dihapus sebelum ditangguhkan dan dimasukkan setelah ditangguhkan?

Jika ini bekerja secara manual maka Anda dapat mengotomatisasi dengan membuat file baru di /lib/systemd/system-sleep/direktori yang berisi:

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

Itu diketahui setelah menangguhkan modul psmouse tidak dapat dihapus. Kami juga tahu itu bisa dihapus dan dimasukkan sebelum ditangguhkan. Jadi teknik ini menghilangkannya sebelum ditunda. Setelah melanjutkan, masukkan dan semoga kernel tidak akan menolaknya.

The sleep 2perintah dari masalah saya sendiri di mana systemd dan kernel (melalui gnome atau APM) berdua tidur dan bangun. Saya perlu mengalihkan suara pulseaudio kembali ke TV karena bug yang diperkenalkan di Ubuntu 16.04 / pulseaudio 8.0. Penundaan 2 detik diperlukan untuk kernel dan systemd untuk selesai bangun. Masih belum menemukan penangguhan ganda dan resume ganda ....

WinEunuuchs2Unix
sumber
Saya pikir akan lebih baik menggunakan SUSPEND_MODULESfitur standar pm-utilsuntuk linux.die.net/man/8/pm-suspend
cgogolin
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
7

Disarankan agar saya memposting solusi saya sebagai jawaban:

Saya menemukan bahwa hibernate ( sudo pm-hibernate) tidak mengalami masalah yang sama dengan restart touchpad, oleh karena itu saya hanya mengatur semua opsi daya yang relevan untuk hibernasi alih-alih menangguhkan. Ini memerlukan sedikit usaha karena hibernasi dinonaktifkan secara default. Inilah yang perlu terjadi

Ross Allen
sumber
1
Hati-hati, hibernate dinonaktifkan secara default karena ada kemungkinan besar kerusakan hard drive. Saya harus menginstal ulang OS saya dua kali setelah hibernasi gagal. Nonaktifkan lagi sekarang.
crobar
1
Ubah pengaturan Touchpad di BIOS Anda dari ADVANCED ke BASIC, tidak ada bedanya dengan fungsionalitas, dan touchpad masih berfungsi saat kembali dari penangguhan.
pst007x
3

Saya berurusan dengan dua pendekatan sederhana dengan masalah ini. Yang pertama, yang tidak selalu berfungsi (seperti yang Anda sebutkan) hanya me-restart modul mouse setelah tindakan menangguhkan.

sudo rmmod psmouse; sudo modprobe psmouse

Berikut ini adalah diskusi yang bagus tentang bagaimana melakukan ini "secara otomatis": bagaimana menjalankan perintah setelah melanjutkan dari penangguhan?

Pendekatan alternatif adalah dengan membunuh modul sebelum ditangguhkan, menghindari untuk mengunci modul setelah resume (yang tampaknya adalah yang menghasilkan masalah, seperti yang digarisbawahi WinEunuuchs2Unix).

Untuk melakukan itu saya menggunakan baris perintah sederhana untuk menangguhkan laptop, bukan hanya menutup tutup "secara manual". Tentu saja ini tidak mewah sama sekali, tetapi bekerja dan ini merupakan solusi maju. Tidak ada waktu untuk meretas.

sudo rmmod psmouse; sudo pm-tunda

Dan kemudian, setelah melanjutkan laptop, Anda harus mengaktifkan kembali modul dengan mengetik:

sudo modprobe psmouse

Anda selalu dapat meretas pm-suspendskrip default , tetapi saya tidak akan merekomendasikannya. Sederhana dan lebih aman untuk menghasilkan urutan perintah kecil ad-hoc ini.

Terakhir, cara mudah dan cepat untuk dengan cepat melakukan "membunuh / menunda" dan "mengaktifkan kembali" modul mouse adalah dengan mengaitkan langkah-langkah tersebut dengan pintasan keyboard: Bagaimana cara mengubah apa yang dilakukan tombol pada keyboard saya? (Bagaimana cara membuat perintah / pintasan keyboard khusus?) .

Semoga berhasil, itu berlaku untuk saya, meskipun benar-benar tidak nyaman untuk berurusan dengan ini sedemikian rupa. Saya memiliki masalah ini di Laptop HP dan Asus.

Rho
sumber
Ini bekerja untuk saya di mana tidak ada yang lain - terima kasih!
Daboross
Bersulang! Senang itu membantu! ; D
Rho
3

Solusi berikut ini bekerja untuk saya pada Acer Predator Helios 300 saya yang menjalankan Ubuntu 18.04 (5.0.0-36-generic) ketika semua yang lain tidak-

Periksa apakah solusinya berfungsi
Coba jalankan perintah berikut setelah bangun dari menangguhkan ketika trackpad Anda tidak berfungsi- /sbin/rmmod i2c_hid && /sbin/modprobe i2c_hid.
Jika ini membuat trackpad Anda berfungsi, ikuti langkah-langkah di bawah ini untuk membuat solusi otomatis yang menjalankan ini setiap kali Anda bangun dari penundaan.

Solusi Permanen
1. Buat /lib/systemd/system-sleep/touchpad
2. Buka file di atas dan edit, sudo vi /lib/systemd/system-sleep/touchpad
3. Simpan konten berikut dalam file-

#!/bin/sh

case $1 in
  post)
    /sbin/rmmod i2c_hid && /sbin/modprobe i2c_hid 
  ;;
esac
  1. Jadikan itu dapat dieksekusi- chmod +x /lib/systemd/system-sleep/touchpad

Ini pada dasarnya me-restart perangkat i2c_hid saat bangun dari menangguhkan.

Courtesy: /unix//a/526488/283735

nihal111
sumber
Jawaban yang bagus, ini berhasil untuk saya, terima kasih. Modul "psmouse" bukan yang saya, "i2c_hid" adalah. Dell Inspiron Saya punya ini di dmesg: [24063.094911] psmouse serio1: elantech: elantech_send_cmd permintaan 0x02 gagal. [24063.094918] psmouse serio1: elantech: gagal meng-query kemampuan. [24064.645952] psmouse serio1: Gagal mengaktifkan mouse pada isa0060 / serio1 [24065.383423] input: ImPS / 2 Logitech Wheel Mouse sebagai / perangkat / platform / i8042 / serio1 / input / input38 [24240.449885] psmouse serio1: elantech: dengan asumsi versi perangkat keras 4 (dengan versi firmware 0x4f5001)
David Robson
1

Ini bekerja untuk saya:

  1. Boot ke BIOS, pada sistem boot-up tahan F2 atau ESC

  2. Ubah pengaturan Touchpad di BIOS Anda dari ADVANCED ke BASIC (tidak ada bedanya dengan fungsi)

Sekarang touchpad masih akan berfungsi saat kembali dari penangguhan.

pst007x
sumber
0

Saya memiliki beberapa laptop Asus, saya harus menonaktifkan touchpad pada semuanya. Mereka menyebabkan masalah penguncian, dan masalah lainnya.

ChangosMuertos
sumber
Bukan yang ingin kudengar, tetapi aku menghargai responsnya
Ross Allen
itu adalah Touchpad Elan. Secara harfiah membuat saya menggunakan ctrl-alt-f1 / 2/3 untuk mengubah dan mengubah kembali untuk mencairkannya. Setelah saya menonaktifkannya, tidak ada masalah. Seperti yang Anda tahu, Anda dapat menggunakannya dalam semburan singkat dan menggunakan metode saya yang disebutkan di atas untuk keluar dari penguncian. Semoga itu bisa membantu.
ChangosMuertos
0

Pengemudi yang tidak merespons dengan baik terhadap penangguhan adalah hal yang cukup umum terlepas dari OS. Saya senang Anda menemukan solusi melalui hibernasi.

Karena suspend tidak sepenuhnya mati dan hibernasi, yang akan muncul untuk menunjukkan bahwa pengemudi tidak merespon dengan baik terhadap "1/2 masa" suspensi, tetapi sangat mampu muncul selama siklus power-on yang adalah apa yang disediakan hibernasi saat bangun tidur.

sumber: http://manpages.ubuntu.com/manpages/trusty/man8/pm-action.8.html

Penatua Geek
sumber
Anda dapat menghubungkan ke rutinitas bangun untuk memulai ulang driver mungkin ... Sama seperti bagaimana manajer jaringan dimuat ulang. Hanya belum tahu bagaimana melakukannya sendiri. Saya memang sudah berhasil me-restart pulseaudio tetapi berhasil memecahkannya 2 hari lalu :(
WinEunuuchs2Unix
1
@ WinEunuuchs2Unix Saya ingin sekali melihatnya. ping saya jika Anda mengetahuinya.
Penatua Geek
hal yang pasti. Saya mungkin akan melakukan salah satu dari hal-hal "jawab pertanyaan Anda sendiri" dalam waktu sekitar enam bulan pada tingkat 6 minggu ini.
WinEunuuchs2Unix
1
Saya telah memposting jawaban tetapi saya tampaknya dapat melakukan ping semua orang kecuali Anda (Penatua Geek) karena beberapa alasan aneh.
WinEunuuchs2Unix