Keyboard berhenti bekerja di Ubuntu 16.04 (Xenial Xerus)


17

Keyboard saya berhenti berfungsi tanpa alasan yang jelas.

Setelah menggunakan Ubuntu selama 2,5 tahun sebagai mesin virtual pada host Windows ( VirtualBox ) saya akhirnya mengambil risiko, memformat ulang hard disk saya dan membangun sistem dengan Ubuntu kemarin. Pagi ini saya keyboard saya berhenti bekerja.

Saya melihat banyak posting tentang Ubuntu dan keyboard atau mouse USB berhenti bekerja secara acak. Mereka menunjukkan bahwa itu adalah pengeluaran otomatis mematikan daya untuk perangkat USB untuk menghemat daya, dan ketika perangkat USB tidak kompatibel dalam beberapa, USB tidak 'bangun' sebagaimana mestinya.

Saya mencoba saran yang diposting di Memperbaiki USB Autosuspend .

Tapi tidak berhasil. Saya juga mencoba saran lain yaitu boot tanpa keyboard dan kemudian pasang setelah Ubuntu dimulai.

Berikut ini beberapa detailnya:

  • Saya menggunakan keyboard Kinesis yang sama dengan Ubuntu sebagai mesin virtual selama dua tahun terakhir, tidak ada masalah.
  • Kinesis memiliki makro dan memicu makro memicu masalah 100%. Namun, itu terjadi ketika saya hanya mengetik (tidak ada makro) juga.
  • Saya mencoba Kinesis di laptop sekarang. Ini adalah mesin berusia satu tahun itu saya menempatkan Ubuntu 16.04 pada dua pekan lalu. Menggunakan makro keyboard Kinesis tidak mereproduksi masalah.

Mesin Masalah

  • Dell XPS, berusia 6 tahun, desktop yang
  • Menginstal Ubuntu 16.04 kemarin
  • Menggunakan Kinesis Keyboard Keuntungan USB
  • Mencabut / re-mencolokkan keyboard telah bekerja 9 dari 10 kali
  • Reboot karya maupun
  • Saya tidak berpikir itu adalah masalah daya USB karena LED pada keyboard tetap menyala dan perangkat USB lainnya tetap berfungsi.
  • Saya memiliki USB dan mouse Bluetooth yang terpasang pada mesin. Keduanya tetap bekerja bahkan ketika Kinesis berhenti.
  • Saya biasanya memiliki keyboard bermerek Dell kedua yang biasa dipasang untuk orang-orang non-Kinesis yang perlu menggunakan komputer saya. Sebelumnya hari ini keyboard ini berhenti bekerja setiap kali Kinesis berhenti bekerja. Namun sekarang, memicu masalah dengan makro, keyboard Dell terus bekerja.

Kinesis, yang saya telah selama 8 tahun sekarang, telah memungkinkan bagi saya untuk tetap keyboard. Jika saya tidak bisa menyelesaikan ini, saya harus kembali ke Windows yang akan sangat mengecewakan.

Setiap saran tentang hal-hal untuk dicoba atau cara-cara untuk debugging ini akan sangat dihargai.

Saya menggali driver USB, yang di Linux saya tidak tahu tentang. Namun, saya telah menemukan bahwa laptop memiliki port USB 2.0 dan 3.0. Desktop (dengan masalah) hanya USB 2.0. Masih menggali ...


Saya menggunakan keyboard Kinesis yang sama dengan Ubuntu sebagai mesin virtual selama 2 tahun terakhir, tidak ada masalah. Apakah Anda benar-benar menyerahkan keyboard untuk mesin virtual? Kalau tidak, itu akan melalui driver host OS dan VirtualBox.
Melebius

Selama 3 tahun saya menggunakan Ubuntu sebagai VM dengan host Windows dan tidak punya masalah dengan keyboard. Sekarang host adalah Ubuntu GNOME dan tamu adalah Ubuntu GNOME juga, saya mengalami masalah ini.
klequis

Maka Anda tidak menggunakan keyboard fisik Anda di OS tamu. Virtualbox menyajikan keyboard virtual ke OS tamu secara default. (jadi tidak masalah jika Anda menggunakan sama keyboard fisik, seperti itu tidak sama)
karatedog

Lihat pertanyaan serupa ini: askubuntu.com/questions/688445/laptop-keyboard-stopped-working Paket instalasi xserver-xorg-input-allbekerja untuk saya ketika saya meningkatkan keUbuntu 17.04
Lilás

Jawaban:


7

Saya memiliki masalah yang sama dengan Ubuntu 16.04 (Xenial Xerus) dan mencari banyak solusi ...

Solusinya ada di akhir jawaban ini jika Anda tidak peduli dengan konteksnya. Konteks mungkin terlihat seperti blabla yang tidak berguna (mungkin itu), tapi saya pikir itu bisa membantu pembaca untuk memeriksa apakah masalah yang telah saya pecahkan pada PC saya sama dengan yang mereka miliki.

KONTEKS

Saya putus asa telah berhasil diuji di dekat setiap tips saya telah menemukan di web, reboot setelah setiap dicoba:

  • usbcore.autosuspend=-1parameter boot kernel '/ etc / default / grub'
  • laptop-mode 'runtime-pm.conf' CONTROL_RUNTIME_AUTOSUSPEND=0
  • sepenuhnya menonaktifkan Laptop Mode Tools dari file '/etc/laptop-mode/laptop-mode.conf', mengkonfirmasi bahwa masalahnya tidak terkait dengan fitur kernel ini. Saya telah memeriksa berbagai cara agar laptop_mode tidak berjalan lagi untuk memastikan. (Ref: man laptop-mode.conf& man laptop_mode)
  • Saya sudah membaca beberapa trik tentang '/etc/laptop-mode/conf.d/usb-autosuspend.conf', tetapi file ini tidak ada dalam versi saya Ubuntu 16.04 dengan laptop-mode-tools v1.68
  • penghapusan instalasi aplikasi powertop . Ini sering diduga di forum menyebabkan masalah autosuspend, dan hari ini saya tahu bahwa itu tidak benar dalam kasus saya seperti menguninstall itu tidak memperbaiki apa-apa.
  • options usbcore autosuspend=1 di '/etc/modprobe.d/usb.conf' telah tidak efisien juga
  • Script '/etc/udev/rules.d/60-power.rules' yang disediakan oleh Gentoo Wiki resmi
  • khusus perangkat rulesfile untuk udev'/etc/udev/rules.d/usb-power.rules' direkomendasikan oleh Serge Y. Stroobandt

Setelah membaca semua hal-hal teknis ini saya hanya mengerti bahwa penyebabnya terkait dengan '/ sys / modul / usbcore / parameter / autosuspend' nilai saya terjebak di dua detik, tidak peduli apa yang mengubah saya lakukan untuk konfigurasi saya. Anda dapat memeriksanya dengan catperintah:

$ cat /sys/module/usbcore/parameters/autosuspend
2

Dan ya, mouse saya dinonaktifkan persis setelah dua detik, jadi aku tahu aku berada di jalan yang benar. Tentu saja saya telah menguji echo -1perintah yang saya lihat di sana-sini, -1dimaksudkan untuk menonaktifkan autosuspend ... tetapi:

sudo echo -1 > sys/module/usbcore/parameters/autosuspend
bash: /sys/module/usbcore/parameters/autosuspend: Permission denied

Saya tidak mengerti mengapa izin ditolak bahkan dalam mode sudo. Saya tidak mencoba sebagai root, karena saya tidak berpikir itu bisa menjadi masalah. Berikut adalah kesalahan :(

Berkat Alex Dekker & Bryce komentar , saya telah belajar bagaimana untuk menonaktifkan autosuspend hanya untuk mouse. Tapi tentu saja mencoba pertama saya gagal dengan ini bash: Permission denied error, jadi saya harus menunggu untuk memahami saya kebingungan root / sudo sebelum echo -1perintah yang disarankan oleh Alex akhirnya kerja.

Saya juga menemukan cara yang lebih baik untuk mengeksekusi perintah sebagai akar pengguna tanpa login sebagai root. Perbedaan antara shell root dan akar penggunaan perintah juga dijelaskan di Ubuntu resmi halaman RootSudo wiki . Saya suka belajar hal semacam ini, tapi hei! Mengapa harus selalu dipelajari dengan cara yang menyakitkan? LOL

OMG, itu benar-benar sakit kepala, dan butuh banyak waktu untuk dipahami seorang pemula seperti saya, seperti yang biasanya saya katakan "tidak ada otak, tidak ada keuntungan". Tambang secara nyata membutuhkan lebih banyak pelatihan.

Jadi mari kita berhenti bicara tentang diri saya dan perbaiki! Silakan lanjutkan di bawah ...


Saya sangat merekomendasikan solusi kedua untuk HDD eksternal Anda yang menganggur untuk tidak menguras baterai laptop Anda secara gratis. Tapi saya memberikan Anda berdua solusi, karena siapa yang mencintai kebebasannya sendiri harus saling mencintai kebebasan juga :)

SOLUSI 1

Untuk menonaktifkan belanja otomatis pada setiap perangkat / port USB

  1. Buka Terminal dan jalankan:

    sudo sh -c "echo -1 > /sys/module/usbcore/parameters/autosuspend"
    
  2. Ini memang solusi sementara yang memungkinkan Anda untuk langsung menguji apakah perintah ini memperbaiki masalah pengeluaran mouse atau keyboard Anda.

  3. Jika perangkat USB Anda berfungsi dengan baik sekarang, cukup edit skrip '/etc/rc.local' Anda sehingga itu akan menjalankan perintah itu setiap kali sistem di-boot. Dengan cara ini Anda akan melakukan perbaikan jenis permanen . Edit file, misalnya dengan nano:

    sudo nano /etc/rc.local
    
  4. dan letakkan echo -1perintah di file '/etc/rc.local' sebelum exit 0baris

    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    (...)
    # By default this script does nothing.
    echo -1 > /sys/module/usbcore/parameters/autosuspend
    exit 0
    
  5. Hidupkan Kembali komputer Anda

(Silakan periksa Penting catatan di akhir.)

.

SOLUSI 2

Untuk autosuspend menonaktifkan untuk spesifik perangkat USB / port

  1. Opsi daya untuk perangkat USB berada di /sys/bus/usb/devices/n-n/power. Apa n-nadalah untuk perangkat tertentu membutuhkan manipulasi beberapa untuk mencari tahu, tapi itu tidak rumit. Contoh di bawah ini menunjukkan bagaimana saya telah menentukan bahwa nomor port USB dari penerima mouse nirkabel saya adalah 3-1, jadi tolong sesuaikan ini dengan situasi Anda sendiri:

    • Cabut perangkat USB Anda, buka Terminal dan jalankan sudo dmesgperintah

    • Hubungkan perangkat USB Anda kembali, dan kemudian jalankan sudo dmesglagi di Terminal untuk cek untuk perubahan

    • Beginilah akhir dari dmesgoutput perintah saya setelah mencolokkan mouse saya kembali ke dalam slot:

      [40208.575249] usb 3-1: new full-speed USB device number 8 using xhci_hcd
      [40208.705233] usb 3-1: New USB device found, idVendor=062a, idProduct=4102
      [40208.705240] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
      [40208.705245] usb 3-1: Product: 2.4G Wireless Mouse
      [40208.705248] usb 3-1: Manufacturer: MOSART Semi.
      [40208.707679] input: MOSART Semi. 2.4G Wireless Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:062A:4102.0007/input/input24
      [40208.763946] hid-generic 0003:062A:4102.0007: input,hiddev0,hidraw0: USB HID v1.10 Mouse [MOSART Semi. 2.4G Wireless Mouse] on usb-0000:00:14.0-1/input0
      

    Sekarang kita dapat melihat bahwa port tempat perangkat USB saya dicolokkan diidentifikasi usb 3-1.

    **Note:** this trick concerns the USB port ID, not a device ID. For example, if I plug my mouse to the next USB port, it becomes identified as `usb 3-2` in the `dmesg` result. But this solution #2 remains very useful if you take the habit to always plug your mice or keyboard to the same port, and it's generally what people use to do unconsciously ;)
    
  2. Jalankan perintah berikut di Terminal Anda, ubah nomor port saya 3-1dengan yang Anda temukan di dmesghasil Anda sendiri :

    sudo sh -c "echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms"
    

    Perhatikan bahwa autosuspend_delay_mstelah menggantikan usang autosuspendsejak kernel versi 2.6.38, menurut dokumentasi resmi Linux .

  3. Ini memang solusi sementara , tetapi Anda sekarang dapat dengan mudah menguji apakah perintah ini memperbaiki masalah pengeluaran mouse atau keyboard Anda.

  4. Jika perangkat USB Anda berfungsi dengan baik sekarang, cukup edit skrip '/etc/rc.local' Anda sehingga itu akan menjalankan perintah itu setiap kali sistem di-boot. Dengan cara ini Anda akan membuat semacam perbaikan permanen . Edit file, misalnya dengan nano:

    sudo nano /etc/rc.local
    
  5. dan menempatkan echo -1perintah dalam Anda '/etc/rc.local' berkas sebelum exit 0line, sekali lagi jangan lupa untuk jumlah perubahan pelabuhan n-ndi perintah:

        #!/bin/sh -e
        #
        # rc.local
        #
        # This script is executed at the end of each multiuser runlevel.
        (...)
        # By default this script does nothing.
        echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms
        exit 0
    
  6. Hidupkan Kembali komputer Anda

.

Penting: jangan lupa bahwa Anda harus menjalankan sudo sh -cperintah "sementara" lagi secara manual jika Anda putuskan / menyambung kembali perangkat USB Anda saat lingkungan desktop Anda sudah mulai, bahkan jika Anda pasang kembali pada konektor USB yang sama. Normal, hanya karena '/etc/rc.local' file yang disebut hanya sekali pada sistem startup.

Bagaimanapun, penyelesaian mungkin dilakukan. Orang-orang yang lebih terampil mungkin memiliki metode yang lebih pintar, tetapi saya telah mengkonfigurasi alias khusus-port di Ubuntu. Ini memungkinkan saya untuk menggunakan perintah sederhana usb1atau usb2selektif jika saya harus mencabut / mencabut perangkat USB saya di sini atau di sana. Kamu juga! Anda juga bisa membuat alias alias bermain dengan kata-kata pendek alih-alih mengetikkan perintah lengkap. Mudah diatur dalam waktu kurang dari dua menit dan juga berfungsi dengan Alt+ F2:)

Lebih banyak ide untuk membuatnya lebih mudah juga akan sangat disambut.


terima kasih atas jawaban ini. Sayangnya, saya tidak dapat menguji untuk mengonfirmasi ini adalah jawabannya. Oleh karena itu, tidak yakin apakah aku harus menandai sebagai jawabannya.
klequis

Saya mencoba dan itu tidak membantu pada Ubuntu 16.0.4.2 VirtualBox 5.1.26
Pavlo

1

Saya memiliki masalah yang sama persis (keyboard Kinesis, berhenti bekerja setelah reboot).

Saya akhirnya tahu itu terkait dengan peningkatan kernel

  • sebelum reboot saya berada di versi 4.4.0-31-generik
  • setelah reboot itu 4.4.0-38-generik

Booting menggunakan kernel 4.4.0-31 yang lebih lama telah memperbaiki masalah ini untuk saya.

Posting ini berisi instruksi tentang cara mem-boot menggunakan kernel yang lebih lama (memungkinkan Anda untuk melihat apakah kernel yang lebih tua melakukan trik untuk Anda).


itu sangat mungkin bahwa mesin saya baru dibangun memiliki kernel yang lebih baru dari mesin virtual saya gunakan. Namun, masalah saya bukan keyboard berhenti bekerja setelah reboot, itu berfungsi dengan baik sampai saya menjalankan makro, di mana saat itu dimatikan. Sebagian besar penggunaan makro adalah untuk kunci pemrograman umum. Saya sekarang menggunakan editor Atom dan cara pintas / auto-type (apa pun namanya) melakukan sebagian besar yang saya butuhkan jadi saya senang dengan itu.
klequis

0

Jika Anda memiliki laptop-mode-tools dapat menonaktifkan USB auto-suspend sepenuhnya dengan mengubah:

AUTOSUSPEND_TIMEOUT=2

di

/etc/laptop-mode/conf.d/runtime-pm.conf

untuk

AUTOSUSPEND_TIMEOUT=-1

Perhatikan bahwa ada opsi yang dikomentari dalam file ini

untime-pm.conf:# Example: AUTOSUSPEND_DEVID_BLACKLIST="usbhid usb-storage"

Anda dapat mencoba bermain-main dengan opsi ini jika Anda ingin menyempurnakan pengaturan manajemen daya Anda.

CATATAN:

  • usbcore dikompilasi ke kernel.
  • menggunakan systemd
  • Ubuntu 16.10
  • Kernel Linux 4.8.0-41-generik # 44-Ubuntu

Saya juga mencatat bahwa di:
Antonio Medina

Bukan laptop dan saya sudah belajar hidup tanpanya, tapi terima kasih atas saran Anda.
klequis

Apakah laptop-mode-tools sedang berjalan tidak ada hubungannya dengan apakah sistem tersebut adalah laptop atau tidak. Server A / C saya selalu terhubung ke dinding sedang menjalankannya, dan mengatur AUTOSUSPEND_TIMEOUT = -1 pada file /etc/laptop-mode/conf.d/runtime-pm.conf yang akhirnya diperbaiki untuk saya, setelah berjuang dengan ini sejak saya memperbarui ke 16,04 dari 14,04.
Rezty Felty

0

Saya punya masalah yang sama. Bagi saya, solusinya sederhana, sementara alasan sebenarnya tidak diketahui.

Kemarin saya menghubungkan mouse kedua ke pc saya. Semuanya bekerja dengan baik. Hari ini, ketika saya boot, keyboard tidak berfungsi di layar login atau di desktop. Ini berfungsi saat boot, misalnya saya masuk ke bios.

Keyboard mulai berfungsi setelah saya mencabut mouse baru dan memasang kembali semua kabel usb.


Bisa jadi jumlah total perangkat USB (maksimal dua). Saya memiliki sistem seperti itu. Ini mungkin atau mungkin tidak terkait dengan jenis port USB, USB 2 vs USB 3. Sayangnya, saya tidak memiliki banyak pilihan di BIOS untuk mencoba mengatasinya.
Peter Mortensen


0

Saya telah membaca laporan ini dan lainnya berulang-ulang selama setahun terakhir, dan pada akhirnya menyerah menggunakan keyboard yang menyebabkan masalah dan beralih ke keyboard nirkabel.

Sampai saya sadar bahwa masalahnya dimulai sekitar waktu saya membangun PC baru, dan itu mungkin masalah daya. Jadi saya membeli bertenaga USB hub untuk menghubungkan keyboard untuk. Itu memecahkan masalah! Bagaimanapun, itu bukan masalah perangkat lunak, tetapi ternyata komputer baru saya memiliki keluaran USB yang kurang bertenaga (atau begitulah menurut keyboard saya).

Ini mungkin patut dicoba jika Anda menderita pemadaman keyboard intermiten seperti yang dijelaskan di atas dan tidak ada di sisi perangkat lunak yang berfungsi. Hub USB berdaya tidak perlu mahal.


Atau batas saat ini berlaku pada port USB? Misal 100 mA .
Peter Mortensen

0

Ini bukan jawaban yang saya cari tetapi ... Saya menghabiskan dua hari dan berjam-jam mencoba untuk menyelesaikan masalah ini. Saya membeli hub PCIe USB 3.0 untuk melihat apakah itu akan berhasil - tidak.

Kesimpulan saya adalah bahwa masalah ini tidak layak untuk diselesaikan, dan ada cara yang lebih baik untuk tujuan yang sama.

Solusi / solusi saya adalah mengandalkan fungsi cuplikan teks saya. Itu berarti saya akan berinvestasi dan lebih mengandalkan editor tertentu (kemungkinan besar adalah Atom ), tetapi ini akan lebih baik daripada apa yang saya miliki dengan makro keyboard karena snippet lebih mudah dirawat daripada macro keyboard.

Saya belajar banyak tentang USB dari Mengatur Ulang Subsistem USB .


Saya membeli Kinesis Advantage2 sekitar 3 bulan yang lalu. Pakai saja 10 tahun. Ini bekerja dengan baik. Tidak ada masalah yang dibahas dalam masalah ini.
klequis

Cuplikan (templat teks) sangat berguna, tetapi tidak dapat mengontrol kombinasi tombol, hanya teks murni (?). Misalnya Shift + Ctrl + Tab (untuk pindah ke tab berikutnya ke kiri di Firefox) tidak dapat dimasukkan ke dalam snippet
Peter Mortensen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.