Loading...

enero 28, 2013

Suspensión en Ubuntu

Last Update: Jul 23
Un viejo Bug de Ubuntu y sus derivados, vuelve a la carga: la suspensión de energía de las laptops. La distro más popular (no la mejor) de Linux sigue arrastrando este viejo y resabiado bug, que parece tener las intensiones de quedarse, y de paso pone en peligro las máquinas.
En nuestro post anterior Hibernación y suspensión en Ubuntu 10 y 11, para estas versiones se solucionaba descargando el archivo 00CPU y con privilegios sudo (nautilus) se pega en la carpeta /etc/pm/sleep.d, pero con la aparición de las nuevas versiones 12x, donde se pensaba que al fin se había corregido, continua el calvario.
Por alguna razón este bug solo afecta las laptops, mayormente a aquellas que tienen chipset y video de Intel (aunque también se ha reportado que afecta a otras motherboards).
No se sabe por qué se produce. Al parecer el mal reconocimiento de la ACPI de la BIOS por parte del kernel Linux hace que se produzca un deficiente manejo de la relación consumo/potencia. Otro posible culpable serían los drivers, en especial el touchpad. Hay una teoría que apunta a la swap, sobre todo cuando es inferior a la memoria física de la laptop, sin embargo, sea cual sea la causa, no hay evidencias concluyentes que confirmen ninguna de estas hipótesis, ya que la suspensión no afecta a todos los equipos que tengan instalado Ubuntu. Depende de la versión que usen, su arquitectura (x86 o x64) y el hardware del equipo.
Lo que sucede concretamente es que cuando cerramos la tapa de la laptop, Ubuntu trata de ponerse en suspensión, pero inmediatamente vuelve a cargar, o sea, se queda con el disco duro encendido (o puede que quede encendido muchas cosas más como el wifi o bluetooth, usb, etc), consumiendo batería, pero con los ventiladores apagados. Esto produce que la laptop se recaliente y se apague. En el mejor de los casos consume toda la carga de la batería y luego se apaga.
Como bien explican en el foro de Ubuntu (AQUI y AQUI) el problema es bastante serio, ya que puede quemar la laptop. Se imaginan cerrar la tapa de nuestro flamante portátil  meterla en su estuche, mochila, morral o como quieran llamarle, a 35°C, semiencendida con los ventiladores apagados?... Si fuera una HP-Compaq lo más seguro es que tendrían que decirle adiós a su chip de video.
Fuera de esto, también se reporta que cuando los equipos salen de suspensión (si es que lo logran) el bluethoot o wifi, puede aparecer como apagado, o quedarse encendido.
En lo que la mayoría de usuarios coinciden es que la suspensión en Ubuntu es "a medias", o sea que muchos componentes quedan encendidos mientras dura este proceso
Es por estas razones que siempre hemos recomendado que trabajen con Ubuntu 10.04.4 LTS con Gnome 2x, ya que, a nuestro juicio, fue la mejor versión de este sistema operativo. Sabemos que no tiene soporte, sin embargo se pueden conseguir las actualizaciones manuales o de repositorios alternos.
Advertencia:
Si su laptop no presenta los problemas descritos en este post, no use los procedimientos que exponemos a continuación. Recomendamos siempre dirigirse directamente a Cannonical, propietario de la distribución Ubuntu o al sitio oficial de la distribución.
Solución para 12x (sin resultados garantizados)
1. Descargue el archivo wakeupkill y descomprímalo. Contiene 3 archivos: 00CPU para las versiones de Ubuntu anteriores a 12x. 20_custom-ehci_hcd para las versiones 12x y el script disablewakeup.sh
2. Con privilegios sudo (nautilus) copie y pegue los archivos en la carpeta /etc/pm/sleep.d (En dependencia de su versión de Ubuntu y derivados, use 00CPU o 20_custom-ehci_hcd)
3. Dele permisos a los archivos.
sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
sudo chmod 755 /etc/pm/sleep.d/disablewakeup.sh
4. Ejecute desde el terminal:
sudo install -o root -g root -m 755 disablewakeup.sh /etc/pm/sleep.d/
5 Reinicie el sistema
El script disablewakeup.sh busca los componentes que tengan activa (enable) la función wakeup y los traslada a sleep.d para detenerlos cuando el sistema entre en modo suspendido.
Si desea hacerlo manualmente, primero determine cuales dispositivos tienen la función wakeup activa. Lo puede saber ejecutando en el terminal cat /proc/acpi/wakeup. Luego edite sudo gedit /etc/rc.local e incluya en el archivo las lineas correspondientes a los dispositivos "enable". Use el comando tee para realizar esta acción.
Ejemplo:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

echo USB0 | sudo tee /proc/acpi/wakeup
exit 0
Si le sigue sin funcionar puede que tenga que optar por pasos adicionales:
Alternativa
1. Edite el grub con
sudo gedit /etc/default/grub
2. Busque la linea que diga:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
3. Adicione
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux"
4. Guarde los cambios, cierre y ejecute
sudo update-grub
5. Reinicie
Recomendaciones
a. Verifique que la swap sea igual a la memoria física de su laptop. Puede saberlo ejecutando en el terminal los comandos free -m o top
b. Mantenga actualizados los drivers
c. Si al salir de la suspensión se queda la pantalla en negro y solo se ve el puntero del mouse, reinicie el modo gráfico mediante la combinación del teclado AltGr+ImpPant+K
Gestión de Energía
Uno de los gestores de energía más populares es laptop-mode-tools, una utilidad para reducir el consumo de energía, y por supuesto powertop. Su uso en Ubuntu 12x, sobre todo con Gnome 3x es traumático, ya que en ocasiones se ha reportado congelamiento y lentitud en el apagado, al punto que hay que hacerlo forzado con CTRL-ALT-IMPRPANT-REISUB. Lo mismo sucede al activar la función de hibernación, desactivada por defecto en esta versión. Por tanto queda bajo su propio riesgo el uso de estas herramientas.
Instalando laptop-mode-tools y powertop
sudo apt-get install laptop-mode-tools powertop
cd /etc/laptop-mode/conf.d && sudo wget http://dl.dropbox.com/u/27889966/linuxapp/conf.d.tar.gz && sudo tar -xf /etc/laptop-mode/conf.d/conf.d.tar.gz && sudo rm conf.d.tar.gz
(Lea Optimizar duración de la batería)
Para removerlos
sudo apt-get remove --purge laptop-mode-tools powertools && apt-get autoremove
Para evitar que laptop-mode-tools suspenda la energía durante una presentación en su laptop (reproducción de videos, capturas o presentaciones tipo powerpoint), instale caffeine y asócielo a su reproductor favorito (ejemplo: en el apartado preferencias de VLC):
sudo add-apt-repository ppa:caffeine-developers/ppa && sudo apt-get update && sudo apt-get -y install caffeine python-glade2 gir1.2-notify
Para evitar que autosuspenda los usb activos (mouse y cualquier pendrive o hdd conectado), ejecute el comando lsusb, copie el numero correspondiente al usb que quiere mantener activo, y edite el archivo autosuspend
sudo gedit /etc/laptop-mode/conf.d/usb-autosuspend.conf
Y agregue a la línea AUTOSUSPEND la siguiente información entre comillas:
AUTOSUSPEND_USBTYPE_BLACKLIST="usbhid usb-storage 046d:c530 1bcf:2881"
Donde "046d:c530 1bcf:2881" son ejemplos de los números asociados al dispositivo usb. Reemplacelos por los que arroje el resultado del comando lsusb y este asociado al dispositivo que pretenda que no se desactive. Al concluir la edición, Reinicie
Activando Hibernación
Primero pruebe si funciona en su laptop con el comando.
sudo pm-hibernate
Cuando regrese de la hibernación (debe hacerlo manualmente)
sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Finalmente escriba en el archivo en blanco las siguientes esas lineas (copie y pegue) y luego borre todos los espacios que quedan al final de cada linea y al final del documento
[Re-enable hibernate by default] 
Identity=unix-user:* 
Action=org.freedesktop.upower.hibernate 
ResultActive=yes
Guarde los cambios y reinicie
Para Ubuntu 14.04 puede consultar el post Cómo cambiar el comportamiento de Ubuntu al bajar la pantalla


Fuentes consultadas Suspensión híbridaRestablecer hibernación
Maravento, Actualizado en: 19:30
Escrito por: Maravento Studio
 
© 2014 Maravento. All Rights Reserved | Powered by Maravento
Design by Novatoz and Maravento | Bloggerized By LawnyDesignz