“Hibernando”… para pasar el invierno
Desde que voodoo, mi desktop, está liberada de todo servicio “permanente” su uso se ha ido pareciendo cada vez más a una desktop
. Esto significa que cuando me voy a ausentar de su lado por un rato medianamente prolongado la apago. Al haberme enfrentado al proceso de booteo con mayor regularidad descubrí que es medio tedioso. Esto me llevó a investigar nuevamente, aunque después de mucho rato, la posibilidad de hibernar. Estoy usando uswsusp, ya que viene incluído en el kernel y al menos para suspender a disco (aka hibernar) me anda bárbaro. A continuación les presento una serie de tips & tricks que usé para conseguir mi objetivo.
:arrow: Los malditos drivers de nvidia…
Con la combinación Xorg 7.2, Beryl 3.0svn, Linux kernel 2.6.20 y drivers de nvidia 9755, y algunas versiones anteriores también, tengo un problema recurrente al cambiar entre X y las terminales virtuales. Puedo ir y volver sólo una vez, a la segunda me quedo con el display totalmente en negro y el teclado sin respuesta, aunque la PC sigue viva y se puede entrar por ssh
. Al volver de la hibernación tenía los mismos sńtomas. Descubrí que si tengo Beryl desactivado este problema no sucede, así que el primer workaround fue conseguir des/activar Beryl con cada hibernada. En el archivo /etc/hibernate/common.conf agregué:
OnSuspend 01 killall -s SIGUSR2 beryl-manager && sleep 5
OnResume 50 killall -s SIGUSR2 beryl-manager
Con la señal SIGUSR2 hacemos que Beryl se alterne con el Window Manager que tengamos seteado de fallback, en mi caso Openbox.
El resto de la semántica de la configuración la pueden aprender con man hibernate.conf
Un tip para los drivers de nvidia que conseguí por ahí fue el de cargar el módulo con el parámetro NVreg_Mobile=1, pero yo al menos no noté ninguna diferencia :???: .
:arrow: …la conexión a Internet…
El otro “problema” a resolver es el asunto de la conectividad. voodoo depende de macumba que le hace de bridge via WiFi. Además le presta algo de espacio vía NFS4. Según la documentación de uswsusp el módulo madwifi está en la lista negra por no soportar bien la suspensión. Yo desde que lo he usado no he tenido ningún problema, sin tener que des/cargar el módulo. Pero si ha sido totalmente necesario reiniciar el subsistema de networking para que el vínculo wireless vuelva a autenticarse (con WPA2) y para que se remonten los NFS. Lo arreglé fácil con el siguiente agregado en /etc/hibernate/common.conf:
AutoIfDownAndUp ath0
:arrow:…y Gaim (aka Pidgin)
Cada vez que volvía desde la hibernación había alguna de todas las cuentas de diferentes protocolos de IM que uso en Gaim que quedaba tecleando. Investigando descubrí que Network Manager es la manera oficial de que Gaim se entere si hay conexión o no. Pero para mí no cumplió con su promesa de Pain-free networking y así como vino se fue.
Después robé un poco de por aquí y por allá y terminé armando un par de scripts (dbus-hack.sh y recon.py) que también llamo desde /etc/hibernate/common.conf:
OnResume 01 su -l -c /home/crux/Cosas/gaim/dbus-hack.sh crux &
Y después de todo eso voodoo ya está lista para hibernar. Me basta con escribir “sudo hibernate” en la consola. Me queda armar un icono en algún lado del escritorio/paneles para no tener que escribirlo, pero no sé si lo haré algún día.
Espero que estos tips le sean de utilidad a alguien.

