¿Cómo configuro WakeOnUSB correctamente?

13

¿Cómo configuro Wake-On-USB correctamente en un Ubuntu 10.04 o 10.10 (2.6.36 y superior si es necesario)? (¡Wake-on-USB es cuando la computadora está dormida y, por ejemplo, un evento de teclado USB activa la máquina!) La computadora portátil es una Acer Aspire Timeline X 1830T . No sé de qué manera el kernel de Linux es compatible con los controladores.

Hay diferentes formas de abordar esto, por ejemplo / proc / acpi / wakeup ... o UDEV ... o algo con HAL?

/proc/acpi/wakeup muestra todos los dispositivos en S4, pero necesito 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, que es afaik Suspend-To-Disk ... tampoco parece funcionar si hago eco de USB1 en la mesa de activación. Simplemente establece una bandera S4.
  • ¿Puedo obtener los puertos USB en S3?

Quiero hacer que la máquina se active desde Suspend-To-Ram (S3, ACPI standard) en caso de que se presione una tecla en mi teclado externo . Solo se activa si se presiona una tecla en el teclado interno del portátil ... desde Suspender hasta Ram. Parece que si conecto un mouse USB, el puerto USB ni siquiera está alimentado. No tengo la opción de BIOS para cambiar esto.

Más información específica sobre el dispositivo:

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

Si esto no funciona, tengo que explicar adecuadamente por qué :( - pero creo que es muy difícil investigar este núcleo interno. ¿Alguna sugerencia para una buena información aquí? Espero que sea posible ... Estoy buscando alguna solución .

editar: esto, despertarse en USB, ¡funciona en Windows!

Muchas gracias marius

wishi
fuente
1
Si, como usted dice, no tiene una opción de BIOS para transmitir señales de puertos USB externos, y si los dispositivos USB externos ni siquiera tienen alimentación (tiene sentido para portátiles con batería), ¿cómo debería funcionar esto? Ubuntu no tiene magia para hacer esto.
Takkat
Funciona en Windws. Así que supongo que hay una opción para pasar banderas específicas al HW. ;) Tengo esta mentalidad de Top Gun cuando se trata de hardware y Linux: todos pueden volar un avión de transporte y ejecutar Windows. Pero solo unas pocas personas pueden volar aviones de combate y ejecutar Linux;)
wishi
Ah, sí Top Gun: todos pueden bloquear Windows, pero bloquear Linux es un trabajo realmente difícil de hacer ;-). Si Wake on LAN funciona con Windows, su dispositivo USB ciertamente está alimentado (tal vez en modo de ahorro de energía más o menos).
Takkat

Respuestas:

4

Parece que algo puede estar mal con la tabla ACPI del sistema ya que ninguno de los dispositivos USB * está conectado a un bus PCI.

En mi computadora portátil, cuando conecto mi teclado USB, puedo ver la ruta pci 0000: 00: 1d.0 en la dmesgsalida:

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

Desde allí puedo encontrar el nombre del dispositivo ACPI /proc/acpi/wakeupy hacer eco para habilitarlo:

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

Supongo que dado que la asignación del bus pci al dispositivo ACPI no se encuentra en su sistema, no será posible que funcione. Es posible que deba comenzar a depurar el DSDT para avanzar mucho más. http://acpi.sourceforge.net/dsdt/index.php

Kees Cook
fuente
1

Encontré en Ubuntu Lucid 10.04.3 con 2.6.32-37 que usar no /proc/acpi/wakeuptiene valor. Parece que /syses lo único que importa.

Mi usb-wakeupscript vinculado a continuación recorre el /sysárbol en reversa para habilitar solo los dispositivos usbhid, también conocidos como el teclado y el mouse. También habilita sus concentradores y controladores principales. Esto es lo que me tomó para que funcionara. La regla udev activa el script en el arranque y cuando se conecta cualquier dispositivo usbhid.

El guión udev requiere el guión para estar en /usr/local/sbin, y asegúrese de hacer el script ejecutable, chmod 755 /usr/local/sbin/usb-wakeup.

Nathan Grennan
fuente
1

Use lsusb para obtener la identificación del producto y del proveedor de su dispositivo usb:

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

En mi caso, su mouse con ID 0458: 002e, entonces crea una nueva regla udev:

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

Inserte este código y reemplace idVendor e idProduct con identificadores correctos de lsusb

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

Reiniciar y probar. Probado en 11.04 y 12.04 (también puede funcionar en versiones inferiores). Encontré la respuesta en esta publicación del foro (respuesta de ederopaa )

dafyk
fuente
1
Bienvenido a Ask Ubuntu! Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Eliah Kagan