jueves, 31 de mayo de 2007

Ubuntu 7.04, hp/compaq nx6310 y los problemas de suspension.

Desde que Ubuntu reemplazó hace un par de años en mi portatil al Sun JDS (que de Java solo tenía el nombre) no habia tenido ningún problema de importancia con mi portatil. Todo el hardware funciona perfectamente -- sonido, wifi, gráficos -- y lo unico que realmente no funcionaba era la suspensión/hibernación, pero en realidad eso es algo que nunca he usado así que tampoco lo echaba de menos.

Pero desde la actualización a Ubuntu 7.04 Feisty Fawn empecé a notar una cosa rara algunas veces: despues de una hora no tocar el equipo durante aproximadamente una hora (es decir, a la hora de comer) el equipo intenta entrar en suspensión pero falla estrepitosamente y algo (alguno de los procesos de /etc/acpi/, la falta de tiempo me impide investigar mas) se empieza a comer toda la memoria, llegando a matar el gdm y dejando el equipo completamente saturado e inusable.

Casi peor aun, la saturacion debe producir abundante cantidad de swap lo que provoca que la cpu este funcionando a tope con el consiguiente calentamiento. Puedes mirar la temperatura, ademas de con numerosas utilidades, con el simple comando:

jmiguel@halebopp:~$ acpi -V

Battery 1: charging, 91%, 00:17:42 until charged
Thermal 1: ok, 45.0 degrees C
Thermal 2: ok, 44.0 degrees C
Thermal 3: ok, 45.0 degrees C
Thermal 4: ok, 34.0 degrees C
Thermal 5: ok, 20.0 degrees C
AC Adapter 1: on-line

Estuve buscando todas las opciones en los administradores de energia, salvapantallas, parando los servicios de acpi y en todos los sitios donde parecia lógico mirar --sin exito-- pero como el problema persistía y parecía que podía ser peligroso por la temperatura del micro tuve que buscar en serio.

La solución final, por si a alguien le sirve algún día ha sido la siguiente:

Desde un terminal, o pulsando Alt-F2, ejecuta:
gksu gconf-editor

para ejecutar (como root) el editor de configuracion de gnome, un programa no muy conocido (y bastante criticado por quienes lo conocen) similar al editor del registro de windows.

Una vez dentro, nos movemos a la rama:
/ → apps → gnome-power-manager

En la parte derecha veremos las parejas de claves/valores correspondientes a esa rama. Las que nos interesan son ‘can_hibernate’ y ‘can_suspend’. Por defecto estaran marcadas. Desmárca ambas.

Pulsa ahora con click derecho sobre cada una de ellas y selecciona establecer como obligatorio. No veras ninguna confirmacion y tampoco estoy muy seguro de que es lo que hace esta opcion exactamente, pero parece ser necesario para que funcione.

Para terminar, cierra la sesión para que gnome vuelva a releer la configuracion. Mejor aún si una vez desconectado y en la pantalla de login pulsas simultaneamente Ctrl-Alt-Backspace para reiniciar completamente GDM.

Voila!. Mi equipo ya no intenta entrar en modo suspension y no ha vuelto a calentarse. Todo vuelve a funcionar 100%


Solución encontrada en el blog de Jeremy Visser