如何在 10.04 或 10.10 Ubuntu(2.6.36 或更高版本,如果需要)上正确配置Wake-On-USB ?(Wake-on-USB 是指计算机处于睡眠状态,例如 USB 键盘事件唤醒机器!)笔记本电脑是Acer Aspire Timeline X 1830T。我不知道 Linux 内核以哪种方式支持控制器。
有不同的方法可以解决这个问题,例如 /proc/acpi/wakeup... 或 UDEV... 或带有 HAL 的东西?
/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 端口吗?
我想让机器从 Suspend-To-Ram (S3, ACPI standard
) 中唤醒,以防按下外部键盘上的键。它只有在按下笔记本电脑内部键盘上的一个键时才会唤醒……从挂起到内存。如果我插入 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 上工作!
非常感谢,马吕斯
系统的 ACPI 表似乎有问题,因为没有 USB* 设备与 PCI 总线绑定。
在我的笔记本电脑上,当我插入 USB 键盘时,我可以在输出中看到 pci 路径0000:00:1d.0
dmesg
:从那里我可以在 中找到 ACPI 设备名称
/proc/acpi/wakeup
,并在其中回显以启用它:我假设由于您的系统缺少 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 设备时触发脚本。/usr/local/sbin
udev脚本要求脚本在chmod 755 /usr/local/sbin/usb-wakeup
./etc/udev/rules.d/56-wakeupusb.rules
/usr/local/sbin/usb-wakeup
使用 lsusb 获取您的 USB 设备的产品和供应商 ID:
在我的情况下,它的鼠标 ID 为 0458:002e,然后您创建新的 udev 规则:
插入此代码并将 idVendor 和 idProduct 替换为来自 lsusb 的正确 ID
重新启动并测试。在 11.04 和 12.04 上测试(也可以在较低版本上工作)。我在这个论坛帖子中找到了答案(来自ederopaa的答案)