17 mar. 2013

Como hibernar en Ubuntu 13.04 Gnome-shell


Desde que adquirí mi portátil he intentado activar la opción de hibernar, puesto que supone un ahorro de energía comparado con la acción de suspender.
Desde Ubuntu 12.04 ya habían deshabilitado la opción de hibernar por problemas en algunos hardware. Está opción es algo más lenta a la hora de arranque del sistema, si lo comparamos con suspenderlo, pero lo compensa con creces al no consumir energía y por consiguiente podemos dejarlo en ese estado por tiempo indefinido para aprovechar su durabilidad, más con los problemas que suele haber en la mayoría de portátiles.
Pero aquí viene la madre el cordero ¿Cómo?. Pues "fácil".
A continuación voy a detallar lo mejor posible como lo he realizado en un Lenovo G580 con Ubuntu 13.04 y Gnome como única shell.

El primer paso es comprobar si en tú portátil funciona la hibernación con el siguiente comando desde una terminal Crtl+Alt+T:
sudo pm-hibernate
Si todo ha ido bien, puedes continuar con el resto del tutorial.

-Importante tener una partición swap de igual tamaño a la memoria RAM del portátil o un mínimo de 2GB, ya que es ahí donde se guardarán todos los procesos.
Seguimos con la terminal para abrir como root y/o crear el siguiente archivo en la ruta determinada:
gksu gedit / etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
En este caso he utilizado Gedit pero se puede realizar con nano o el que tengáis como predeterminado.
Dentro añadimos las siguientes líneas:
[Enable Hibernate]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
Guardamos y salimos.
Podemos reiniciar la shell con la combinación ALt+F2+r Y ya podemos seleccionar en las opciones de la configuración de energía, hibernar:


Con esto en principio ya tendríamos habilitada la hibernación al cerrar la tapa del portátil cuando estamos con batería. Pero si queremos tenerla en modo gráfico podemos recurrir a una extensión como:
Alternative Status Menu
que es la que he elegido yo. Pero por algún error, (puede ser debido a las diversas versiones de Gnome-shell), una vez activada no aparece la opción de hibernar.
Seguimos en una terminal, esa cosa tan rara, y copiamos lo siguiente para posicionarnos en los siguientes archivos, uno por uno y damos Enter:
cd ~/.local/share/gnome-shell/extensions/
cd ./alternative-status-menu@gnome-shell-extensions.gcampax.github.com/
cd ./schemas/
Abrimos el archivo de configuración:
gksudo gedit ./org.gnome.shell.extensions.alternative-status-menu.gschema.xml
Y dentro del archivo buscamos lo siguiente:
< key type="b" name="allow-hibernate" >
< default >false< /default >
< summary>Enable hibernating< /summary >
< description >Control the visibility of the Hibernate menu item< /description >
< /key >
Cambiamos "false" por "true". Guardamos y cerramos.
Y ahora compilamos, no todo iba a ser un camino de rosas, estamos en GNU/Linux :D Siempre dentro del último archivo:
glib-compile-schemas ./
Damos Enter y reiniciamos la shell con Alt+F2+r y ya debería de aparecer la opción de hibernar en el menú de estado:


A veces desaparece la opción de hibernar en el menú de estado y se soluciona con un simple reinicio de la shell, ya sabes:
Alt+F2+r
Es un trabajo que he realizado buscando y probando de varios tutoriales que he encontrado por la red, pero que eran para otras versiones de Ubuntu, solo coinciden en que sirven para Gnome-shell.
Testeado y funciona 100% en Ubuntu 13.04 Gnome-shell versión 3.6 con un Lenovo G580.