Linux и прочий опенсорс я люблю, можно сказать, с детства. И поскольку мой прошлый ноутбук с лицензионной Windows XP канул в лету немного сломался и был продан. То на новый ноутбук я, недолго думая, решил установить Linux. А так как в Linux многие элементарные (для Windows) вещи делаются через жопу и не с первого раза порой достатоно сложно, то я решил написать о том, что лично у меня получилось исправить/добавить довести до рабочего состояния в Ubuntu Natty 11.04 (дистр не новый, но мало ли, вдруг пригодится кому-то).
Я знаю, подобные статьи принято писать на разных "хабрах" но у меня нет желания там региться только для этого. Так что буду писать здесь по мере происхождения материала для написания.
А новые фото тоже будут. Скоро ))
Итак. Меня интересовала возможность уменьшить стандартные значения напряжений питания процессора для различных P-state, в целях экономии энергии и уменьшения шума системы охлаждения. В Windows для процессоров AMD это отлично умеет делать RMclock, я о ней даже
статью писал. А вот в Linux оказалось не так всё просто, но тоже возможно. На просторах интернета нашлась программа
TurionPowerControl, которая позволяет редактировать P-stateы процессора, если они не заблокированы (да, разогнать получится только феномы Black-серии). Необходимое условие для того, чтобы эти P-Stateы были перечитаны (и применены) драйвером энергосбережения, этот самый драйвер (у меня powernow-k8) должен быть собран в виде модуля и после изменения P-Stateов драйвер нужно перезагрузить (rmmod/modprobe). Но в Ubuntu этот драйвер вкомпилен в ядро, поэтому мне пришлось его пересобрать, но это не так уж сложно, а с сегодняшними мощностями и довольно быстро. Заодно и другие опции энергосбережения в ядре подкрутил.
Вобщем, для моего процессора "AMD Phenom(tm) II N930 Quad-Core Processor" стабильно заработали такие напряжения:
core 0 pstate 0 - En:1 VID:48 FID:4 DID:0.00 Freq:2000 VCore:0.9500
core 0 pstate 1 - En:1 VID:52 FID:1 DID:0.00 Freq:1700 VCore:0.9000
core 0 pstate 2 - En:1 VID:60 FID:12 DID:1.00 Freq:1400 VCore:0.8000
core 0 pstate 3 - En:1 VID:63 FID:6 DID:1.00 Freq:1100 VCore:0.7625
core 0 pstate 4 - En:1 VID:68 FID:0 DID:1.00 Freq:800 VCore:0.7000
Фабричные приводить лень, их можно глянуть у себя командой:
$ sudo TurionPowerControl -l
Скрипт для применения этих настроек:
#!/bin/sh
rmmod powernow-k8
#echo powernow removed
#sleep 1s
modprobe cpuid
modprobe msr
#echo CPUID and MSR installed
#sleep 1s
#TurionPowerControl -set core all ps 0 f 2000 vc 0.95 ps 1 f 1600 vc 0.85 ps 2 f 1200 vc 0.7625 ps 3 f 800 vc 0.7 ps 4 f 400 vc 0.7 > /dev/null 2>&1
TurionPowerControl -set core all ps 0 f 2000 vc 0.95 ps 1 f 1700 vc 0.9 ps 2 f 1400 vc 0.8 ps 3 f 1100 vc 0.7625 ps 4 f 800 vc 0.7 > /dev/null 2>&1
echo Pstates tweaked
#sleep 1s
modprobe powernow-k8
#echo powernow installed
rmmod cpuid
rmmod msr
#Run powernowd after tweaking to using updated freqs
#/etc/init.d/powernowd start
#!/bin/sh
rmmod powernow-k8
#echo powernow removed
#sleep 1s
modprobe cpuid
modprobe msr
#echo CPUID and MSR installed
#sleep 1s
#TurionPowerControl -set core all ps 0 f 2000 vc 0.95 ps 1 f 1600 vc 0.85 ps 2 f 1200 vc 0.7625 ps 3 f 800 vc 0.7 ps 4 f 400 vc 0.7 > /dev/null 2>&1
TurionPowerControl -set core all ps 0 f 2000 vc 0.95 ps 1 f 1700 vc 0.9 ps 2 f 1400 vc 0.8 ps 3 f 1100 vc 0.7625 ps 4 f 800 vc 0.7 > /dev/null 2>&1
echo Pstates tweaked
#sleep 1s
modprobe powernow-k8
#echo powernow installed
rmmod cpuid
rmmod msr
#Run powernowd after tweaking to using updated freqs
#/etc/init.d/powernowd start
Кстати, ещё можно уменьшить частоты (увеличить нельзя), но я не увидел в этом особого смысла, только тормоза добавлялись.
И как это часто бывает в Linux, одну и ту же задачу можно выполнить сотней другой способов в этом случае только двумя способами. Второй способ я не крутил, т.к. нашёл его позже и совсем случайно, а зачем мне два? Но ссылки укажу )
Cсылки
Способ первый:
amdath800.dyndns.org/amd/ Способ второй:
david.gnedt.eu/blog/2011/05/20/linux-phc-for-ub...www.linux-phc.org/ Ещё на тему энергосбережения в Linux:
www.lesswatts.org/projects/powertop/faq.php И за компанию оказалось, что дефолтное ядро глючноватое и надо бы его обновить (а потом и пересобрать ))) ).
bugs.launchpad.net/ubuntu/+source/linux/+bug/76...