domingo, 19 de junio de 2016

¿Cómo activo la hibernación en Ubuntu?

Durante la antidemocrática era proscriptiva que azotó a la República desde 1955 por mano de la oligarquía, el sentir patrio y libertario del Justicialismo debió hibernar en el corazón del Pueblo, para luego resurgir en un nuevo gobierno de signo socialista nacional. Por tal motivo, en un discurso pronunciado frente al Concejo Nacional del Partido Justicialista en 1973, el Conductor nos enseña cómo activar la hibernación en Ubuntu.


(...)
Hemos regresado tras un período que no debiera haber sucedido, en el cual la lucha no ha sido fácil ni el camino llano. En 1955 tuvimos que pasar "la Hora de los Enanos", en la que el País fue arrastrado por una fuerza de ocupación al mando de la Sinarquía Internacional y una oligarquía cipaya deseosa de hacerle el juego. Ante esta fuerza ilegítima se sometió por dieciocho años nuestro pueblo - que ha sufrido y visto caer sus logros en un pozo del que sólo saldremos con el esfuerzo de todos.
 
En un mundo que es otro, y sin las oportunidades que se han desperidiciado trastabillando en un rumbo erróneo, parecería ser que la situaciónn actual es desesperante. Sin embargo, no todo se ha perdido, pues los argentinos entendieron el objetivo que planteaba la hora: frente al accionar antipatria de los pusilánimes de siempre, no podía darse otro resultado que conservar los logros de nuestro Movimiento en la más añorada memoria histórica del Pueblo, para revivirla cuando nos diésemos la oportunidad.
 
Nuestro Pueblo no necesita órdenes para ello: nuestra acción dignificante e hidalga se almacenó con cariño en los recuerdos de cada Argentino de provecho, se inculcaron a cada niño, se entendieron y valoraron bajo la nueva luz que da el paso del tiempo bajo la opresión. Podría con propiedad decirse que - durante mas de dieciocho años - el Justicialismo quedó hibernando en el corazón Pueblo Argentino.

Ahora bien, cuando sonó la nueva hora, dicha Memoria Histórica fue recuperada para establecer en la República el retorno de nuestro Movimiento. Continuaremos así con una nueva iteración de Peronismo como si nada hubiese pasado.
Sin embargo, esta idea - tan provechosa a lo largo de la historia - no se limita al corazón del pueblo: puede ejercerse con el mismo provecho venturoso en un sistema GNU con Linux.

Vean señores, un sistema Linux también es dable de hibernarse. Cuando se activa la hibernación, el contenido completo de la memoria volátil de acceso aleatorio (RAM) es almacenada de manera indeleble en un sector del disco rígido (normalmente la partición de intercambio). Conforme se haya salvado dicho contenido, el sistema se apaga completamente (desconectándose de manera de no utilizar energía electrica). Al reencender el equipo, el sistema restaurará el contenido de la memoria almacenado en disco, y lo volverá a colocar en la memoria volátil de trabajo RAM. Esta mecánica permite -si todo va bien - continuar utilizando las aplicaciones y documentos de la misma forma que estaban antes de apagar el sistema, como si la sesión nunca se hubiese detenido.

Ahora bien, por defecto a partir de Ubuntu 16.04LTS esta función de Hibernación se encuentra desactivada. Esto se debe a que en algunos equipos específicos la hibernación provoca problemas con Ubuntu; inconvenientes determinados a cierto hardware o combinaciones de hardware, y en ocasiones difíciles de aislar, replicar o solucionar sin un estudio mas acabado. Por otro lado, se ha tendido a abandonar el uso de partición de intercambio.

Por lo tanto, para agregar la opción de Hibernar, hemos de comprobar fehacientemente que el hardware de nuestro equipo no interfiere y opera bien en dicha condición, y que contamos con partición de intercambio (swap). Una vez verificado esto, podremos proceder a agregarle la función.

Para evaluar el correcto funcionamiento de la Hibernación, podremos hacerlo a través de una orden en la Terminal. Nos aseguramos de no estar haciendo nada crítico con el equipo, abrimos una instancia de terminal presionando simultáneamente Ctrl+Alt+T, y en la Consola que aparezca ingresamos el siguiente Comando de Organización:

sudo pm-hibernate

El proceso de hibernación suele tardar varios segundos, durante los cuales se almacena al completo el contenido de la RAM a la partición de intercambio del disco (la pantalla puede quedar en negro, o mostrando un simple cursor durante este evento). Una vez concluido, el equipo se apagará automáticamente. Podríamos desconectarlo incluso de la red eléctrica y por varios años si fuese necesario. En este caso, volveremos a  re encenderlo.

Al rearrancar el sistema, se procederá a la lecctura del disco y a la transferencia de dichos datos a la memoria RAM. Es probable que esto alarge el tiempo de arranque del sistema, pero deberían aparecer las aplicaciones abiertas y la instancia de trabajo anterior. Si las aplicaciones abiertas se reencienden correctamente, significa que el sistema de hibernación funciona de forma adecuada en nuestro equipo y no tenemos ningún hardware conflictivo que cause problemas con el sistema. En tal caso, podremos continuar agregando el comando al menú del panel superior de Ubuntu, sin temor a problemas.

Para agregar la función de Hibernar en el menú de sistema, hemos de modificar ciertos archivos de configuración: Para ello abrimos una Terminal e ingresamos los siguientes Comandos de Organización:

sudo nano /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla


Se nos solicitará nuestra contraseña de Conductor, y una vez introducida la misma se activará el editor de textos peronista, Nano con un archivo de configuración, el cual ya debería tener contenido en su interior. 
Aprovecharemos para usar Ctrl+w para buscar las siguientes secciones: 
 
[Disable hibernate by default in upower]
[Disable hibernate by default in logind]
 
 ...Y cambiamos la cadena de texto ResultActive= de no a yes.

De modo que las secciones comprometidas queden de la siguiente manera:

[Disable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Disable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;
ResultActive=yes
Una vez completado todo, guardamos el archivo con Ctrl+s y salimos con Ctrl+q
 

Indicar la partición de intercambio

Otro procedimiento muy útil para que la hibernación no sufra problemas, consiste en especificar fehacientemente al arrancador grub cual es nuestra partición de intercambio. Esto puede suceder si hemos cambiado el identificador o disco empleado para tal cometido. Para conocer cual es el identificador de nuestra partición de intercambio ingresamos el comando:

lsblk -o name,fstype,uuid | grep swap

El sistema nos devolverá una lista de identificadores del sistema de archivo. Debemos localizar el identificador UUID de la indicada como partición de intercambio o swap.

└─sda7 swap     c38e5cc7-fb1d-43bf-c68e-e4f8f213183f

Una vez que sabemos el identificador, debemos especificarlo en el fichero de configuración de grub /etc/default/grub. Esto lo haremos con:

sudo nano /etc/default/grub

En este fichero buscamos la cadena GRUB_CMDLINE_LINUX_DEFAULT y le agregamos en el entrecomillado el identificador bajo una orden llamada resume=UUID=
 

En este ejemplo imaginario sería:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=c38e5cc7-fb1d-43bf-c68e-e4f8f213183f"

(Naturalmente ustedes habrán de indicar su propio identificador específico, ya que no existen dos iguales). Efectuados los cambios en /etc/default/grub, guardan los mismos con Ctrl+o y salen con Ctrl+x, y aplicarán los cambios en el arrancador grub mediante el comando:

sudo update-grub
 
Acto seguido - y como última comprobación - podremos reiniciar el equipo para que este cambio se aplique. Lo haremos con el comando:

sudo reboot

Reiniciamos el equipo y si lo deseamos, evaluamos la hibernación nuevamente desde el menú Sistema / Apagar. En el caso de Ubuntu Mate aparecerá en un botón especial.
En el caso de Ubuntu, lo encontraremos en el menú de Sistema.

Tapa de notebook con hibernación

Ahora bien, en el caso de los equipos portátiles, suelen tener una función de ahorro energético que se encarga de suspender el sistema si cierro la pantalla del equipo. Esta función permite una reactivación rápida, pero a cambio de una penalidad: se seguirá gastando energía eléctrica en el equipo portátil. Si la misma no está conectada, esta energía se tomará de la batería, y si la misma se agotase (por estar suspendido varias horas o días), podríamos perder la información almacenada y perjudicar nuestro sistema operativo e instalación.

Sin embargo, en todo ha pensado el Justicialismo. Se preguntarán ¿cómo hago para que al cerrar la pantalla de la notebook, Ubuntu se hiberne en lugar de entrár en suspensión?
 
Pues bien señores, esta modificación al accionar es muy simple de lograr toda vez que sepamos cómo modificar el fichero de configuración correspondiente. Y esto es fácil gracias a Perón. En primer lugar abro una terminal con Ctrl+Alt+T e ingreso el siguiente comando de organización:

sudo nano /etc/systemd/logind.conf

Al abrirse el editor nano, presiono Ctrl+w para activar la función de búsqueda. Se abrirá un cuadro de diálogo, en el cual en el campo "buscar" puedo indicarle la siguiente cadena de texto.

#HandleLidSwitch=suspend

Acto seguido presiono el botón Buscar. El editor me resaltará el texto. Simplemente hemos de modificarlo de modo que quede de la siguiente manera:

HandleLidSwitch=hibernate


...ahora ya podremos guardar el archivo con Ctrl+S. Para que el sistema tome nota de la modificación sin tener que reiniciar completamente el sistema, podremos ingresar el comando:

sudo restart systemd-logind

Ahora toda vez que cerremos la pantalla de la portátil, en lugar de suspender el sistema (y continuar consumiento una mínima pero apreciable cantidad de energía), podremos hibernarla, con lo cual el sistema se apagará y podría quedar así un tiempo mas largo almacenada con la misma sesión.
 
Nota: Si la función Hibernar no responde adecuadamente al reiniciar, debemos revisar qué es lo que sucede, tal vez apagando y reencendiendo el equipo directamente (manteniendo presionado el botón de encendido durante unos 4 segundos para apagar el equipo, y luego volverlo a encender). Uno de los problemas puede ser que nuestra partición de intercambio "Swap" no sea al menos tan grande como la memoria RAM disponible.