Kernel, Interrupciones y VIT D2100

23/02/2012

Desde hace unos años uso orgullosamente portátiles VIT D2100 pero había observado con preocupación que si a esas computadoras se les instala Trisquel GNU/Linux (u otras varias distribuciones basadas en Ubuntu y en Fedora) eventualmente se “congelaba” el sistema hasta que se realizara un movimiento en el puntero en pantalla.

La falla detenía los procesos de transmisión y recepción por las interfaces de red, detenía algún video que se estuviese viendo, se quedaba en un horroroso ciclo en el audio si se estaba escuchando música y hasta el segundero del reloj se detenía en pantalla.

Luego de buscar, investigar y leer, conseguí una solución: modificar el reloj del kernel para alterar la manera en la cual se manejan las interrupciones y los demás ciclos relacionados.

Solución:

Agregar “nolapic_timer” a los parámetros de arranque del kernel. La mejor manera es editando la línea correspondiente en /etc/default/grub y cabiando

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

por

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nolapic_timer"

y luego será necesario generar la imagen de arranque del grub:

sudo update-grub2

Esta es la documentación que conseguí al respecto:

Es importante hacer notar, como se lee en la discusión del último vínculo, que hay otras maneras de manipular el comportamiento del reloj del kernel, como es la opción “nohz=off” al igual que “clocksource=jiffies” y a distintas personas en distinto hardware le fue bien o mal con cada una de ellas.

En mi caso nolapic_timer dio el resultado esperado mientras las demás opciones o no resolvían el problema o combinadas resultaban en “kernel panic” pasado un rato de haber levantado el sistema. Por no ser experto en las profundidades del kernel me tocó por ensayo y error conseguir que sólo inhabilitar el reloj LAPIC (Local Advanced Programmable Interrupt Controller) resolvía el asunto.

Quizás a otros les sea útil esta información y puedan probar en un hardware distinto que presente la misma falla para ir acorralando el problema y saber con suficiente documentación las distintas maneras de resolverlo.

Actualización:

lspci:

00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) (rev 03)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (secondary) (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 03)
00:1f.2 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
02:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
0c:07.0 FLASH memory: ENE Technology Inc ENE PCI Memory Stick Card Reader Controller
0c:07.1 SD Host controller: ENE Technology Inc ENE PCI SmartMedia / xD Card Reader Controller
0c:07.3 FLASH memory: ENE Technology Inc ENE PCI Secure Digital / MMC Card Reader Controller
0c:09.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0)



Un comentario a “Kernel, Interrupciones y VIT D2100”

  1. Williams dice:

    amigo muchas gracias por esta valiosa informacion!! tengo la misma vit y tambien estuve investigando el tema hasta que encontre este!! gracias por la solución! saludos!

Deja tu comentario