web-dev-qa-db-ja.com

WakeOnUSBを適切に構成するにはどうすればよいですか?

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
  • S4(Suspend-To-Disk afaik)は、USB1をウェイクアップテーブルにエコーした場合にも機能しないようです。 S4フラグを設定するだけです。
  • s3でUSBポートを取得できますか?

外部キーボードのキーが押された場合に備えて、サスペンドトゥラム(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で動作します!

どうもありがとう、マリウス

13
wishi

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

4
Kees Cook

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を作成してください。

1
Nathan Grennan

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でテスト済み(下位バージョンでも動作する可能性があります)。このフォーラムで答えを見つけました postederopaa からの答え)

1
dafyk