Controlar la velocidad de los ventiladores del MacBook en Ubuntu

Publicado el 8 de Diciembre ,2007 por ekhtor

Ésta era una de las pegas por las cuales no me terminó de convencer la migración de Mac Os X a Linux en mi macbook y por fin lo conseguí.

El problema es que los ventiladores en mac os x están controlados por sofware y la velocidad mínima de éstos es 1500rmps y en Linux no aumentan la velocidad hasta que el micro no está a ¡80 grados! Esto es una locura porque si usamos linux de esta forma la vida de nuestro macbook se verá reducida considerablemente.

La solución la encontré en el modulo applesmc que en las versiones de ubuntu feisty y gutsy viene preinstalado. En feisty ya está cargado por defecto pero en gutsy(beta) hay que escribir el siguiente commando:

sudo modprobe applesmc

Una vez cargado tenemos dos archivos importantes en el módulo que son los siguientes:

/sys/module/processor/parameters/max_cstate

/sys/devices/platform/applesmc.768/fan1_min

El primero lo usaremos para quitar un ruido molesto que se produce cuando el disco duro está inactivo y para ello lo unico que tenemos que hacer es escribir dentro del archivo un “2″ de esta forma:

sudo echo 2 > /sys/module/processor/parameters/max_cstate

El segundo archivo es el que va a controlar las revoluciones mínimas de nuestros ventiladores, esto no sinifica que si aumenta la temperatura, los ventiladores no aumenten las revoluciones.

Funciona del mismo modo, escribimos en el fichero el número de revoluciones y cambian automaticamente. Yo recomiendo dejarlos a 3000 revoluciones por defecto. Ejemplo:

sudo  echo 3000 > /sys/devices/platform/applesmc.768/fan1_min

De esta forma ya tendríamos los ventiladores trabajando siempre a 3000rpms como mínimo pero con un pequeño problema solventable, que cuando reiniciemos todo lo que hemos hecho hasta ahora no va a funcionar y aqui os dejo mi solución:

En primer lugar hay que cargar al inicio el módulo applesmc :

sudo echo applesmc >> /etc/modules

En segundo lugar los ficheros de configuración del módulo no guardan los cambios por lo tanto hay que crear un fichero que llamaremos “S26fan” con el siguiente contenido:

#! /bin/sh

echo 2 > /sys/module/processor/parameters/max_cstate

echo 3000 > /sys/devices/platform/applesmc.768/fan1_min

Y ahora lo copiaremos en todos los directorios de arranque para que tengamos esta configuración independientemente del nivel de arranque conque iniciemos:

sudo cp S26fan /etc/rc*

Cuidado con el nombre del archivo porque el S26 que lo precede indica el orden en el que va a ser ejecutado y si ejetutamos antes el S26fan de que se cargue el modulo applesmc no nos sirve de nada.

Espero que esta breve explicación os sirva de ayuda. Cuando instale los sensores haré un script para que controle los ventiladores dependiendo de la temperatura y será todavía mas útil.

Entradas Relaccionadas

  1. 7 Respuestas to “Controlar la velocidad de los ventiladores del MacBook en Ubuntu”

  2. Por 4eVaHsudo echo 2 > /sys/module/processor/parameters/max_cstate el 30 Dic, 2007 | Responder

    Buenas, yo tambien he estado liado con el tema de los ventiladores en linux, (arch linux) y la solución que le dí es la misma que tu.

    Estoy interesado en ese script, instalar los sensores es fácil (en ubuntu sera algo asi como sudo apt-get install lm_sensors) cuando tengas el script te agredecería que me lo enviases al correo.

    1 saludo.

  3. Por 4eVaH el 30 Dic, 2007 | Responder

    otra cosa, no hace falta que crees un script y ejecutarlo al inicio; con añadir

    sudo echo 2 > /sys/module/processor/parameters/max_cstate
    sudo echo 3000 > /sys/devices/platform/applesmc.768/fan1_min

    en /etc/rc.conf es suficiente.

    Aprovecho para recomendarte el uso de arch linux o gentoo, ambas tienen un buen wiki para macbooks y ambas son muy personalizables.

  4. Por ekhtor el 30 Dic, 2007 | Responder

    oks muchas gracias por tu consejo, cuando tenga el script te lo mandaré al correo o lo colgaré en la página.
    Gentoo lo uso en el ordenador fijo que ya es un poco antiguo y necesita mayor rendimiento.
    Un saludo!

  5. Por 4eVaH el 31 Dic, 2007 | Responder

    Perdón, dije rc.conf, quise decir rc.local xD

  6. Por miguimon el 6 Ene, 2008 | Responder

    Buen articulo, lo acabo de probar en mi macbook con archlinux y funciona bien.

  7. Por Javier IG el 9 Abr, 2008 | Responder

    Esta solucion no me funciona ya que los archivos
    max_cstate y fan1_min me marcan que no tengo permisos para modificarlos, utilizo ubuntu 7.10. Espero me pueda ayudar, mientras tanto voy a instalar gentoo o archlinux.

  8. Por ekhtor el 9 Abr, 2008 | Responder

    ¿Seguro que lo estás haciendo como root? Prueba simplemente con “sudo echo 3000 > /sys/devices/platform/applesmc.768/fan1_min” si esto no te funciona prueba a cargar el modulo con “sudo modprobe applesmc” y repite el paso anterior, es muy muy raro que siendo root no tengas permisos…

Publica un comentario

Comenta