Atualizando microcódigo de processadores AMD
Dica publicada em Linux / Introdução
Atualizando microcódigo de processadores AMD
Por que atualizar?
- O que é uma atualização de microcódigo:
Microcódigo do processador é semelhante ao firmware do processador. O kernel é capaz de atualizar o firmware do processador sem a necessidade de atualizá-lo através de uma atualização de BIOS.
A AMD oferece suporte para os processadores de patch microcódigo pertencentes à famílias de processadores AMD 10h, 11h, 12h, 14h, e 15h. O site visa Linux, Solaris e distribuições baseadas.
Mais informações sobre microcode consulte:
cat /var/log/dmesg | grep microcode
O seguinte erro foi obtido:
Para corrigir o erro vamos baixar o último microcode do site da AMD:
# wget http://www.amd64.org/pub/microcode/amd-ucode-latest.tar
Extraia o arquivo:
# tar -xvf amd-ucode-latest.tar
Entre no diretório extraído e leia o README:
# cat README
Será exibido o seguinte conteúdo:
No meu caso, meu sistema é GNU/Linux Slackware 13.1 -x86_64, portanto executarei os seguintes comandos:
# tar xvf /path/to/amd-ucode-2012-09-10.tar
# mkdir -p /lib/firmware/amd-ucode
# mv amd-ucode-2012-09-10/microcode_amd.bin /lib/firmware/amd-ucode
# mv amd-ucode-2012-09-10/microcode_amd_fam15h.bin /lib/firmware/amd-ucode
# modprobe -r microcode
# modprobe microcode
Agora checamos se ocorreu tudo perfeitamente:
# dmesg | grep microcode
Tudo certo.
Se seu sistema não iniciar o módulo microcode no boot, insira ele no rc.modules:
# echo "/sbin/modprobe microcode" >> /etc/rc.d/rc.modules
E chegamos ao final da dica.
- O que é uma atualização de microcódigo:
Microcódigo do processador é semelhante ao firmware do processador. O kernel é capaz de atualizar o firmware do processador sem a necessidade de atualizá-lo através de uma atualização de BIOS.
A AMD oferece suporte para os processadores de patch microcódigo pertencentes à famílias de processadores AMD 10h, 11h, 12h, 14h, e 15h. O site visa Linux, Solaris e distribuições baseadas.
Mais informações sobre microcode consulte:
Detectando o erro e corrigindo
Para checar o erro, utilize o comando:cat /var/log/dmesg | grep microcode
O seguinte erro foi obtido:
microcode: CPU0: patch_level=0x010000bf
microcode: failed to load file amd-ucode/microcode_amd.bin
microcode: CPU1: patch_level=0x010000bf
microcode: failed to load file amd-ucode/microcode_amd.bin
microcode: CPU2: patch_level=0x010000bf
microcode: failed to load file amd-ucode/microcode_amd.bin
microcode: CPU3: patch_level=0x010000bf
microcode: failed to load file amd-ucode/microcode_amd.bin
microcode: CPU4: patch_level=0x010000bf
microcode: failed to load file amd-ucode/microcode_amd.bin
microcode: CPU5: patch_level=0x010000bf
microcode: failed to load file amd-ucode/microcode_amd.bin
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
Para corrigir o erro vamos baixar o último microcode do site da AMD:
# wget http://www.amd64.org/pub/microcode/amd-ucode-latest.tar
Extraia o arquivo:
# tar -xvf amd-ucode-latest.tar
Entre no diretório extraído e leia o README:
# cat README
Será exibido o seguinte conteúdo:
INSTALLING AMD microcode patch container files
Linux
# cd /tmp
# tar xf /path/to/amd-ucode-2012-09-10.tar
# mkdir -p /lib/firmware/amd-ucode
# mv amd-ucode-2012-09-10/microcode_amd.bin /lib/firmware/amd-ucode
# mv amd-ucode-2012-09-10/microcode_amd_fam15h.bin /lib/firmware/amd-ucode
# modprobe -r microcode
# modprobe microcode
Solaris
# cd /tmp
# tar xf /path/to/amd-ucode-2012-09-10.tar
# mv amd-ucode-2012-09-10/microcode_amd_solaris.bin /platform/i86pc/ucode/amd-ucode.bin
and finally
# reboot
or
# ucodeadm -i /platform/i86pc/ucode/amd-ucode.bin
# ucodeadm -u /platform/i86pc/ucode/amd-ucode.bin
Linux
# cd /tmp
# tar xf /path/to/amd-ucode-2012-09-10.tar
# mkdir -p /lib/firmware/amd-ucode
# mv amd-ucode-2012-09-10/microcode_amd.bin /lib/firmware/amd-ucode
# mv amd-ucode-2012-09-10/microcode_amd_fam15h.bin /lib/firmware/amd-ucode
# modprobe -r microcode
# modprobe microcode
Solaris
# cd /tmp
# tar xf /path/to/amd-ucode-2012-09-10.tar
# mv amd-ucode-2012-09-10/microcode_amd_solaris.bin /platform/i86pc/ucode/amd-ucode.bin
and finally
# reboot
or
# ucodeadm -i /platform/i86pc/ucode/amd-ucode.bin
# ucodeadm -u /platform/i86pc/ucode/amd-ucode.bin
No meu caso, meu sistema é GNU/Linux Slackware 13.1 -x86_64, portanto executarei os seguintes comandos:
# tar xvf /path/to/amd-ucode-2012-09-10.tar
# mkdir -p /lib/firmware/amd-ucode
# mv amd-ucode-2012-09-10/microcode_amd.bin /lib/firmware/amd-ucode
# mv amd-ucode-2012-09-10/microcode_amd_fam15h.bin /lib/firmware/amd-ucode
# modprobe -r microcode
# modprobe microcode
Agora checamos se ocorreu tudo perfeitamente:
# dmesg | grep microcode
microcode: CPU0: patch_level=0x010000bf
microcode: CPU0: new patch_level=0x010000dc
microcode: CPU1: patch_level=0x010000bf
microcode: CPU1: new patch_level=0x010000dc
microcode: CPU2: patch_level=0x010000bf
microcode: CPU2: new patch_level=0x010000dc
microcode: CPU3: patch_level=0x010000bf
microcode: CPU3: new patch_level=0x010000dc
microcode: CPU4: patch_level=0x010000bf
microcode: CPU4: new patch_level=0x010000dc
microcode: CPU5: patch_level=0x010000bf
microcode: CPU5: new patch_level=0x010000dc
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
Tudo certo.
Se seu sistema não iniciar o módulo microcode no boot, insira ele no rc.modules:
# echo "/sbin/modprobe microcode" >> /etc/rc.d/rc.modules
E chegamos ao final da dica.