Сайт | Скачать | Видео | Wiki

Автор Тема: Управление питанием (power management)  (Прочитано 4178 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Управление питанием (power management)
« : 18 Февраль 2010, 10:05:45 »
Как в puppy реализован сабж? Накопилось несколько проблем, с которыми хотелось бы разобраться.

1. При длительном отсутствии обращеий засыпает жесткий диск. Само по себе это неплохо, но буквально через несколько секунд система будит его снова. Винту частые переходы в спящий режим явно не пойдут на пользу. Хотелось бы увеличить время бездействия перед уходом винта в спячку. Где покрутить? hdparm бодро рапортует - "AdvancedPM=yes: disabled (255)"

2. При закрытии крышки ноута он пытается уйти в стендбай, но выйти из него уже не может. Хотелось бы по закрытию крышки просто гасить экран, а по кнопке питания идти в стендбай. Где покрутить?

3. Собственно выход из спящего режима. После выхода отваливается звук и иногда сеть. Логично предположить, что выгрузка/загрузка соответствующих модулей ядра решит проблему. Опять же - где их прописать?

Система Puppy-420-ru-k2.6.25.16-opera-v5

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Управление питанием (power management)
« Ответ #1 : 21 Февраль 2010, 20:30:10 »
Отвечаю сам себе (похоже это становится традицией  :-\)

Управление питанием "из коробки" не реализовано. Чтобы его задействовать нужны некоторые телодвижения.

1. Засыпающий не вовремя винт можно взбодрить с помощью hdparm -S 120 /dev/sda. Эта команда установит интервал ожидания перед уходом в спячку 10 минут. За подробностями в man. Я прописал ее себе в /etc/rc.d/rc.local

2. Чтобы иметь возможность покрутить реакцию на события acpi надо этот самый acpid установить. Я поставил пакет acpid-1.0.10-1.pet. Дальше все просто. Есть события и есть действия в ответ на эти события. Все это добро находится в /etc/acpi и разобраться с ним не составит труда.

3. Самое интересное. Чтобы корректно уйти в suspend а главное потом оттуда выйти надо немного пошаманить. Надо остановить а потом снова запустить alsa и возможно сеть, если с ней будут возникать проблемы. Остановить alsa мешает микшер (absvolume) который "держит" ядерный модуль snd_mixer_oss и не дает завершиться alsa. Соответственно микшер надо прибить а при выходе из suspend заново запустить. Вот что у меня получилось:

Фрагмент файла /etc/acpi/actions/suspend.sh

Код
# process before suspend
# sync for non-usb drives
sync
rmmod ehci_hcd
killall absvolume
/etc/rc.d/rc.alsa stop

#suspend
echo -n mem > /sys/power/state

# process at recovery from suspend
modprobe ehci_hcd
#/etc/rc.d/rc.network restart
/etc/rc.d/rc.alsa start
modprobe snd_mixer_oss
absvolume &

С таким скриптом мой ноут благополучно засыпает и просыпается. Если кому-нибудь пригодится буду рад.

Оффлайн RemDerBauer

  • Старожил
  • ****
  • Сообщений: 312
  • Репутация: +4/-0
Re: Управление питанием (power management)
« Ответ #2 : 21 Февраль 2010, 20:33:26 »
есть тут такой е44, вот бы ему поучиться у Вас решать свои проблемы!
а традиция отвечать самому себе возникла потому, что большинство народа юзает паппи время от времени и в большинстве своем на стационарах) ИМХО
Мы наш, мы новый мир построим... если будем прикладывать к этому хоть немного усилий