Cómo solucionar problemas de suspender/hibernar en Linux

Los problemas de hibernación y suspensión son uno de los temas más repetidos en las wish list y uno de los que más irritan a los usuarios, incluso algunos “switchers” de Linux a Mac aluden a este problema como uno de los principales para su decisión de abandonar Linux.
Este post no pretende ser una guía de resolución de cada problema de hibernación, sino un primer paso para intentar solucionar el problema por tí mismo.

La mayoría de los problemas de suspensión vienen dados por el hardware de nuestra máquina, quedándose linux colgado a la espera de respuesta a las señales de hibernación o suspensión, por eso debemos intentar localizar el hardware que está haciendo a Linux tener este comportamiento:

– Podemos intentar entrar en la BIOS e ir desconectando dispositivos para ver si la suspensión funciona ante un dispositivo desconectado. Desconectar físicamente el CD o el lector de tarjetas puede ayudar a acotar el problema.

– Comprueba que no tienes ningún disco insertado, ningún pendrive y sobre todo, ninguna SD card o tarjeta de memoria, ya que se trata de un problema bastante común.

– Desconecta los dispositivos USB, como algún módem USB o sobre todo, alguna tarjeta de TV, digitalizadora o cámara de fotos.

– Comprueba que alguna aplicación en ejecución que esté impidiendo la hibernación.

Si has tenido suerte y has localizado el hardware que está haciendo que Linux no suspenda correctamente, puedes intentar dehabilitarlo tú antes de suspender con un script adicional. El script, en el caso de ubuntu/debian, debe ir en el directorio /etc/pm/sleep.d/

Si queremos, por ejemplo, desmontar una unidad MMCard o SDCard que se niega a suspender (sirve para un CD-ROM o cualquier tipo de unidad):

$ sudo vi /etc/pm/sleep.d/11_mmcard
#!/bin/sh
case "$1" in
hibernate|suspend)
umount /dev/mmcblk0p1
;;
thaw|resume)
mount /dev/mmcblk0p1
;;
*) exit 0
;;
esac

$ sudo chmod +x /etc/pm/sleep.d/11_mmcard

En mi caso el problema venía dado por me-tv, programa para ver la televisión digital, con lo que el suspender quedaba colgado con la tarjeta DVB-T. Este problema era un verdadero incordio, ya que la máquina quedaba encendida toda la noche al quedarme dormido viendo la tele. La solución ha sido cerrar la aplicación para que el dispositivo quede libre en el proceso de suspensión/hibernación:

$ sudo vi /etc/pm/sleep.d/11_me-tv
#!/bin/sh
# kill me-tv
case "$1" in
hibernate|suspend)
if ps -ef | grep -q [m]e-tv;
then
killall me-tv
else
echo "No me-tv running"
fi
;;
thaw|resume)
;;
*) exit 0
;;
esac

$ sudo chmod +x /etc/pm/sleep.d/11_me-tv

También se puede intentar localizar el error en la suspensión analizando el fichero /var/log/pm-suspend.log, ya que ahí podemos encontrar la secuencia de suspensión con todos los scripts que se van ejecutando, y cuál es el que no logra completarse con “success”.

Más info: https://lamaquinadiferencial.wordpress.com/2010/05/07/no-funciona-suspenderhibernar-en-ubuntu-debian-inhibit-found/

11 Responses to “Cómo solucionar problemas de suspender/hibernar en Linux”


  1. 1 RickySmart 2 Ene 2010 a las 0:33

    ¡Hola amigo!

    Solo queria agradecerte por tu tutorial, ¡muy bien explicado!

    Tengo este problema en un Acer Aspire One 110 y Ubuntu 9.10; y gracias a tu explicación, encontré que el problema es efectivamente mi SD. Así, cuando lo retiro suspende e inicia con normalidad, pero cuando la inserto, la pantalla se apaga y la luz indicadora del botón de poder (verde: activo, naranja: suspendido) se queda en verde, y eso es todo. Ya no se activa más hasta que tengo que quitar la corriente…

    Lamentablemente, seguí bien todos los pasos, pero el script ya no me permite suspender. El boton sigue verde, pero si puedo volver a logearme e iniciar…

    Cualquier ayuda, te la agradeceria de corazón…
    ¡y gracias de antemano, bro!

  2. 2 El Tux Eléctrico 3 Ene 2010 a las 13:49

    Comprueba qué dev (/dev/mmcblk0p1) es el que se monta en tu máquina cuando insertas una sd-card con el comando mount. En mi caso es /dev/sdb1 on /media/18B8-682F, así que habría que poner /dev/sdb1 en el script en lugar de /dev/mmcblk0p1

    • 3 RickySmart 5 Ene 2010 a las 8:09

      ¡Muchas gracias por responder mi pregunta, Tux!

      Te agradezco que te tomes esto enserio…😀

      Verás que no me había fijado en ese detalle, pero ahora que verifiqué, efectivamente mi tarjeta SD es /dev/mmcblk0p1…

      Como solución temporal, desactivé los permisos de ejecución del script. Sigue como antes, y me di cuenta que según /var/log/pm-suspend.log, su problema es que cuando el SD no está montado, aún así trata de desmontarlo, al no poder, termina en error exit 1 y no deja salir de la suspensión a la máquina…

      Bueno, si no es molestia, si se te ocurre cual podría ser el problema, me harías un enorme favor ayudándome. Me interesa suspender mi máquina, pero más importante aún, me gustaria aprender todo lo que pueda acerca de este sistema operativo que ha podido hacer maravillas con mi mini net-book.

      Y eso es lo que haces con tu blog. Enseñas a aprender. Gracias por todo…

      -RickySmart

      • 4 El Tux Eléctrico 6 Ene 2010 a las 13:58

        No sé si el problema que tinenes es éste, pero prueba a poner el umount condicional:

        $ sudo vi /etc/pm/sleep.d/11_mmcard
        #!/bin/sh
        case “$1” in
        hibernate|suspend)
        if ps -ef | grep -q /dev/mmcblk0p1
        then
        umount /dev/mmcblk0p1
        else
        echo “No SD card mount”
        ;;
        thaw|resume)
        mount /dev/mmcblk0p1
        ;;
        *) exit 0
        ;;
        esac

  3. 5 Javier 6 Abr 2010 a las 18:51

    que tal, yo tengo el siguiente problema, mi acer one hiberna al desconcecar la corriente,en el gestor de energia tengo configurado que al cerrar la tapa hiberne, pero no sucede nada.

    a que crees que se deban estos problemas

    de antemano gracias.

  4. 6 Salva 15 May 2010 a las 9:42

    Mi problema es que no aparece la opción de suspender en la miniapliación de apagado. Solo aparece cerrar sesión, hibernar, reiniciar y apagar. ¿sabes porque puede ser? gracias

  5. 8 RickySMart 12 Sep 2010 a las 3:39

    Hola amigo, modifiqué tu script investigando un poco y gracias a los consejos que me diste, pude hacerlo funcionar.

    Debido a que tu fuiste el que me ayudó a hacerlo posible, te dejo el enlace para que lo veas y si deseas lo publiques, puesto a que seguramente ayudará a alguien más…

    Gracias por tus esfuerzos amigo, espero que no te moleste haberlo publicado, pero es un problema bastante común, y lamentablemente no hay casi nada de ayuda en ningún lado…

    Y debemos buscar la manera de ayudar a más gente…

    ¡Gracias!

    http://www.ubuntu-es.org/node/141026

  6. 10 gabriel sanchez 6 Feb 2015 a las 1:43

    hola buenas tardes me pudieras ayudar a saber como puedo quitar de estado de hibernancion una maquina centos

    • 11 tatxem 11 Feb 2015 a las 16:00

      Una máquina que está en estado de hibernación estará apagada, al encenderla usando el botón físico, deberá reanudar en el estado en el que quedó, ya que lo que contenía la memoria se volcó a disco duro. Un saludo.


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 )

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 )

Google+ photo

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

Conectando a %s




Add to Technorati Favorites
Creative Commons License
Esta obra está bajo una licencia de Creative Commons

Archivos

Wikio – Top Blogs – Linux

Introduce tu dirección de email para suscribirte al blog y recibir notificaciones de nuevos posts en tu email.

Únete a otros 390 seguidores


A %d blogueros les gusta esto: