PowerNow (Русский)
PowerNow это технология используемая в некоторых процессорах AMD. Она динамически изменяет напряжение и скорость процессора с целью уменьшить энергопотребление и тепловыделение. Ее еще называют Cool'n'Quiet.
Contents
Проверка поддержки PowerNow процессором
Если у Вас Intel Core 2:
# modprobe acpi_cpufreq
Если более ранний процессор Intel, то команда возвратит:
FATAL: Error inserting acpi_cpufreq (.../acpi-cpufreq.ko): No such device
тогда попробуйте:
# modprobe p4-clockmod # modprobe speedstep-ich
для Pentium 4 или Pentium III-M, или более ранних.
Если у Вас AMD64 (или Sempron-k8):
# modprobe powernow-k8
Если у Вас более старый процессор попробуйте модули powernow-k7 или powernow-k6.
Если процессор не поддерживает PowerNow, или Cool'n'Quiet отключен в BIOS'e Вы увидите ошибку сразу после попытки загрузки модуля:
FATAL: Error inserting powernow_k8 (/lib/modules/2.6.16-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/powernow-k8.ko): No such device
Чтобы проверить поддерживает ли загруженное ядро PowerNow! напишите
# dmesg | grep powernow
Вывод должен выглядеть примерно так (пример для AMD64 3400+ Clawhammer)
powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.60.2) powernow-k8: 0 : fid 0x10 (2400 MHz), vid 0x2 (1500 mV) powernow-k8: 1 : fid 0xe (2200 MHz), vid 0x6 (1400 mV) powernow-k8: 2 : fid 0xc (2000 MHz), vid 0xa (1300 mV) powernow-k8: 3 : fid 0xa (1800 MHz), vid 0xe (1200 mV) powernow-k8: 4 : fid 0x2 (1000 MHz), vid 0x12 (1100 mV)
Настройка PowerNow в ядре
Загрузите модули powernow-k8, cpufreq_powersave, cpufreq_userspace, cpufreq_conservative, cpufreq_ondemand и freq_table используя modprobe, добавьте их в массив MODULES в файле /etc/rc.conf.
Затем воспользуйтесь одной из команд для загрузки соответствующей политики энергосбережения статичное минимальное энергопотребление
- echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
динамическая политика, повышающая энергопотребление по надобности (рекомендуется для мобильных устройств вроде ноутбуков)
- echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
аналог предыдущей, но рекомендуется для настольных систем
- echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Настройка Изменения Частоты из пространства пользователя (с использованием cpudyn)
# pacman -S acpid cpudyn
Запуск cpudyn:
# /etc/rc.d/cpudyn start
Добавьте cpudyn в массив DAEMONS в файле /etc/rc.conf.
Настройка cpudyn и acpid выходит за рамки этой статьи.
Тестирование
Чтобы проверить работает ли изменение частоты, выполните:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
и сравните с:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Также можно выполнить:
cat /dev/urandom > /dev/null
в другой консоли, scaling_cur_freq должен сравняться с scaling_max_freq.
Альтернатива: cpufrequtils
Это более простой и прямолинейный способ настройки. This is a much easier and straight-forward method of setting this up.
1. Установите cpufrequtils
pacman -S cpufrequtils
2. Отредактируйте должным образом /etc/conf.d/cpufreq
# доступные политики: # ondemand, performance, powersave, conservative, userspace governor="ondemand" # возможные суффиксы: Hz, kHz (default), MHz, GHz, THz min_freq="2.25GHz" max_freq="3GHz"
Обязательно проверьте эти частоты, т.к. по умолчанию выставлены именно вышеприведенные.
3. Добавьте нужный модуль (напр. powernow, powernow-k6, или powernow-k8) в массив MODULES в файле /etc/rc.conf - по умолчанию они не загружаются.
4. Добавьте 'cpufreq' в массив DAEMONS в файле /etc/rc.conf чтобы он запускался во время загрузки. Чтобы запустить его прямо сейчас:
/etc/rc.d/cpufreq start