Bagaimana cara mengkonfigurasi WakeOnUSB dengan benar?

13

Bagaimana cara mengkonfigurasi Wake-On-USB dengan benar pada Ubuntu 10,04 atau 10,10 (2,6,36 dan lebih tinggi jika diperlukan)? (Wake-on-USB adalah ketika komputer tertidur dan misalnya acara Keyboard USB membangunkan mesin!) Notebook ini adalah Acer Aspire Timeline X 1830T . Saya tidak tahu bagaimana Kernel Linux mendukung pengontrol.

Ada berbagai cara untuk mendekati ini, misalnya / proc / acpi / wakeup ... atau UDEV ... atau sesuatu dengan HAL?

/proc/acpi/wakeup menunjukkan setiap perangkat di S4, tapi saya butuh S3.

Device S-state Status Sysfs node
P0P2 S4 *disabled
PEGP S4 *disabled
P0P1 S0 *disabled pci:0000:00:1e.0
EHC1 S4 *disabled pci:0000:00:1d.0
USB1 S4 *enabled
USB2 S4 *disabled
USB3 S4 *disabled
USB4 S4 *disabled
EHC2 S4 *disabled pci:0000:00:1a.0
USB5 S4 *disabled
USB6 S4 *disabled
USB7 S4 *disabled
HDEF S0 *disabled pci:0000:00:1b.0
RP01 S5 *disabled pci:0000:00:1c.0
PXSX S5 *disabled pci:0000:01:00.0
RP02 S0 *disabled pci:0000:00:1c.1
PXSX S5 *disabled pci:0000:02:00.0
RP03 S0 *disabled
PXSX S5 *disabled
RP04 S0 *disabled
PXSX S5 *disabled
RP05 S0 *disabled
PXSX S5 *disabled
RP07 S0 *disabled
PXSX S5 *disabled
RP08 S0 *disabled
PXSX S5 *disabled
GLAN S0 *disabled
PEG3 S4 *disabled
PEG5 S4 *disabled
PEG6 S4 *disabled
SLPB S3 *enabled
  • S4, yang merupakan Suspend-To-Disk afaik ... tampaknya tidak berfungsi baik jika saya memasukkan USB1 ke tabel wakeup. Itu hanya menetapkan bendera S4.
  • bisakah saya mendapatkan port USB dalam S3?

Saya ingin membuat mesin dinyalakan dari Suspend-To-Ram (S3, ACPI standard) seandainya tombol pada keyboard eksternal saya ditekan. Itu hanya bangun jika tombol pada keyboard Laptop internal ditekan ... dari Suspend To Ram. Sepertinya saya pasang mouse USB, bahwa port USB bahkan tidak bertenaga. Saya tidak punya opsi BIOS untuk mengubahnya.

Informasi spesifik lebih lanjut mengenai perangkat:

usb-devices
T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 13 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=04d9 ProdID=1603 Rev=03.10
S: Manufacturer=
S: Product=USB Keyboard
C: #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=usbhid
I: If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid

root@underwater-laptop:/# lsusb
[...]
Bus 001 Device 013: ID 04d9:1603 Holtek Semiconductor, Inc.
Bus 001 Device 004: ID 0bda:0138 Realtek Semiconductor Corp.
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[...]

Jika ini tidak berhasil, saya harus menjelaskan mengapa :( - tapi saya pikir sangat sulit untuk meneliti internal kernel ini. Adakah petunjuk untuk informasi yang baik di sini? Saya harap ini mungkin ... Saya hanya mencari solusi apa pun .

edit: ini, bangun di USB, berfungsi di Windows!

Terima kasih banyak, Marius

wishi
sumber
1
Jika seperti yang Anda katakan Anda tidak memiliki opsi BIOS untuk memasukkan sinyal Port USB eksternal, dan jika perangkat USB eksternal bahkan tidak memiliki daya (masuk akal untuk notebook yang digerakkan oleh baterai) - bagaimana mungkin ini bekerja? Ubuntu tidak memiliki keajaiban untuk melakukan ini.
Takkat
Ini bekerja di Windws. Jadi saya berasumsi ada opsi untuk memberikan flag tertentu ke HW. ;) Saya memiliki mentalitas Top Gun ini ketika datang ke perangkat keras dan Linux: semua orang dapat menerbangkan pesawat transportasi dan menjalankan Windows. Tetapi hanya beberapa orang yang dapat menerbangkan jet tempur dan menjalankan Linux;)
wishi
Oh ya Top Gun: semua orang bisa crash Windows tetapi Linux crash adalah pekerjaan yang sangat sulit ;-). Jika wake on LAN bekerja dengan Windows, perangkat USB Anda pasti diaktifkan (mungkin dalam mode hemat energi atau lebih).
Takkat

Jawaban:

4

Tampaknya ada sesuatu yang salah dengan tabel ACPI sistem karena tidak ada perangkat USB * yang terikat pada bus PCI.

Di laptop saya, ketika saya mencolokkan keyboard USB saya, saya dapat melihat jalur pci 0000: 00: 1d.0 dalam dmesgoutput:

input: ... as /devices/pci0000:00/0000:00:1d.0/usb6/6-2/6-2.3/6-2.3:1.0/input/input14

Dari sana saya dapat menemukan nama perangkat ACPI /proc/acpi/wakeup, dan menggemakannya untuk mengaktifkannya:

USB0  S3 enabled  pci:000:00:1d.0

Saya akan berasumsi bahwa karena pemetaan pci bus ke perangkat ACPI hilang untuk sistem Anda, itu tidak akan mungkin untuk membuatnya berfungsi. Anda mungkin perlu mulai men-debug DSDT untuk melangkah lebih jauh. http://acpi.sourceforge.net/dsdt/index.php

Kees Cook
sumber
1

Saya menemukan di Ubuntu Lucid 10.04.3 dengan 2.6.32-37 bahwa menggunakan /proc/acpi/wakeuptidak berharga. Tampaknya /sysadalah satu-satunya hal yang penting.

usb-wakeupSkrip saya yang ditautkan di bawah berjalan /syspohon secara terbalik untuk mengaktifkan perangkat usbhid saja, alias keyboard dan mouse. Ini juga memungkinkan hub dan pengontrol induknya. Inilah yang saya perlukan untuk membuatnya bekerja. Aturan udev memicu skrip saat boot, dan ketika perangkat usbhid apa pun dicolokkan.

Skrip udev mengharuskan skrip berada /usr/local/sbin, dan pastikan skrip dapat dieksekusi chmod 755 /usr/local/sbin/usb-wakeup,.

Nathan Grennan
sumber
1

Gunakan lsusb untuk mendapatkan ID produk dan vendor perangkat usb Anda:

Bus 004 Device 002: ID 0458:002e KYE Systems Corp. (Mouse Systems)

Dalam kasus saya mouse-nya dengan ID 0458: 002e, maka Anda membuat aturan udev baru:

sudo nano /etc/udev/rules.d/90-keyboardwakeup.rules

Masukkan kode ini dan ganti idVendor dan idProduct dengan id yang benar dari lsusb

SUBSYSTEM=="usb", ATTRS{idVendor}=="0458", ATTRS{idProduct}=="002e" RUN+="/bin/sh -c 'echo enabled > /sys$env{DEVPATH}/../power/wakeup'"

Mulai ulang dan uji. Diuji pada 11.04 dan 12.04 (dapat bekerja pada versi yang lebih rendah juga). Saya menemukan jawabannya di posting forum ini (jawaban dari ederopaa )

dafyk
sumber
1
Selamat Datang di Tanya Ubuntu! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Eliah Kagan