Prima che con il tempo mi dimentichi tutto, scrivo questo piccolissimo how-to sulla mia configurazione per lo scaling della cpu.
La configurazione prevede questo: quando accendo il portatilino, se l’alimentazione è presente viene settata la politica di performance, altrimenti powersave.
Inoltre durante l’uso del pc, se viene scollegato o ricollegato l’alimentatore, viene automaticamente settata la relativa politica.
-
yaourt -S acpid pm-utils
-
[~] grep DAEMONS /etc/rc.conf DAEMONS=(acpid !cpufreq ... )
notate che ho disabilitato il demone cpufreq perchè quando uso l’alimentatore preferisco usare la politica performance, ma se usate la ondemand potete abilitarlo.
-
[~] cat /etc/conf.d/cpufreq #configuration for cpufreq control # valid governors: # ondemand, performance, powersave, # conservative, userspace governor="ondemand" min_freq="800MHz" max_freq="1.60GHz"
-
Modificate la sezione ac_adapter) del file /etc/acpi/handler.sh come segue:
ac_adapter) case "$2" in ACAD) case "$4" in 00000000) echo "conservative" >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo "conservative" >/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor echo -n $minspeed >$setspeed #/etc/laptop-mode/laptop-mode start ;; 00000001) echo "performance" >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo "performance" >/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor echo -n $maxspeed >$setspeed #/etc/laptop-mode/laptop-mode stop ;; esac ;; *) logger "ACPI action undefined: $2" ;; esac ;;Comunque per sapere se quei codici e stringhe che ci sono nei vari case sono corretti, potete usare acpi_listen da shell, provando a scollegare e a ricollegare il cavo d’alimentazione.
- Infine questo script controlla lo stato della batteria al boot e setta la politica corrispondente, fate in modo che venga eseguito al boot ad esempio facendolo eseguire dall’rc.local:
[~] cat /home/marinz/battery_governor.sh #!/bin/bash # # battery_governor.sh # marinz at email dot it ac_adapter="ACAD" # check it with acpi_listen governor="powersave" # don't edit: # state=`sed "s/.*off-line.*/off-line/" /proc/acpi/ac_adapter/$ac_adapter/state` if [ "$state" = "off-line" ]; then cpufreq-set --governor $governor fi

