Управление частотой процессора на eeePC 701

()

Давно известно что продолжительность работы ноутбука от батареи заметно увеличивается при снижении частоты процессора. Автор этих строк недавно задумался над решением этой проблемы на eeePC 701.

Сначала были подключены дополнительные репозитории с ПО. Как это сделать подробно описано в этой статье. Далее установлен пакет cpufrequtils. Однако, как показало дальнейшее исследование конфигов - установка этого пакета не нужна. Ну разве что для мониторинга текущей частоты процессора. Всё остальное же уже встроено в систему. Хотя по умолчанию и отключено.

Совершенно случайно была обнаружена утилита /usr/sbin/cpuspeed, принадлежащая пакету asus-eeepc-core. Тому же пакету принадлежит скрипт /usr/sbin/services.sh, в котором кроме всего прочего есть следующие строки:

#echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
#/sbin/cpuspeed

После раскомментирования этих строк (т.е. был убран символ "#" из начала) и перезапуска системы (или ручного выполнения этих команд в консоли) частота процессора стала меняться динамически.

Чтобы проверить это нам как раз и понадобиться пакет cpufreutils. А точнее утилита cpufreq-info, входящая в этот пакет. Выполним в терминале следующую команду:

while true; do clear; date; cpufreq-info; sleep 1; done

И посмотрим как в ходе работы меняется последняя строчка, как раз и показывающая текущую частоту процессора.

Если же мы просто хотим понизить частоту процессора до какой-то определённой величины (экспериментально проверено что для набора текстов в OpenOffice Writer достаточно частоты 225MHz), то тут уже без cpufrequtils не обойтись никак.

Итак. Во-первых надо обратно закомментировать раскомментированые строчки в /usr/sbin/services.sh. Далее привести файл /etc/default/cpufrequtils к следующему виду:

ENABLE="true"
GOVERNOR="ondemand"
MAX_SPEED=225000
MIN_SPEED=225000

Параметры MAX_SPEED и MIN_SPEED задают диапазон, в котором динамически будет изменяться частота процессора. Теперь самое интересное: система init-скриптов на eeePC отличается от оной в Debian, и потому команда:

update-rc.d cpufrequtils defaults

Действия не возымеет. Вместо этого нужно перечислить запускаемые сервисы в файле /etc/fastservices. Примерно вот так:

ssh
cpufrequtils

Далее запускаем cpufrequtils командой:

invoke-rc.d cpufrequtils start

И наслаждаемся работой:) Однако всё-таки в некоторые моменты частоты в 225MHz бывает недостаточно, потому верхний предел частоты всё-таки стоит сделать чуть выше чем 225MHz. Автор этих строк остановился на вот таком конфиге:

ENABLE="true"
GOVERNOR="ondemand"
MAX_SPEED=675000
MIN_SPEED=225000

Приятной работы!

Ключевые слова: eeepc, cpuspeed, cpufrequtils.

Комментарии:

2008-07-15 15:33:40 (#)

на самом деле понижение напряжения питания процессора будет иметь больший эффект.
не проверял на сколько увеличилось время работы?

MooSE 2008-07-15 16:12:06 (#)

ladm, пока возможности не было. как-то стараюсь избегать экстримальных условий. но если всё же попаду в такие - расскажу что и как:)

magerlab 2008-07-31 21:30:11 (#)

а как можно понизить напряжение?

я особого прироста времени при снижении частоты процессора не заметил, к сожалению

MooSE 2008-07-31 22:46:23 (#)

не знаю... как-то не возникало такой потребности. реально мой ееепц дольше часа без аккумулятора не работал. не в том смысле что аккумулятор такой, а в смысле что розетку я обычно находил.

а снижение частоты зато уменьшает нагрев:)

magerlab 2008-08-01 16:29:53 (#)

Я под puppyRus максимум до 3ч 40 минут доходил при чтении книжек и музыки в фоне и периодическом запуске seamonkey

p.s. вчера вот wifi прямо на улице пробовал
оказалось проблем вообще нет- просто посканировал на предмет сетей( сеть без шифрования оказалась)
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE

право военнослужащих на жилье, mail.