10.04または10.10 Ubuntu(必要に応じて2.6.36以降)でWake-On-USBを適切に設定するにはどうすればよいですか? (Wake-on-USBは、コンピューターがスリープ状態で、たとえばUSBキーボードイベントがマシンを起動する場合です!)ノートブックはAcer Aspire Timeline X 1830Tです。 Linux Kernelがどのようにコントローラーをサポートしているのかわかりません。
これにアプローチするさまざまな方法があります。たとえば、/ proc/acpi/wakeup ...またはUDEV ...などです。
/proc/acpi/wakeup
はS4のすべてのデバイスを表示しますが、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
外部キーボードのキーが押された場合に備えて、サスペンドトゥラム(S3、ACPI standard
)からマシンをウェイクアップさせます。内部のラップトップキーボードのキーが押された場合にのみ起動します... Suspend To Ramから。 USBマウスを接続した場合、USBポートに電源が入っていないようです。これを変更するBIOSオプションはありません。
デバイスに関する詳細情報:
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
[...]
これがうまくいかない場合、私は適切に説明する必要があります:(-しかし、このカーネル内部を研究することは非常に難しいと思います。ここで良い情報のためのヒントはありますか? 。
編集:これは、USBで起動し、Windowsで動作します!
どうもありがとう、マリウス
USB *デバイスはいずれもPCIバスに接続されていないため、システムのACPIテーブルに問題がある可能性があります。
ラップトップでUSBキーボードを接続すると、dmesg
出力にpciパス0000:00:1d.0が表示されます。 :
input: ... as /devices/pci0000:00/0000:00:1d.0/usb6/6-2/6-2.3/6-2.3:1.0/input/input14
そこから、/proc/acpi/wakeup
でACPIデバイス名を見つけ、それを有効にするためにエコーインできます。
USB0 S3 enabled pci:000:00:1d.0
お使いのシステムでは、PCIバスからACPIデバイスへのマッピングが欠落しているため、動作させることができないと思います。さらに進むには、DSDTのデバッグを開始する必要があります。 http://acpi.sourceforge.net/dsdt/index.php
Ubuntu Lucid 10.04.3と2.6.32-37では、/proc/acpi/wakeup
を使用する価値がないことがわかりました。重要なのは/sys
だけであるようです。
以下にリンクされている私のusb-wakeup
スクリプトは、/sys
ツリーを逆にたどって、キーボードとマウスというusbhidデバイスだけを有効にします。また、親ハブとコントローラーを有効にします。これは私がそれを機能させるのにかかったものです。 udevルールは、起動時およびusbhidデバイスがプラグインされたときにスクリプトをトリガーします。
Udevスクリプトでは、スクリプトが/usr/local/sbin
にある必要があり、スクリプトを実行可能にするためにchmod 755 /usr/local/sbin/usb-wakeup
を作成してください。
Lsusbを使用して、USBデバイスの製品IDとベンダーIDを取得します。
Bus 004 Device 002: ID 0458:002e KYE Systems Corp. (Mouse Systems)
私の場合、ID 0458:002eのマウスは、新しいudevルールを作成します:
Sudo nano /etc/udev/rules.d/90-keyboardwakeup.rules
このコードを挿入し、idVendorとidProductをlsusbの正しいIDに置き換えます
SUBSYSTEM=="usb", ATTRS{idVendor}=="0458", ATTRS{idProduct}=="002e" RUN+="/bin/sh -c 'echo enabled > /sys$env{DEVPATH}/../power/wakeup'"
再起動してテストします。 11.04および12.04でテスト済み(下位バージョンでも動作する可能性があります)。このフォーラムで答えを見つけました post ( ederopaa からの答え)