viernes, octubre 14, 2011

Resolviendo congelamiento por HPET en Debian

Mi equipo, un Asus F8S con un procesador Duo T9300, ha estado funcionando fenonemal durante años.
Un día se quedo colgado (congelado). Parpadeaba la luz de bloqueo de mayúsculas y no daba señales de vida. Lo reseteo y funciona. Al rato otra vez, y a partir de ese día, cuelgues aleatorios.
Actualice los drivers de la Nvidia 9500M GS que lleva. Una y otra vez.
Nada. A veces estaba unos dias bien, pero luego volvia otra vez. Congelado con la lucecita parpadeando.
Mire el log correspondiente en /var/log/messages y me encuentro que al final aparece algo como esto:
hpet increasing min_delta_ns to 15000 nsec
Eso me hace pensar que puede estar ahí el problema. Busco con Google y encuentro la siguiente página.
En ella se comenta el problema y dice como resolverlo.
Dice:
"El error
El bug, presente en Debian, Ubuntu, Fedora y otras distribuciones (http://www.linux-archive.org/debian-kernel/245380-bug-515172-system-briefly-lockup-messages-ce-hpet-increasing-min_delta_ns-15000-nsec.html) era como consecuencia de un fallo en la interpretación del reloj HPET (que requiere “interrogar” al hardware, en este caso, al CPU Intel Core 2 Duo)."
"La solución
La forma mas “rápida” de resolver el problema (y evitar esos fastidiosos “bloqueos temporarios” del hardware), es desactivar el reloj HPET y agregar otro tipo de reloj también preciso: “jiffies
Para hacerlo, editamos el grub:
grub1: archivo /boot/grub/menu.lst, en la línea del kernel (vmlinux).
grub2: editamos /etc/default/grub y en GRUB_CMDLINE_LINUX
En la opción que tengan, agregan:
lapic clocksource=jiffies
Actualización: no es necesario apagar el reloj HPET, con solamente poner el clocksource a jiffies es suficiente.
Luego, generan nuevamente el menú del grub:
update-grub
nota: o update-grub2 para grub2."
Lo que he realizado es:
$ sudo gedit /boot/grub/menu.lst
Y que quede:
title Debian GNU/Linux, kernel 2.6.26-2-amd64 root (hd0,1)
kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/sda2 ro quiet lapic clocksource=jiffies
initrd /boot/initrd.img-2.6.26-2-amd64
Luego lo guardo, y actualizo grub
$ sudo update-grub

Pues asi lo he realizado y por ahora, despues de 4 cuelgues casi seguidos esta mañana, parece que funciona.