martes, 19 de enero de 2010

Problemas UDMA PIO-MODE

El modo PIO ataca de nuevo, pero DMA vendrá a socorrernos

Hoy ración doble, porque ¿cómo iba yo a terminar el año sin escribir algo que toque el registro? Si es que se veía venir...
Por cierto, ya que estamos hablando de nuevo del registro: NO ME HAGO RESPONSABLE DE LAS BURRADAS QUE PODÁIS HACER EN EL WINDOWS TOCANDO EL REGISTRO.
Bueno, quien más quien menos se ha encontrado alguna vez en esta situación: el disco duro o la unidad de CD/DVD está en modo PIO y va más lenta que un convoy de caracoles reumáticos, además de que la CPU se pone al 100% por menos de nada. Esto suele pasar generalmente por fallos repetidos en la lectura de algún dvd o cd en muy mal estado o que no le gustan nada a la lectora. Windows habilita el modo PIO automáticamente cuando se producen más de 6 timeouts de transferencias DMA. También puede pasar porque la BIOS no tiene activados los modos DMA para alguno de los canales o porque tenemos un problema de hardware.
Lo primero será ir al Administrador de dispositivos, en Controladoras IDE ATA/ATAPI, donde podemos ver las propiedades tanto del canal primario como del secundario. Allí es donde veremos el modo actual de los canales. Si alguno de ellos está en modo PIO y los dispositivos conectados soportan DMA y está activado en la BIOS, podemos probar la solución que da Hans-Georg Michna (MVP) en su portal de ayuda para Windows:
Ejecutamos regedit (como regalo de fin de año esta vez no digo cómo se hace ;)). Vamos a la clave:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}
Bajo esta clave nos podemos encontrar varias subclaves (0000, 0001, 0002, etc.). Generalmente 0001 corresponde al canal primario y 0002 al secundario. Tenemos que mirar el valor DriverDesc de estas subclaves hasta que encontremos el canal IDE que buscamos. Hay que eliminar MasterIdDataChecksum o SlaveIdDataChecksum dependiendo de si dispositivo problemático está como maestro o como esclavo, respectivamente. Reiniciamos y ya está, porque el sistema volverá a detectar todo. Lo comprobamos en el Administrador de dispositivos y listo. Si no funciona así, podemos comprobar que el valor DWORD de MasterDeviceTimingModeAllowed o SlaveDeviceTimingModeAllowed está con su valor por defecto: 0xFFFFFFFF.
Método alternativo:
Vamos al Administrador de dispositivos y en Controladoras IDE ATA/ATAPI desinstalamos el canal que da problemas (Os repito que no me responsabilizo de las consecuencias...). Reiniciamos y listo, él solito reinstala el canal IDE. Ahora tenemos que volver al Administrador de dispositivos y en las propiedades del canal le decimos que use DMA si está disponible. El cambio se aplica inmediatamente.
El problema que puede dar este método es que nos diga que "Hubo un problema al instalar el hardware: canal IDE. Error en la instalación del dispositivo. El controlador no está pensado para esta plataforma". En ese caso Hans-Georg Michna (MVP) da algunas posibles soluciones.
Enlaces:

No hay comentarios: