lunes, 9 de julio de 2012

Applets: Controla la frecuencia de la CPUs

Algunas veces puede ser necesario controlar la frecuencia a la que trabaja nuestra CPUs.
Por ejemplo en Pcs con problemas de sobrecalentamiento, o simplemente por que X aplicación hace que la frecuencia se dispare al máximo (cómo con las recodificaciones de vídeos) y nos interesa una frecuencia menor, aunque el proceso se alargue algo más.
En LMDE tenemos un Applet para el panel que va que ni pintado para esto.



En el Dock de Avant Window Navigator también podemos añadir otro bonito applet para este cometido.


Como se puede apreciar en las imágenes los applets muestran las frecuencias soportadas de trabajo de las CPUs de mi sistema.
 A parte de poder seleccionar la frecuencia  de trabajo deseada, aporta cuatro modos (perfiles) bien definidos de trabajo. Por defecto el modo utilizado es OnDemand. Que como su propio nombre indica: Utiliza la frecuencia más alta, bajándola según los requerimientos del sistema. Es decir este modo no hace nada, ya que el sistema trabaja así de por si.

Paso a explicar los diferentes perfiles:
Conservative
Utiliza de base la mínima frecuencia, pero la aumentará según los requerimientos del sistema.
PowerSave
Utiliza de forma permanente la mínima frecuencia del procesador.
OnDemand  (por defecto)
Utiliza la frecuencia más alta, bajándola según los requerimientos del sistema.
Performance
Utiliza de forma permanente la máxima frecuencia del procesador. Con el riesgo que ello conlleva.

Luego tenemos las diferentes frecuencias de trabajo soportadas, muy útiles para mantener en caso de sobrecalentamiento un nivel medianamente razonable de trabajo y a la vez posibilitar a que baje la temperatura.

Uno de los problemas que nos encontramos con estos applets es que cada vez que queramos modificar un modo o una frecuencia de trabajo nos pide la clave root. Esto sin ser aquí en Linux algo de otro mundo, puede ser un incordio para algunos tener que introducir la clave root para esto.
Si lo pensamos, tiene su buena lógica. Imaginemos que cualquier usuario puede modificar la frecuencia de la CPUs y selecciona el modo Performance y luego se las pira a la playa mientras deja el equipo trabajando. A lo mejor cuando vuelva se encuentra el Pc más morenito que él mismo, jeje.

Voy a explicar dos modos de solventar este problema. Es decir poder cambiar la frecuencias sin que nos pida ninguna clave.
El primer modo es para equipos que no se comparten con nadie. Es decir, de un solo usuario. Si hay más usuarios, todos podrán cambiar la frecuencia de las CPUs ya que esto se hace con carácter global.
El segundo modo es para equipos compartidos y tan solo los usuarios habilitados podrán cambiar la frecuencia de la CPUs.


Modo 1º:
Nos movemos hasta la ruta: /usr/share/polkit-1/actions/
Y buscamos e editamos los archivos llamados: 

org.gnome.cpufreqselector.policy
org.mate.cpufreqselector.policy

Lógicamente uno es para Gnome y otro es para MATE.

Nos movemos hasta el final del los archivos, donde encontraremos unas líneas tal que así:

<default>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</default> 
</action>

Debemos cambiar donde dice auth_admin_keep por la palabra yes quedando así:

<default>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</default> 
</action>

Guardamos el archivo y listo,ya podremos cambiar la frecuencia con un clic sin que nos pida la clave. Eso sí, ni a ti ni a nadie.

Modo 2º:
Nos movemos hasta la siguietne ruta: /var/lib/polkit-1/localauthority/50-local.d
Dentro de esta carpeta crearemos dos archivos. Como estamos en LMDE haremos uno para Gnome y otro para MATE. Ya que de lo contrario si lo hacemos solamente para Gnome funcionará perfectamente para el applet del panel de Avant pero no así para el del panel de MATE. Y si lo hacemos solo para MATE sucederá exactamente lo mismo pero a la inversa. Así que crearemos dos archivos que se llamaran así:

org.gnome.cpufreqselector.pkla
org.mate.cpufreqselector.pkla

Una vez creados estos archivo abriremos primero por ejemplo el de Gnome y añadiremos en su interior lo siguiente:

[org.gnome.cpufreqselector]
Identity=unix-user:UsuarioQueTendráPermiso
Action=org.gnome.cpufreqselector
ResultAny=no
ResultInactive=no
ResultActive=yes

Lo guardaremos y abriremos el otro, que no es otro que el de MATE, y añadiremos en su interior lo siguiente:

[org.mate.cpufreqselector]
Identity=unix-user:UsuarioQueTendráPermiso
Action=org.mate.cpufreqselector
ResultAny=no
ResultInactive=no
ResultActive=yes

Se debe prestar atención especialmente a la línea:
Identity=unix-user:UsuarioQueTendráPermiso
Es en esta donde tendremos que poner el usuario que tendrá permiso de modificar la frecuencia de la CPUs sin necesidad de rootearse. Por ejemplo en mi caso sería:
Identity=unix-user:frannoe

Listo ya tenemos los applets a nivel usuario configurados.

Tanto si tu equipo tiene problemas de sobrecalentamiento cómo si no, es muy recomendable tener esta opción a mano. En mi caso cómo comentaba al principio del artículo al recodificar vídeos la CPUs se disparan a pleno rendimiento (constante) de 2.40 GHz  mientras dura ese proceso. No tengo ningún problema si lo dejo así, pero prefiero bajarla a 2 GHz, la diferencia tampoco es tanta y el procesador lo agradece y los disipadores más aún.

Fuente

4 comentarios:

  1. A mi no se me carga el cpufrecqd al inicio, da error.

    Aunque el PC está en modo "On demand", no puedo controlar su funcionamiento desde el applet "Monitor de frecuencia" de MATE como hacía anteriormente desde un Ubuntu 10.10.

    Y me interesaría poder dejarlo al mínimo cuando está con poco uso. ¿Alguna forma para hacerlo?

    ResponderEliminar
    Respuestas
    1. ¿Tienes instalada la última actualización de MATE? la Wheezy.

      Eliminar
  2. ¿Es el modo o perfil Conservative el que más tiempo nos permitiría usar el portátil sólo con la batería, sin conexión a la red eléctrica de 220 o 230 V?

    Supongamos que con el applet cambio el modo a Conservative. ¿Se mantiene tras reiniciar el ordenador? Si no, ¿cómo se podría conseguir esto? Por ahí comentan que se puede usando gconf-editor y modificando valores de claves dentro de /apps/gnome-power-manager/cpufreq, pero en mi caso no hay cpufreq (ni lo de dentro, claro) (uso Linux Mint).

    Gracias por los tutoriales

    ResponderEliminar
    Respuestas
    1. En teoría sí, ya que se mantendrá por base al mínimo requerido.
      Y sí, la modificaciones realizadas en el Applet se guardan, así que en siguiente inicio debes encontrar la que dejaste.

      Saludos

      Eliminar