¿Cómo solucionar el Infinite Loop? Escrito por Manz http://www.emezeta.com/ Revisión 1: 27 de Septiembre de 2003 Revisión 2: 11 de Septiembre de 2005 Resumen: Infinite Loop es un término inglés que significa Bucle infinito. Este es un error muy usual en el ámbito de la programación y, en este caso no se trata más que de eso. Cuando se produce el infinite loop, el software del sistema se queda estancado en ese bucle de forma infinita, no dejando hacer nada más. Se produce sobre todo en equipos de la familia NT (WinXP y Win2000). ¿ Cuales son los síntomas de este problema ? En teoría varios, y digo en teoría, porque varían demasiado: Congelamiento de pantalla: (Usualmente en juegos 3D pero no necesariamente) y SOLO de la pantalla. Una buena manera de identificar si se trata del infinite loop es comprobar si al experimentar un congelamiento de la imagen la música sigue sonando. Monitor en StandBy: El monitor se queda apagado, pero se puede comprobar como el sistema sigue trabajando, ya que se escucha el disco duro trabajar, la música que escuchabamos o los leds (luces) del disco duro encendiéndose y apagándose. No se puede volver a encender el monitor, y tenemos que terminar reiniciando. Fijaos si el pilotito que usualmente tenéis en verde se ha quedado en naranja. (NOTA: Muchas veces esto ocurre porque tenéis activado el desconectar el monitor cada x tiempo, aseguraos que no se trata de eso). Ruido en la imagen: La pantalla después de un tiempo sin uso, o de forma repentina, muestra ruido en la imagen (puntitos aleatorios y desordenados por toda la imagen que hacen ver borroso la misma). Pantallazo azul o BSOD: El sistema se bloquea o da un BSOD y al reiniciar nos aparecen mensajes cómo “Windows se ha recuperado de un error grave”, errores en el apartado Sistema del Visor de Sucesos o pantallazos con mensajes como los siguientes: El controlador nv4_disp del dispositivo display \Device\Video0 se ha quedado bloqueado en un bucle infinito. Esto normalmente indica un problema con el dispositivo en sí o con el controlador que programa incorrectamente el hardware. Compruebe con el fabricante del dispositivo de hardware para obtener actualizaciones del controlador. STOP 0x000000EA THREAD_STUCK_IN_DEVICE_DRIVER BCCode : 100000ea BCP1 : FFA9D328 BCP2 : FFB2EF60 BCP3 : 81EA9788 BCP4 : 00000001 OSVer : 5_1_2600 SP : 0_0 Product : 256_1 IRQL_NOT_LESS_OR_EQUAL ¿ Cuál es la causa de este problema ? No se esta muy seguro de este punto. El infinite loop es uno de los problemas más raros que se conocen y la causa varía mucho: En primer lugar Microsoft se limpia las manos argumentando que es un problema posiblemente de programación del proveedor del hardware, o sea, del software o drivers de la tarjeta gráfica. Muchos otros le echan la culpa a los chipset VIA, cosa que yo no veo claro, ya que en distintas páginas me he encontrado con que sistemas con chipsets INTEL o SiS también sufren el mismo problema. Además, buenamente, la casa VIA ha publicado un buenísimo artículo (eso sí, en perfecto inglés) para la resolución del bucle infinito: http://www.viaarena.com/default.aspx?PageID=5&ArticleID=9 Otra eterna culpabilidad asignada injustamente: nVIDIA. He encontrado muchos usuarios que tienen el problema de infinite loop con tarjetas graficas ATI. Supongo que al estar más extendidas las tarjetas nVIDIA esto hace que la gente asigne errores inconscientemente. Otro conjunto de usuarios piensan que los problemas vienen a raíz de dos opciones de la BIOS que dan conflictos: AGP Fast Write y Side Band Addressing (SBA). Pienso que en este tramo tienen un poco de razón, ya que el error esta relacionado con el AGP, pero creo que no es del todo correcto. La fuente de alimentación. Quizás la parte que considero más acertada de la causa de estos problemas. Pienso que una correcta administración de la energía que necesita nuestro ordenador es fundamental para que funcione bien. Si tenemos una fuente de alimentación de 250w es posible que no nos llegue a satisfacer y cabe la posibilidad de adquirir una de 400w que SI que funcionaría de forma satisfactoria. Además podemos ver que la mayor parte de usuarios que sufren este problema tienen un procesador AMD Athlon de los antiguos como por ejemplo un ThunderBird o Palomino que eran unas verdaderas máquinas traga-energía. Finalmente, y muy ligada al punto anterior, tenemos el tema de la memoria RAM. He leído que muchos usuarios comentan que la solución pasa por quitar un módulo de memoria RAM de todos los que tenemos. Evidentemente, esto puede que corrija el fallo, pero estamos desaprovechando unos megas de memoria que nos vendrían de perlas para mejorar el rendimiento del sistema. Retirando un modulo de RAM estamos consumiendo menos con respecto a la fuente de alimentación, quizás por ello desaparecen los fallos. Aún así, recomiendo leerse el punto anterior y no quitar memoria RAM. ¿ Como soluciono este problema ? Difícil cuestión. Si has leído todo lo anterior y has sopesado todos los aspectos lo tendrás mucho más fácil. Aún así, voy a intentar facilitarte la tarea con unos procedimientos que creo, que ayudarán (A mi me ayudaron y los encuentro bastante lógicos). Ante todo, mucha paciencia, ya que este problema ocurre en periodos muy variables, lo que frustra demasiado. Recomiendo testear cada vez que se haga un cambio con el programa 3DMark, con juegos 3D y/o dejando el PC encendido por las noches. 1. Actualizar controladores El primer punto se basa en probar varios controladores a ver cuál rinde mejor. Muchos usuarios han arreglado este problema utilizando unos controladores que les funcionan correctamente. Sugiero entonces que en primer lugar se usen los controladores actualizados, buscándolos en la página del fabricante. Si el problema persiste, prueba a usar los drivers que te facilitaron al comprar la tarjeta gráfica (normalmente un CD o diskette). Si aún así tienes suerte quizás puedas usar unos controladores certificados por Microsoft (en el caso de nVIDIA, Microsoft desarrolla unos controladores propios que instala inicialmente). (NOTA: En el caso de los drivers de nVIDIA, antes de descargarlos de la web es altamente recomendado examinar la sección Tarjetas soportadas para comprobar si nuestra tarjeta gráfica es soportada por esos drivers. ) 2. Instalación de parches adicionales En caso de tener una placa con chipset VIA, podemos instalar el famoso parche 4in1 de VIA. También he encontrado un parche desarrollado en fase beta que asegura solucionar el problema en muchos casos: http://files.guru3d.com/via/Test_driver1.zip También en últimos casos puedes probar a instalar en el caso de nVIDIA unos detonators 30.xx o inferiores y probar a instalar el NVMAX marcando la opción Fix infinite loop. 3. Hacer pruebas convirtiendo el AGP en PCI Dirígete al administrador de dispositivos y en los Dispositivos de sistema, encontraras un controlador AGP. Prueba a actualizar el controlador en un PCI to PCI Bridge (Puente PCI a PCI). Esto convertirá la entrada de datos AGP en una entrada de datos PCI. El rendimiento bajará mucho, pero podrás comprobar si el problema es del AGP o no. En caso de que el error desaparezca, tendrás que plantearte en buscar una solución (En caso de poseer un chipset VIA, en su página hay distintos controladores AGP que puedes descargar y probar). Si el problema no desaparece, prosigamos. 4. Hacer cambios en la BIOS referentes al AGP Si con ninguno de los pasos anteriores ha conseguido solucionar el problema podríamos pasar a hacer algunos cambios en la BIOS. Por ejemplo, desactivar la opción AGP Fast Write. Esta opción está muy criticada, ya que es muy comentado que al desactivarla desaparecen cantidad de cuelgues y problemas que produce su activación. También sería conveniente desactivar la opción Side Band Addressing (SBA), que muchos afirman que también puede solucionar el tema del bucle infinito. 5. Hacer cambios en la BIOS referentes a la memoria Pienso que quitar un módulo de memoria NO es una solución, en todo caso extrema, pero no ideal. En mi caso, he modificado la latencia de la memoria, y esto ha solucionado el problema del bucle infinito. Si lo consideráis oportuno, podéis probar a retirar un módulo de memoria RAM, o alternar el orden de los módulos en diferentes slots, para probar si es cierto que se soluciona de ésta forma el problema. 6. Hacer cambios en el hardware Finalmente, si ninguna de las soluciones anteriores funciona, recomendaría desenchufar varios dispositivos y dejar solo los necesarios durante un tiempo. Podemos, por ejemplo, desenchufar el CDROM, grabadora, disco duro alternativo, ventiladores, disquetera y dejar solo el disco duro principal. De esta forma veremos que al estar consumiendo menos, si el problema es de la fuente de alimentación. En caso afirmativo solo tendríamos que comprar una fuente más potente. Mucho cuidado en usuarios de AMD, ya que la misma, en su página web, recomienda fuentes para el óptimo funcionamiento de sus procesadores. 7. Ultimas soluciones Si, desgraciadamente, no has conseguido solucionar este fatídico problema, solo quedan las opciones siguientes: Esperar al próximo Service Pack para Windows XP a ver si lo solucionan. Migrar a otros Sistemas Operativos como por ejemplo Windows 2000. Intentar hacer una nueva instalación limpia de Windows XP. Actualizar la BIOS del sistema. Comprar y/o cambiar a otra tarjeta gráfica. Alternar e intentar varias de las soluciones anteriores simultáneamente. ¿ Cuál ha sido tu experiencia con el Bucle Infinito ? Sólo migrar a Windows XP, tuve este problema. Después de investigar y sacar mis propias conclusiones, arreglé momentáneamente el problema instalando una versión antigua de los Detonators de nVIDIA y el nVMAX4 hasta que me compre una fuente de 400w. La instalé y mis problemas desaparecieron durante unos meses y trabajé correctamente. Entonces un día descubrí que el ventilador de la fuente se me había parado. Compré otra fuente de 400w y los problemas volvieron a aparecer. Fue entonces cuando hice algunas pruebas sin resultado y las que funcionaron finalmente fueron instalar los parches 4in1 y cambiar en la BIOS la latencia de la memoria.