Обычно я редактирую файл / etc / fstab, чтобы включить «noatime» в мои разделы. Это отключит запись последнего времени доступа к файлам / папкам, поэтому меньше записывается на ваш HDD / SSD и, следовательно, меньше используется батарея. Я также обнаружил, что использование SSD даст вам дополнительное время работы от аккумулятора из-за отсутствия физических движущихся частей внутри.
Кажется, что что-то может быть неправильно в таблице 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 и повторить его, чтобы включить его: [ ! d3]
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 .
/etc/udev/rules.d/56-wakeupusb.rules /usr/local/sbin/usb-wakeupИспользуйте lsusb для получения идентификатора продукта и поставщика вашего устройства USB:
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
SUBSYSTEM=="usb", ATTRS{idVendor}=="0458", ATTRS{idProduct}=="002e" RUN+="/bin/sh -c 'echo enabled > /sys$env{DEVPATH}/../power/wakeup'"
Перезагрузите и проверьте. Протестировано 11.04 и 12.04 (может работать и на более низких версиях). Я нашел ответ на этом форуме (ответ от ederopaa)