Como configuro o Wake-On-USB corretamente em um Ubuntu 10.04 ou 10.10 (2.6.36 e superior, se necessário)? (Wake-on-USB é quando o computador está em suspensão e, por exemplo, um evento de teclado USB ativa a máquina!) O notebook é um Acer Aspire Timeline X 1830T . Não sei de que maneira o Kernel do Linux suporta os controladores.
Existem diferentes maneiras de abordar isso, por exemplo / proc / acpi / wakeup ... ou UDEV ... ou algo com o HAL?
/proc/acpi/wakeup
mostra todos os dispositivos no S4, mas eu preciso do 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
- O S4, que é um recurso de Suspensão em Disco ... também não parece funcionar se eu ecoar USB1 na mesa de ativação. Apenas define um sinalizador S4.
- posso obter as portas USB no S3?
Desejo ativar a máquina a partir de Suspender-para-Ram (S3, ACPI standard
) caso uma tecla do teclado externo seja pressionada. Ele acorda apenas se uma tecla do teclado interno do laptop for pressionada ... de Suspender para memória ram. Parece que, se eu conectar um mouse USB, a porta USB nem sequer está ligada. Não tenho opção de BIOS para alterar isso.
Mais informações específicas sobre o 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
[...]
Se isso não funcionar, preciso explicar corretamente o porquê :( - mas acho muito difícil pesquisar esse kernel interno. Alguma dica para obter informações boas aqui? Espero que seja possível ... Estou apenas procurando por uma solução .
edit: este, acordando no USB, funciona no Windows!
Muito obrigado, Marius
Respostas:
Parece que algo pode estar errado com a tabela ACPI do sistema, pois nenhum dos dispositivos USB * está vinculado a um barramento PCI.
No meu laptop, quando conecto meu teclado USB, vejo o caminho pci 0000: 00: 1d.0 na
dmesg
saída:A partir daí, posso encontrar o nome do dispositivo ACPI
/proc/acpi/wakeup
e fazer eco para ativá-lo:Eu diria que, como o mapeamento do barramento pci para o dispositivo ACPI está ausente no sistema, não será possível fazê-lo funcionar. Pode ser necessário iniciar a depuração do DSDT para avançar ainda mais. http://acpi.sourceforge.net/dsdt/index.php
fonte
Eu encontrei no Ubuntu Lucid 10.04.3 com 2.6.32-37 que o uso
/proc/acpi/wakeup
é inútil. Parece que/sys
é a única coisa que importa.Meu
usb-wakeup
script vinculado abaixo percorre a/sys
árvore ao contrário para ativar apenas dispositivos usbhid, também conhecidos como teclado e mouse. Ele também permite seus hubs e controladores pai. Foi o que foi necessário para que eu funcionasse. A regra do udev aciona o script na inicialização e quando qualquer dispositivo usbhid estiver conectado.O script udev requer que o script esteja
/usr/local/sbin
, e certifique-se de torná-lo executávelchmod 755 /usr/local/sbin/usb-wakeup
,./etc/udev/rules.d/56-wakeupusb.rules
/usr/local/sbin/usb-wakeup
fonte
Use lsusb para obter o ID do produto e do fornecedor do seu dispositivo USB:
No meu caso, seu mouse com o ID 0458: 002e, você cria uma nova regra do udev:
Insira este código e substitua idVendor e idProduct pelos ids corretos de lsusb
Reinicie e teste. Testado em 11.04 e 12.04 (também pode funcionar em versões inferiores). Encontrei a resposta nesta postagem do fórum (resposta da ederopaa )
fonte