Bangun dari menangguhkan menggunakan keyboard atau mouse USB nirkabel (untuk Distro Linux apa pun)

18

Saya mencari berjam-jam, mungkin lebih, untuk solusi dan saya baru saja menemukannya. Saya ingin membaginya dengan semua orang. Dengan cara ini akan lebih mudah googling masalah ini untuk menemukan solusi lebih cepat. Jadi, seperti judulnya, di bawah ini solusinya.

Pavlos Theodorou
sumber

Jawaban:

26

tekan di terminal:

grep . /sys/bus/usb/devices/*/power/wakeup

Hasilnya, bagi saya, adalah untuk mengetahui bahwa semua usb dinonaktifkan. Jadi sekarang, ketik:

1.

sudo su

kita sekarang memiliki rootillillage.

2. Saya memiliki 8 port usb ( Anda melakukannya untuk port usb sebanyak yang Anda miliki ), jadi:

echo enabled > /sys/bus/usb/devices/usb1/power/wakeup
echo enabled > /sys/bus/usb/devices/usb2/power/wakeup
echo enabled > /sys/bus/usb/devices/usb3/power/wakeup
echo enabled > /sys/bus/usb/devices/usb4/power/wakeup
echo enabled > /sys/bus/usb/devices/usb5/power/wakeup
echo enabled > /sys/bus/usb/devices/usb6/power/wakeup
echo enabled > /sys/bus/usb/devices/usb7/power/wakeup
echo enabled > /sys/bus/usb/devices/usb8/power/wakeup

Silakan dan uji itu. Sekarang Anda dapat bangun dari keyboard dan mouse usb nirkabel atau kabel.

Maka, alasan kita harus mengaktifkan semuanya, adalah karena pada langkah selanjutnya, kita akan menulis ini di rc.local untuk mengeksekusi perintah setelah setiap reboot, dan setelah reboot beberapa distro linux (mungkin semua) ganti port usb. Kami tidak perlu khawatir akan ada masalah dengan mengaktifkan semuanya, karena linux sedang ditangguhkan atau hibernasi, itu tidak dapat menggunakan wifi untuk mengunduh apa pun, sehingga tidak akan bangun tanpa kami bangun dengan sengaja .

Langkah berikutnya:

3.

sudo nano /etc/rc.local

dan kami menempelkan semuanya dari langkah 2. di sana (sebelum pintu keluar 0 tentu saja).

Itu dia. Mulai sekarang kita dapat menggunakan usb dan mouse nirkabel untuk bangun dari menangguhkan.

Saya harap ini berhasil untuk Anda semua. Panduan ini dibuat setelah menguji semua kemungkinan solusi lain di internet.

Pavlos Theodorou
sumber
6
Jika Anda ingin mengetahui perangkat yang mana, Anda dapat mencari /sys/bus/usb/devices/<device id>/productdeskripsi teks.
ntc2
Saya mengaktifkan semua perangkat di " grep . /sys/bus/usb/devices/*/power/wakeup" tetapi masih tidak berfungsi. Mungkin itu karena keyboard dan mouse terhubung secara tidak langsung - secara nirkabel ke dongle yang berada di layar? Layar terhubung melalui USB ke laptop.
AlikElzin-kilaka
1
seperti yang dikatakan @ ntc2, gunakan ini untuk melihat deskripsi masing-masing: grep . /sys/bus/usb/devices/*/productmembantu saya untuk mencari tahu apa yang saya lihat
Ben Yitzhaki
Jika ini masih tidak berhasil, pastikan perangkat Anda (keyboard / mouse) masih memiliki daya ketika PC dalam mode tidur. Jika tidak ada LED pada perangkat Anda, Anda dapat menggunakan monitor daya USB (dapat menemukannya sekitar $ 10 online) untuk memeriksa daya pada port USB.
J Smith
Bagian permanen dari pertanyaan ini tidak lagi berfungsi dengan setidaknya ubuntu 18.04. Penambahan ( askubuntu.com/a/874701/516072 ) untuk jawaban ini disediakan oleh pavlos-theodorou membantu untuk bagian permanen di Ubuntu 18.04
Laurens
10

Selain panduan saya di atas saya ingin menambahkan informasi ini, karena saya baru-baru ini menemukan bahwa beberapa perangkat usb nirkabel setelah bangun tidur, mereka kembali ke menonaktifkan. Saya ulangi, hanya beberapa perangkat usb yang melakukannya, tidak semua. Itu sebabnya saya tidak menambahkan panduan kecil ini di panduan saya.

Jadi Anda lakukan seperti yang saya perintahkan di atas dan komputer Anda berhasil bangun, tetapi kemudian pada hari itu tiba-tiba itu tidak bangun lagi.

Larutan:

Buka terminal dan lakukan:

lsusb

Pada informasi id perangkat keyboard Anda, 4 digit pertama adalah id vendor dan 4 digit berikutnya adalah id produk (lihat tangkapan layar) masukkan deskripsi gambar di sini

Selanjutnya lakukan:

sudo nano /etc/udev/rules.d/10-wakeup.rules

Di mana "bangun" masukkan nama skrip yang Anda inginkan. Nomor 10 adalah prioritas jika Anda memiliki banyak aturan udev lainnya, semakin rendah angka 'aturan' akan dijalankan sebelum yang lain.

Salin tempel ini dan ganti id vendor dan id produk dengan id vendor keyboard dan id produk nirkabel Anda sendiri.

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="062a", ATTRS{idProduct}=="4101" RUN+="/bin/sh -c 'echo enabled > /sys/bus/usb/devices/usb8/power/wakeup'"

* USB8 bagi saya adalah keyboard nirkabel saya (Anda juga dapat melihat bahwa di tangkapan layar (Bus 008)), ganti dengan milik Anda.

Ctrl+ Ountuk menyimpan, Ctrl+ Xuntuk keluar dan reboot.

Pavlos Theodorou
sumber
4
Lebih baik memasukkan ini ke dalam jawaban pertama Anda.
ntc2
1
mereka adalah 2 hal yang berbeda. yang pertama adalah jawaban untuk masalah bangun tidur. yang ke-2 lebih seperti "Cara membuat aturan untuk menjalankan boot tanpa" dan itu hanya "tambahan" karena tidak semua orang tahu bagaimana melakukan itu dan tidak ada panduan amatir sederhana untuk itu.
Pavlos Theodorou
2

Jawaban Pavlos Theodorou sangat membantu. Saya ingin menambahkan bahwa Anda dapat menemukan perangkat usb yang terhubung dengan mouse / keyboard saat boot-up dengan mem-pipkan dmesg melalui grep beberapa kali, kemudian egrep sekali, dan akhirnya menggunakan ekor untuk memastikan itu adalah yang terbaru masuk.

Dengan menggunakan metode ini, Anda tidak harus mengaktifkan wake pada ALL port usb.

Saya meletakkan yang berikut ini di file /etc/rc.local saya dan menemukan penerima logitech saya setiap waktu, bahkan jika dipindahkan dari satu port usb ke yang lain. Hanya mengganti nama Anda keyboard atau mouse dari dmesg di tempat "Logitech K270"

KB="$(dmesg | grep "Logitech K270 as" | grep -o -P "usb.{0,5}" | egrep -o ".{0,3}$" | tail -1)"
echo enabled > /sys/bus/usb/devices/${KB}/power/wakeup

Ini berfungsi saat boot, tetapi sepertinya tidak berjalan saat bangun dari menangguhkan, jadi saya harus meletakkan file skrip di / lib / systemd / system-sleep /. Menciptakannya, mengaturnya sebagai global eksekusi dan memberikan nama yang dimulai dengan digit nomor ganda antara 00 dan 99. naskah saya adalah sebagai berikut, lagi substite Anda keyboard / mouse verbage dari dmesg:

#!/bin/sh

# Action script to enable wake after suspend by keyboard or mouse

if [ $1 = post ]
    then
    KB="$(dmesg | grep "Logitech K270 as" | grep -o -P "usb.{0,5}" | egrep -o ".{0,3}$" | tail -1)"
    echo enabled > /sys/bus/usb/devices/${KB}/power/wakeup
fi

if [ $1 = pre ]
    then
    KB="$(dmesg | grep "Logitech K270 as" | grep -o -P "usb.{0,5}" | egrep -o ".{0,3}$" | tail -1)"
    echo enabled > /sys/bus/usb/devices/${KB}/power/wakeup
fi

Untuk beberapa alasan saya tidak bisa menjelaskan, 'posting' tidur jika pernyataan hanya berfungsi setiap bangun lainnya ... tetapi 'pra' tidur jika pernyataan tampaknya bekerja setiap saat.

jcn1
sumber
1

Tidak ada jawaban yang disebutkan di atas yang membantu saya. Itu sebabnya saya posting di sini sendiri.

Mengaktifkan / menonaktifkan bangun dari penangguhan untuk perangkat USB

Diuji dalam KDE neon 5.16.2, berdasarkan Ubuntu 18.04 tetapi harus bekerja dalam distribusi apa pun.


1. Tampilkan daftar perangkat USB untuk mengidentifikasi perangkat yang ingin Anda aktifkan / nonaktifkan:

grep . /sys/bus/usb/devices/*/product

Anda harus mendapatkan sesuatu seperti ini:

/ sys / bus / usb / devices / 3-3 / produk: Cord Optical Mouse
/sys/bus/usb/devices/3-4.3/product:802.11n WLAN Adapter
/sys/bus/usb/devices/3-4.4/product:USB Receiver
/sys/bus/usb/devices/3-4/product:USB2.0 Hub
/sys/bus/usb/devices/4-4/product:USB3.0 Hub
/ sys / bus / usb / devices / usb1 / produk: EHCI Host Controller
/ sys / bus / usb / devices / usb2 / produk: EHCI Host Controller
/ sys / bus / usb / devices / usb3 / produk: xHCI Host Controller
/ sys / bus / usb / devices / usb4 / produk: xHCI Host Controller


2. Periksa status bangun semua perangkat USB:

grep. / sys / bus / usb / devices / * / power / wakeup

hasilnya harus seperti ini:

/ sys / bus / usb / devices / 1-1 / power / wakeup: dinonaktifkan
/ sys / bus / usb / devices / 2-1 / power / wakeup: dinonaktifkan
/ sys / bus / usb / devices / 3-11 / power / wakeup: dinonaktifkan
/ sys / bus / usb / devices / 3-3 / power / wakeup: diaktifkan
/sys/bus/usb/devices/3-4.4/power/wakeup:disabled
/ sys / bus / usb / devices / 3-4 / power / wakeup: dinonaktifkan
/ sys / bus / usb / devices / 4-4 / power / wakeup: dinonaktifkan
/ sys / bus / usb / perangkat / usb1 / power / wakeup: dinonaktifkan
/ sys / bus / usb / perangkat / usb2 / power / wakeup: dinonaktifkan
/ sys / bus / usb / perangkat / usb3 / power / wakeup: dinonaktifkan
/ sys / bus / usb / perangkat / usb4 / power / wakeup: dinonaktifkan

Dalam kasus saya bangun hanya diaktifkan untuk perangkat USB 3-3 yang, menurut daftar sebelumnya, adalah "Kabel Mouse Optik".

Saya ingin mengaktifkan bangun dari hanya menunda untuk keyboard nirkabel dan menonaktifkannya untuk sisanya. Penerima USB keyboard terhubung ke HUB dan sesuai dengan 3-4.4 pada daftar sebelumnya ("Penerima USB").


3. Buat skrip yang berfungsi:

Untuk memiliki izin root:

sudo su

Kemudian kita membuat file untuk skrip (file dapat disebut "usbwakeup" atau deskriptif apa pun yang Anda inginkan):

nano /etc/init.d/usbwakeup 

Isi file. Cukup sesuaikan dengan kebutuhan Anda dengan mengubah bagian "TINDAKAN SCRIPT" (Saya suka menambahkan komentar ke skrip untuk mengetahui apa yang sebenarnya mereka lakukan jika saya membukanya lagi suatu hari nanti):

#! / bin / bash
#
#######################
# INFORMASI UMUM #
#######################
#
# - Skrip ini mengaktifkan / menonaktifkan bangun dari suspend # untuk perangkat USB.
#
# - Skrip membutuhkan izin eksekusi.
#
# - Agar skrip ini dijalankan ketika sistem dimulai, harus ada
# tautan simbolik ke dalamnya di /etc/rc3.d/ dengan prioritas S01
# (misalnya: /etc/rc3.d/S01usbwakeup)
#
###########################
# PERINTAH BERMANFAAT TERKAIT #
###########################
#
# - Identifikasi perangkat USB:
# grep. / sys / bus / usb / perangkat / * / produk
#
# - Periksa status "bangun suspensi" perangkat USB:
# grep. / sys / bus / usb / devices / * / power / wakeup
#
#
###################
# TINDAKAN SCRIPT #
###################
#
# Nonaktifkan bangun dari menangguhkan untuk mouse optik
echo dinonaktifkan> / sys / bus / usb / devices / 3-3 / power / wakeup
#
# Memungkinkan bangun dari penangguhan untuk keyboard nirkabel
bahwa saya telah terhubung ke USB 3.0 HUB di port USB nr.4
echo enabled> /sys/bus/usb/devices/3-4.4/power/wakeup


4. Berikan izin eksekusi:

chmod +x /etc/init.d/usbwakeup


5. Buat tautan simbolis di /etc/rc3.d/ untuk memulai boot:

sudo ln -s /etc/init.d/usbwakeup /etc/rc3.d/S01usbwakeup


Dengan me-restart sistem, semuanya harus berfungsi sebagaimana ditentukan dalam skrip. Perubahan akan tetap ada karena akan dieksekusi dengan setiap boot sistem.

Sumber berkonsultasi (terlepas dari posting ini):

https://ubuntuforums.org/showthread.php?t=2388336

https://www.thomasmonaco.com/prevent-usb-devices-waking-ubuntu-sleep/

/unix/83748/the-rc0-d-rc1-d-directories-in-etc

Juan Gómez Carrillo
sumber
Saya baru saja menemukan dan posting menarik di mana dijelaskan bagaimana membuat GUI sederhana untuk tujuan yang sama. Saya belum mengujinya tetapi mungkin bisa membantu seseorang mencoba membuatnya secara grafis dan dengan satu klik mudah untuk mengaktifkan / menonaktifkan: bernaerts-nicolas.fr/linux/74-ubuntu/220-ubuntu-resume-usb- hid
Juan Gómez Carrillo