SDB:ThinkPad perdida de energia
De openSUSE, la enciclopedia libre.
Tabla de contenidos |
Sintomas
Muchos portatiles IBM/Lenovo ThinkPad laptops consumen mucha energia en modo (suspend-to-RAM). La bateria solo dura unas horas.
Causa
La causa es el chipset Radeon graphics usado en algunos modelos. Este no deja que el sistema ACPI se apague apropiadamente. Tipicamente consume 5W.
Otra cuasa es el chip ethernet E1000: por defecto este no se apaga el el modo sleep para oir a los paquetes
wake-on-lan. Este consume cerca de 0.3W.
Solucion
Cargando un version reciente del radeonfb framebuffer driver deberia reducir el gasto de energia en sleep-mode en 4W. El proceso basico se encuentra en [ThinkWiki]. Este proceso explica como aplicarlo en openSuSE 10.2. Arreglar versiones anteriores de SuSE es mas dificil por lo que tendrias que ponerle un parche al kernel source code y recompilarlo.
Antes de empezar
Para averiguar si tienes este problema:
- Descarga el [power drain test script] desde ThinkWiki.
- Inspecciona el script para asegurarte que confias en el.
- Desconecta el AC power.
- Entra como "root" y corre el test script. Pondra el sistema en sleep mode.
- Deja el ordenador en sleep mode por unos minutos (al menos 5, 20 o mas te dan un resultado mejor).
- Reinicia el ordenar usando el boton de power.
- Mira el archivo /var/log/battery.log - si el "resultado" muestra mas de 1500mW entonces tu ordenador probablemente tenga este problema.
Radeon graphics chip
Es necesario cargar el driver "radeonfb" durante el proceso boot ya que las versiones nuevas contienen un workaround para el problema de energia. El workaround fue agregado en el mainstream Linux kernel en la version 2.6.18 por lo que esta solucion requiere "openSuSE 10.2" o mas.
El openSuSE proceso de inicio carga el driver vesa el cual tiene conflictos con el driver radeonfb por lo que es necesario cambiar los parametros de boot. Un efecto secundario que hacer esto es que el bootsplash no aparecera (t esta es la imagen que gerneralmente cubre los mensajes detallados del proceso boot).
- Asegurate que tu ordenador corre openSUSE 10.2, y que todos los kernel updates han sido instalados. Si vas a instalar un update ahora asegurate de reiniciar despues de instalarlo.
- Entra como root usando su o como root en la linea de comando virtual.
- Edita /etc/sysconfig/kernel y agrega 'radeonfb' a la linea INITRD_MODULES. Se vera probablemente como esto:
INITRD_MODULES="processor thermal piix fan jbd ext3 edd radeonfb"
- Crea una nueva initrd (reemplaza los numeros con los de la version de tu kernel):
cd /boot mkinitrd -i /boot/initrd-2.6.18.2-34-special -k vmlinux-2.6.18.2-34-default.gz
- Edita /boot/grub/menu.lst
- Copia el default boot stanza y entra la nueva copia en el tope de la lista.
- Crea un nuevo titulo, y cambia la linea kernel:
remueve vga=0x314 (o cualquier otro vga= parameter) agrega video=vesa:off vga=normal
- Cambia la initrd line: reemplaza '-default' por '-special'
- El archivo se tendria que ver como esto:
# Modified by YaST2. Last modification on Fri Jan 5 11:20:56 UTC 2007
default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,1)/boot/message
##YaST - activate
title openSUSE 10.2 with radeonfb fix
root (hd0,1)
kernel /boot/vmlinuz-2.6.18.2-34-default root=/dev/hda2 video=vesa:off vga=normal resume=/dev/hda1 splash=silent showopts
initrd /boot/initrd-2.6.18.2-34-special
###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 10.2
root (hd0,1)
kernel /boot/vmlinuz-2.6.18.2-34-default root=/dev/hda2 vga=0x314 resume=/dev/hda1 splash=silent showopts
initrd /boot/initrd-2.6.18.2-34-default
###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 10.2
root (hd0,1)
kernel /boot/vmlinuz-2.6.18.2-34-default root=/dev/hda2 vga=normal showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
initrd /boot/initrd-2.6.18.2-34-default
Ethernet chip
Edita /etc/init.d/boot.local y agrega la linea:
/usr/sbin/ethtool -s eth0 wol d
Esto desactiva la wake-on-lan y permite al ethernet chip apagarse durante el ACPI sleep.
Testealo de nuevo
- Reinicia el ordenador. Tendria que haber tres opciones en el boot menu: Asegurate que se usa la nueva.
- Logeate y corre de nuevo el power-drain test. Tendrias que ver resultados debajo de los 1000mW. (Un R51 con 1.5GB de RAM usa unos 750mW en sleep mode)
Si esto no soluciona el problema, mira en el los mensajes bootup:
dmesg | less
Busca la linea que diga "radeon" Y mira si te da alguna pista. Particularmente quieres encontrar algo como esto:
radeonfb: IBM Thinkpad R50/R51/T40/T41 detected, enabling workaround
Busca los kernel updates
Cuando una updated kernel ha sido instalada, tendras que hacer un nuevo initrd y editar el boot menu de nuevo.
Links
[ThinkWiki page describing the problem in more detail]
Keywords: laptop | acpi | thinkpad | sleep | radeon | battery

