Як правильно налаштувати WakeOnUSB?


13

Як правильно налаштувати Wake-On-USB на 10.04 або 10.10 Ubuntu (при необхідності 2.6.36 і вище)? (Пробудження на 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, що є afaik Suspend-To-Disk ..., схоже, не працює, якщо я повторюю USB1 у таблицю пробудження. Він просто встановлює прапор S4.
  • чи можу я отримати USB-порти в S3?

Я хочу зробити машину з пробудження від Suspend-To-Ram (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!

Велике спасибі, Маріусе


1
Якщо, як ви говорите, у вас немає можливості BIOS для передачі сигналів зовнішніх USB-портів, а якщо зовнішні USB-пристрої навіть не мають живлення (має сенс для ноутбуків, керованих акумулятором) - як на землі це має працювати тоді? У Ubuntu немає ніякої магії для цього.
Таккат

Це працює на Windws. Тому я припускаю, що є можливість передавати конкретні прапори HW. ;) У мене такий менталітет Top Gun, що стосується обладнання та Linux: кожен може літати на транспортному літаку та запускати Windows. Але лише кілька людей можуть літати бойовими
реактивами

О так, Top Gun: всі можуть вийти з ладу Windows, але аварія Linux - це справді важка робота ;-). Якщо функція wake for LAN працює з Windows, то ваш USB-пристрій, безумовно, працює (можливо, в режимі економії енергії або так).
Таккат

Відповіді:


4

Здається, що з таблицею ACPI системи може бути щось не так, оскільки жоден з USB * пристроїв не прив’язаний до шини PCI.

На своєму ноутбуці, коли я підключаю клавіатуру USB, я бачу шлях pci 0000: 00: 1d.0 у dmesgвиході:

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

Звідти я можу знайти ім'я пристрою ACPI /proc/acpi/wakeupта повторити його, щоб увімкнути його:

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

Я б припустив, що оскільки відображення шини pci для пристрою ACPI відсутнє у вашій системі, неможливо запрацювати. Можливо, вам доведеться почати налагодження DSDT, щоб пройти значно далі. http://acpi.sourceforge.net/dsdt/index.php


1

На 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

Використовуйте lsusb, щоб отримати ідентифікатор продукту та постачальника вашого USB-пристрою:

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

У моєму випадку його миша з ідентифікатором 0458: 002e, тоді ви створюєте нове правило udev:

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

Вставте цей код і замініть idVendor та idProduct правильними ідентифікаторами від lsusb

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

Перезавантажте і протестуйте. Тестовано 11.04 та 12.04 (може працювати і в нижчих версіях). Я знайшов відповідь в цьому форумі пост (відповідь від ederopaa )


1
Ласкаво просимо в Ask Ubuntu! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Елія Каган
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.