PROBLEMA REAL:
En las CPU's SkyLake y KabyLake (series I3, I5 e I7 de los procesadores 6XXXX y 7XXXX) existía un problema de microcódigo por el cual en ciertas condiciones y con el Hyper-Threading activado el sistema se bloquea. Aunque minimizado por Intel y corregido posteriormente, los usuarios que tenian maquinas con las primeras CPU's de dicha serie que salieron tienen bloqueos aleatorios del sistema que obliga a apagar de boton o cortar la corriente.
En este caso me encontraba yo con un pequeño barebone (fanless) con un I7-7500U con revisión de microcódigo 3C (no fue solucionado por Intel hasta la revisión 47. Por desgracia el fabricante de la BIOS no daba actualización para ella.
INTRODUCCION
El microcode de la CPU es una capa de instrucciones a nivel hardware que implantan los procesadores para traducir los codigos maquina a nivel mas bajo directamente asociados con el hardware fisico de la CPU. En otras palabas es lo que traduce las instrucciones maquina que enviamos al procesador al nivel necesario para ser interpretadas por el hardware fisico del procesador.
El microcodigo reside en una memoria especial de alta velocidad. Cuando encendemos la maquina, el propio procesador carga su microcode en dicha memoria (que se pierde al apagar la maquina). Al estar en memoria volatil, es posible modificarlo de dos formas: una, la propia BIOS de la maquina, o bien el propio sistema operativo al cargarse.
Es bastante normal que los procesadores, sobre todo la primera generacio de cada familia, tengan errores en el microcódigo que son subsanables mediante una actualización de BIOS. El problema surge cuando el fabricante de la placa madre no nos da BIOS actualizadas que parcheen el microcódigo. En ese caso debe ser el propio sistema operativo.
En los casos en que el sistema operativo debe parchearlo, no existe en general problema en Linux, ya que el propio sistema trae integrado el driver de actualización y unicamente debemos obtener de Intel o AMD el fichero con el archivo de microcódigo actualizado. El problema surge en Windows: Windows tiene la capacidad tambien, pero no siempre Microsoft realiza el parche en las actualizaciones mensuales y sobre todo ultimamente parece que no realiza ninguna.
SOLUCION:
Para ver la versión del microcódigo que tenemos y sobre todo para comprobar posteriormente que se ha actualizado podemos usar el programa HWINFO: https://www.hwinfo.com/download.php (en la parte de uCU nos informa de la revsión del microcódigo)
1) VMWare posee un driver para windows que es capaz de actualizar el microcódigo: VMware CPU Microcode Update Driver, que puede bajarse desde: https://labs.vmware.com/flings/vmwar...-update-driver
Descompimirlo en una carpeta. El archivo install.bat tiene atributos de solo lectura y como tendremos que cambiarlo, modificadle el atributo (boton derecho, propiedades) para que podamos modificarlo.
2) Bajarse el último microcódigo desde Intel: https://downloadcenter.intel.com/sea...crocode+latest
A pesar que pone que es para Linux, podremos cargarlo con el driver anterior en Windows. Prestar atención a como os lo descarga el navegador ya que al menos en mi caso, me lo descargó con una extension incorrecta. Debe tener extension TGZ, ponersela si no es así. Abrirlo con WINRAR o 7ZIP y extraer el archivo microcode.dat dejandolo en la carpeta en donde hemos descomprimido el driver bajado en el punto 1).
3) editad el fichero install.bat y modificar en la linea 27, donde pone:
Es decir eliminando los dos ficheros de microcodigo de AMD, ya que lo vamos a parchear es un Intel.
Ahora con boton derecho sobre el install.bat seleccionar "Ejecutar como Administrador". Nos dará por dos veces error al copiar un fichero que no existe (los de AMD que hemos eliminado y no tenemos) y en ambos caso daremos a Cancelar y posterioremente a "continuar el setup sin copiar dicho fichero".
Con lo anterior ya tendremos el driver instalado (hay que hacerlo de nuevo si instalamos windows desde cero). En el visor de eventos ademas nos informará en cada arranque de su carga, y un mensaje informativo en caso de que no sea necesario (por ejemplo con una atualización posterior de BIOS). Existe igualmente un uninstall.bat por si tuviesemos que desistalarlo en ese caso.
Con HWINFO ahora podremos revisar igualmente que el microcódigo ha quedado actualizado.
En las CPU's SkyLake y KabyLake (series I3, I5 e I7 de los procesadores 6XXXX y 7XXXX) existía un problema de microcódigo por el cual en ciertas condiciones y con el Hyper-Threading activado el sistema se bloquea. Aunque minimizado por Intel y corregido posteriormente, los usuarios que tenian maquinas con las primeras CPU's de dicha serie que salieron tienen bloqueos aleatorios del sistema que obliga a apagar de boton o cortar la corriente.
En este caso me encontraba yo con un pequeño barebone (fanless) con un I7-7500U con revisión de microcódigo 3C (no fue solucionado por Intel hasta la revisión 47. Por desgracia el fabricante de la BIOS no daba actualización para ella.
INTRODUCCION
El microcode de la CPU es una capa de instrucciones a nivel hardware que implantan los procesadores para traducir los codigos maquina a nivel mas bajo directamente asociados con el hardware fisico de la CPU. En otras palabas es lo que traduce las instrucciones maquina que enviamos al procesador al nivel necesario para ser interpretadas por el hardware fisico del procesador.
El microcodigo reside en una memoria especial de alta velocidad. Cuando encendemos la maquina, el propio procesador carga su microcode en dicha memoria (que se pierde al apagar la maquina). Al estar en memoria volatil, es posible modificarlo de dos formas: una, la propia BIOS de la maquina, o bien el propio sistema operativo al cargarse.
Es bastante normal que los procesadores, sobre todo la primera generacio de cada familia, tengan errores en el microcódigo que son subsanables mediante una actualización de BIOS. El problema surge cuando el fabricante de la placa madre no nos da BIOS actualizadas que parcheen el microcódigo. En ese caso debe ser el propio sistema operativo.
En los casos en que el sistema operativo debe parchearlo, no existe en general problema en Linux, ya que el propio sistema trae integrado el driver de actualización y unicamente debemos obtener de Intel o AMD el fichero con el archivo de microcódigo actualizado. El problema surge en Windows: Windows tiene la capacidad tambien, pero no siempre Microsoft realiza el parche en las actualizaciones mensuales y sobre todo ultimamente parece que no realiza ninguna.
SOLUCION:
Para ver la versión del microcódigo que tenemos y sobre todo para comprobar posteriormente que se ha actualizado podemos usar el programa HWINFO: https://www.hwinfo.com/download.php (en la parte de uCU nos informa de la revsión del microcódigo)
1) VMWare posee un driver para windows que es capaz de actualizar el microcódigo: VMware CPU Microcode Update Driver, que puede bajarse desde: https://labs.vmware.com/flings/vmwar...-update-driver
Descompimirlo en una carpeta. El archivo install.bat tiene atributos de solo lectura y como tendremos que cambiarlo, modificadle el atributo (boton derecho, propiedades) para que podamos modificarlo.
2) Bajarse el último microcódigo desde Intel: https://downloadcenter.intel.com/sea...crocode+latest
A pesar que pone que es para Linux, podremos cargarlo con el driver anterior en Windows. Prestar atención a como os lo descarga el navegador ya que al menos en mi caso, me lo descargó con una extension incorrecta. Debe tener extension TGZ, ponersela si no es así. Abrirlo con WINRAR o 7ZIP y extraer el archivo microcode.dat dejandolo en la carpeta en donde hemos descomprimido el driver bajado en el punto 1).
3) editad el fichero install.bat y modificar en la linea 27, donde pone:
Código:
for %%i IN (microcode.dat microcode_amd.bin microcode_amd_fam15h.bin) DO ( Dejándola como: for %%i IN (microcode.dat) DO (
Ahora con boton derecho sobre el install.bat seleccionar "Ejecutar como Administrador". Nos dará por dos veces error al copiar un fichero que no existe (los de AMD que hemos eliminado y no tenemos) y en ambos caso daremos a Cancelar y posterioremente a "continuar el setup sin copiar dicho fichero".
Con lo anterior ya tendremos el driver instalado (hay que hacerlo de nuevo si instalamos windows desde cero). En el visor de eventos ademas nos informará en cada arranque de su carga, y un mensaje informativo en caso de que no sea necesario (por ejemplo con una atualización posterior de BIOS). Existe igualmente un uninstall.bat por si tuviesemos que desistalarlo en ese caso.
Con HWINFO ahora podremos revisar igualmente que el microcódigo ha quedado actualizado.
Comentario