Làm cách nào để định cấu hình WakeOnUSB đúng cách?


13

Làm cách nào để định cấu hình Wake-On-USB đúng cách trên Ubuntu 10.04 hoặc 10.10 (2.6.36 trở lên nếu cần)? (Wake-on-USB là khi máy tính đang ngủ và ví dụ như một sự kiện Bàn phím USB đánh thức máy!) Máy tính xách tay là Acer Aspire Timeline X 1830T . Tôi không biết Linux Kernel hỗ trợ các bộ điều khiển theo cách nào.

Có nhiều cách khác nhau để tiếp cận điều này, ví dụ / Proc / acpi / Wakeup ... hoặc UDEV ... hoặc một cái gì đó với HAL?

/proc/acpi/wakeup hiển thị mọi thiết bị trong S4, nhưng tôi cần 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, là Suspend-To-Disk afaik ... dường như cũng không hoạt động nếu tôi lặp USB1 vào bảng đánh thức. Nó chỉ đặt một cờ S4.
  • Tôi có thể nhận các cổng USB trong S3 không?

Tôi muốn làm cho máy thức dậy từ Suspend-To-Ram (S3, ACPI standard) trong trường hợp phím trên bàn phím ngoài của tôi được nhấn. Nó chỉ thức dậy nếu một phím trên bàn phím Laptop bên trong được nhấn ... từ Suspend To Ram. Có vẻ như nếu tôi cắm chuột USB, cổng USB thậm chí không được cấp nguồn. Tôi không có tùy chọn BIOS để thay đổi điều này.

Thông tin cụ thể khác về thiết bị:

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

Nếu điều này không hiệu quả, tôi phải giải thích chính xác lý do tại sao :( - nhưng tôi nghĩ rất khó để nghiên cứu nội bộ hạt nhân này. Có gợi ý nào cho thông tin tốt ở đây không? Tôi hy vọng có thể ... Tôi chỉ tìm kiếm bất kỳ giải pháp nào .

chỉnh sửa: này, đánh thức trên USB, hoạt động trên Windows!

Cảm ơn rất nhiều, Marius


1
Nếu như bạn nói bạn không có tùy chọn BIOS để đặt tín hiệu của Cổng USB bên ngoài và nếu các thiết bị USB bên ngoài thậm chí không có nguồn (có ý nghĩa đối với máy tính xách tay chạy bằng pin) - thì nó hoạt động thế nào? Ubuntu không có phép thuật để làm điều này.
Takkat

Nó hoạt động trên Windws. Vì vậy, tôi cho rằng có một tùy chọn để chuyển các cờ cụ thể cho CTNH. ;) Tôi có tâm lý Top Gun này khi nói đến phần cứng và Linux: mọi người đều có thể lái máy bay vận tải và chạy Windows. Nhưng chỉ một vài người có thể lái máy bay chiến đấu và chạy Linux;)
wishi

Ồ vâng, Top Gun: mọi người đều có thể làm sập Windows nhưng sập Linux là một công việc thực sự khó khăn ;-). Nếu thức dậy trên mạng LAN hoạt động với Windows, thiết bị USB của bạn chắc chắn được cấp nguồn (có thể ở chế độ tiết kiệm năng lượng hoặc hơn).
Takkat

Câu trả lời:


4

Có vẻ như có điều gì đó không ổn với bảng ACPI của hệ thống do không có thiết bị USB * nào được gắn với bus PCI.

Trên máy tính xách tay của tôi, khi tôi cắm bàn phím USB, tôi có thể thấy đường dẫn pci 0000: 00: 1d.0dmesgđầu ra:

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

Từ đó tôi có thể tìm thấy tên thiết bị ACPI /proc/acpi/wakeupvà lặp lại để kích hoạt nó:

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

Tôi cho rằng vì việc ánh xạ bus pci sang thiết bị ACPI bị thiếu cho hệ thống của bạn, nên sẽ không thể làm cho nó hoạt động được. Bạn có thể cần bắt đầu gỡ lỗi DSDT để tiến xa hơn. http://acpi.sourceforge.net/dsdt/index.php


1

Tôi tìm thấy trên Ubuntu Lucid 10.04.3 với 2.6.32-37 rằng việc sử dụng /proc/acpi/wakeuplà vô giá trị. Dường như đó /syslà điều duy nhất quan trọng.

usb-wakeupKịch bản của tôi được liên kết bên dưới đi /sysngược cây để chỉ bật các thiết bị usbhid, còn gọi là bàn phím và chuột. Nó cũng cho phép các trung tâm mẹ và bộ điều khiển của họ. Đây là những gì tôi cần để làm cho nó hoạt động. Quy tắc udev kích hoạt tập lệnh khi khởi động và khi bất kỳ thiết bị usbhid nào được cắm.

Kịch bản udev yêu cầu tập lệnh phải ở trong /usr/local/sbinvà đảm bảo làm cho tập lệnh có thể thực thi được chmod 755 /usr/local/sbin/usb-wakeup.


1

Sử dụng lsusb để lấy ID sản phẩm và nhà cung cấp của thiết bị usb của bạn:

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

Trong trường hợp của tôi, chuột của nó có ID 0458: 002e, sau đó bạn tạo quy tắc udev mới:

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

Chèn mã này và thay thế idVendor và idSản phẩm bằng id chính xác từ lsusb

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

Khởi động lại và kiểm tra. Đã thử nghiệm vào ngày 11.04 và 12.04 (cũng có thể hoạt động trên các phiên bản thấp hơn). Tôi tìm thấy câu trả lời trong bài đăng diễn đàn này (câu trả lời từ ederopaa )


1
Chào mừng bạn đến hỏi Ubuntu! Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Eliah Kagan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.