Buscar en este blog

4.1.10

Configurando Suspension e Hibernacion en Arch

Tiempo coleaba ya en mi coco esta entrada, el caso es que desde que me dio por configurarlo en Arch me ha funcionado la hibernación perfectamente, al contrario que en casi todas las demás distribuciones, por no decir todas.
Llevo cuatro equipos probados, dos con placa Asus (un AMD64 y un Core2Duo), un portátil Acer Travelmate 8000 y un AMD Sempron 2800+ con placa Asrok. En todos los equipos, una vez configurado el sistema funciona tanto la hibernación como la suspensión tardando ademas muy pocos segundos en “resucitar”.
Lo primero que debemos hacer es instalar las pm-utils mediante pacman y algunas otras herramientas que nos ayudaran a utilizar estas características de forma mas cómoda:
# sudo pacman -S pm-utils gnome-power-manager hal dbus acpid


pm-utils: son scripts que se encargaran de suspender y resucitar al equipo, tiene muchísimas posibilidades de configuración mediante hooks en los archivos correspondientes (para tocar dispositivos si estos no se despiertan correctamente, cosa que a mi de momento no me ha pasado).
gnome-power-manager: Nos ofrecerá opciones de apagado, suspensión e hibernación en el escritorio gnome.
acpid: daemon que se encargara de monitorizar estos scripts y nos dará la posibilidad de realizar dichas acciones al cerrar la tapa del portátil, oprimir el botón power etc…

Configurando:

Una vez instaladas nuestras dependencias debemos indicarle al kernel donde se encuentra la partición swap para suspender a disco (el método mas sencillo y efectivo). Así que nos abrimos /boot/grub/menu.lst y editamos la linea que arranca nuestro kernel añadiéndole el path que apunta a nuestra swap:
# (0) Arch Linux
title  Arch Linux
root   (hd0,0)
kernel /vmlinuz26 root=/dev/sda3 resume=/dev/sda2 ro vga=0
Donde /dev/sda2 es nuestra partición swap. Añadiremos acpid a los daemons en el rc.conf:
DAEMONS=(syslog-ng acpid cpufreq dhcdbd networkmanager @alsa @crond … )
Debemos también verificar que nuestro usuario se encuentra en el grupo “power”.
#sudo gpasswd -a usuario power
Y ahora si, reiniciamos el equipo para el kernel “sepa” donde debe guardar la sesión antes de suspender / hibernar. Una vez que el equipo se encuentre a nuestra disposición después de haber reiniciado podremos suspenderlo mediante terminal, para comprobar si esta configuración es valida para nuestro PC:
#sudo pm-suspend
#sudo pm-hibernate
Como veis los scripts necesitan permisos de administración para ejecutarse, si tenemos instalado “sudo” y queremos mayor comodidad podremos decirle que no nos pida la clave para estos dos scripts, abrimos /etc/sudoers y añadimos dos lineas a nuestra configuración:
username  ALL = (ALL) NOPASSWD: /usr/sbin/pm-hibernate
username  ALL = (ALL) NOPASSWD: /usr/sbin/pm-suspend
Esto hará que aunque debamos ejecutar con sudo estos scrips no se nos pida la contraseña de administración…
Si el equipo hiberna y resucita de manera correcta lo tenemos todo hecho… Al lanzar gnome-power-manager al inicio de sesión este nos suministrara la opción de hibernar o suspender en el menú de apagado del pc y teóricamente, si funciona desde terminal debería funcionar desde gnome.
Es posible que en el proceso de resucitado el equipo se quede medio colgado, esto me ha pasado en el Core2Duo y por suerte he podido solucionarlo. Si fuera nuestro caso es posible que la imagen de nuestro kernel no disponga del hook “resume”, pero se lo podemos agregar fácilmente editando el archivo /etc/mkinitcpio.conf y agregándole el hook en la linea de configuración:
HOOKS="base udev autodetect ide scsi sata resume filesystems"
Guardamos el archivo y a continuación le mandamos la orden para que vuelva a generar la imagen con el “resume” activado:
sudo mkinitcpio -p kernel26
En mi caso no he tenido que hacer nada mas para activar la suspensión, pero es posible que alguno de los dispositivos no despierte correctamente, al no haber sido mi caso no puedo ofreceros mi experiencia en ese sentido pero leyendo el wiki no parece demasiado difícil:

1 comentario:

  1. Hola, estoy siguiendo todos los pasos que pones arriba y cuando por consola uso: pm-hibernate, lo que hace el pc es apagarse.

    Alguna idea de como solucionar esto??? agradezco cualquier información.

    ResponderEliminar