Wie konfiguriere ich WakeOnUSB richtig?

13

Wie konfiguriere ich Wake-On-USB richtig auf einem 10.04 oder 10.10 Ubuntu (2.6.36 und höher, falls erforderlich)? (Wake-on-USB ist, wenn der Computer schläft und beispielsweise ein USB-Tastaturereignis die Maschine aufweckt!) Das Notebook ist ein Acer Aspire Timeline X 1830T . Ich weiß nicht, auf welche Weise der Linux-Kernel die Controller unterstützt.

Es gibt verschiedene Möglichkeiten, dies zu erreichen, zum Beispiel / proc / acpi / wakeup ... oder UDEV ... oder etwas mit HAL?

/proc/acpi/wakeup zeigt jedes Gerät in S4, aber ich brauche 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, das ist Suspend-To-Disk afaik ... scheint auch nicht zu funktionieren, wenn ich USB1 in die Aufwecktabelle zurückgebe. Es setzt nur ein S4-Flag.
  • kann ich die USB-Ports in S3 bekommen?

Ich möchte, dass die Maschine von Suspend-To-Ram (S3 ACPI standard) aufgeweckt wird, falls eine Taste auf meiner externen Tastatur gedrückt wird. Es wird nur aktiviert, wenn eine Taste auf der internen Laptoptastatur gedrückt wird ... von Suspend To Ram. Wenn ich eine USB-Maus anschließe, ist der USB-Anschluss anscheinend nicht einmal mit Strom versorgt. Ich habe keine BIOS-Option, um dies zu ändern.

Weitere spezifische Informationen zum Gerät:

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
[...]

Wenn dies nicht funktioniert, muss ich erklären, warum :( - aber ich denke, es ist sehr schwer, diesen internen Kernel zu recherchieren. Ich hoffe, es ist möglich ... Ich bin nur auf der Suche nach einer Lösung .

Bearbeiten: Das Aufwachen über USB funktioniert unter Windows!

Vielen Dank, Marius

wishi
quelle
1
Wenn Sie, wie Sie sagen, keine BIOS-Option haben, um Signale von externen USB-Ports durchzuleiten, und wenn externe USB-Geräte nicht einmal mit Strom versorgt werden (macht Sinn für batteriebetriebene Notebooks) - wie soll das dann funktionieren? Ubuntu hat keine Magie, um dies zu tun.
Takkat
Es funktioniert auf Windows. Daher gehe ich davon aus, dass es eine Option gibt, bestimmte Flags an die HW zu übergeben. ;) Ich habe diese Top Gun-Mentalität, wenn es um Hardware und Linux geht: Jeder kann ein Transportflugzeug fliegen und Windows ausführen. Aber nur wenige Leute können Kampfjets fliegen und Linux betreiben;)
wishi 29.10.10
Oh ja, Top Gun: Jeder kann Windows zum Absturz bringen, aber Linux zum Absturz zu bringen ist eine wirklich schwere Aufgabe ;-). Wenn Wake-on-LAN mit Windows funktioniert, ist Ihr USB-Gerät mit Strom versorgt (möglicherweise im Energiesparmodus oder so).
Takkat

Antworten:

4

Es scheint, dass etwas mit der ACPI-Tabelle des Systems nicht stimmt, da keines der USB * -Geräte an einen PCI-Bus gebunden ist.

Wenn ich auf meinem Laptop meine USB-Tastatur einstecke, sehe ich den PCI-Pfad 0000: 00: 1d.0 in der dmesgAusgabe:

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

Von dort aus kann ich den ACPI-Gerätenamen in /proc/acpi/wakeupfinden und ihn wiedergeben, um ihn zu aktivieren:

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

Ich würde davon ausgehen, dass die Zuordnung des PCI-Busses zum ACPI-Gerät für Ihr System nicht funktioniert. Möglicherweise müssen Sie mit dem Debuggen des DSDT beginnen, um weiterkommen zu können. http://acpi.sourceforge.net/dsdt/index.php

Kees Cook
quelle
1

Ich fand auf Ubuntu Lucid 10.04.3 mit 2.6.32-37, dass die Verwendung /proc/acpi/wakeupwertlos ist. Es scheint /sysdas Einzige zu sein, was zählt.

Mein usb-wakeupunten verlinktes Skript /sysbewegt den Baum in umgekehrter Reihenfolge, um nur usbhid-Geräte (Tastatur und Maus) zu aktivieren. Außerdem werden die übergeordneten Hubs und Controller aktiviert. Das war es, was ich brauchte, um es zum Laufen zu bringen. Die udev-Regel löst das Skript beim Booten und beim Anschließen eines USBHID-Geräts aus.

Für das udev-Skript muss das Skript vorhanden sein. /usr/local/sbinStellen Sie sicher, dass das Skript ausführbar ist chmod 755 /usr/local/sbin/usb-wakeup.

Nathan Grennan
quelle
1

Verwenden Sie lsusb, um die Produkt- und Lieferanten-ID Ihres USB-Geräts abzurufen:

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

In meinem Fall ist die Maus mit der ID 0458: 002e, dann erstellen Sie eine neue udev-Regel:

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

Geben Sie diesen Code ein und ersetzen Sie idVendor und idProduct durch die korrekten IDs von lsusb

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

Rebooten und testen. Getestet am 11.04 und 12.04 (funktioniert möglicherweise auch mit niedrigeren Versionen). Ich fand die Antwort in diesem Forum Post (Antwort von ederopaa )

dafyk
quelle
1
Willkommen bei Ask Ubuntu! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Eliah Kagan