Suspension / Hibernado en Arch Linux

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:

http://wiki.archlinux.org/index.php/Pm-utils#Creating_your_own_hooks

Fuente: Wiki ArchLinux.org

Anuncios

11 comentarios sobre “Suspension / Hibernado en Arch Linux

Agrega el tuyo

  1. Mayor rapidez en la suspensión y resucitado del equipo en detrimento de la “longevidad” de la suspensión. Si suspendes a ram y te quedas sin batería o sin luz no podrás recuperar la sesión.

    Saludos!

  2. Gracias por el tutorial, a mi tambien me funciona la opción de suspendido, pero el hibernado es como si apagara el ordenador, por alguna razon no guarda el contenido en la swap, y he seguido el tuto al pie de la letra, es más luego tengo que reinicar la red con el newtworkmanager por que no la carga el al arranque ¿Alguna idea?. Saludos

  3. Gracias no sabia por donde empezar ya que no hibernaba y como acabo de llegar de distros como Ubuntu y Fedora no sabia que hacer pero ya hiberna mi lap 😉

  4. Pingback: Anónimo
  5. Hola gracias por la información, he seguido todos los pasos para lograr hibernar pero no lo consigo, me sucede lo mismo que a David, cuando intento hibernar es como si le enviara la opción de apagado. serian tan amables de decirme porque sucede esto.

  6. Pero esto ¿Dara problemas con el pulseaudio teniendo dos tarjetas de sonido?, cuando se recupere el equipo ya sea de suspensión o hibernación ¿se verán las dos tarjetas de sonido usb o habrá que hacer un pkill pulseaudio? Saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s

Blog de WordPress.com.

Subir ↑

A %d blogueros les gusta esto: