Anda di halaman 1dari 5

Microcode - Como atualizar o firmware do processador [Artigo] https://www.vivaolinux.com.br/artigos/impressora.php?

codigo=14720

MICROCODE - COMO ATUALIZAR O FIRMWARE DO PROCESSADOR

Autor: Perfil removido <>


Data: 09/05/2014

CONCEITOS BSICOS

O computador um misto de hardware e software. A maior parte do software composta por programas utilitrios que, teoricamente, nunca
se relacionam diretamente com o hardware.

No entanto, existe uma categoria de software que est diretamente envolvida com o funcionamento do hardware. Esse software, relacionado
com o hardware, chamado de driver (no Windows) e de mdulo (no GNU/Linux (//www.vivaolinux.com.br/linux/)).

Sem o driver (mdulo) apropriado, um hardware simplesmente no funcionar. Quando instalamos uma nova verso do Windows ou um novo
kernel Linux (//www.vivaolinux.com.br/linux/), precisamos atualizar nosso software de driver (mdulo) de modo a adequar esse software com a
nova verso de sistema operacional.

Um driver (mdulo), um software como outro qualquer e, por isso, est sujeito a erros de programao (bugs). Quando um erro corrigido,
uma atualizao de verso lanada. Neste caso, basta o usurio descarregar a atualizao pela Internet e instalar, ou recompilar, o seu
kernel Linux com suporte para o novo mdulo. Um novo driver (mdulo) possui melhoramentos, que podem fazer seu hardware trabalhar melhor
e de forma mais estvel.

Porm, existem situaes em que a simples atualizao do driver (mdulo) no suficiente para introduzir correes ou melhorias. Nestes
casos mais graves, a falha est em um nvel anterior ao carregamento do driver (mdulo), sendo necessrio atualizar o software embarcado
no prprio dispositivo. Esse software embarcado, chamado de firmware ou microcode. Conhecemos esse software embarcado, de modo
geral, como BIOS.

Os sistemas BIOS esto presentes em vrios dispositivos de hardware e muitos so atualizveis, mas, nem todos. A maioria dos firmwares
armazenada em memrias do tipo EEPROM e podem ser atualizados (a BIOS da placa me um exemplo disso). Ns, que lidamos com
hardware, j estamos acostumados a atualizar a BIOS da placa me, o firmware do roteador Wireless ou do gravador de DVD. Isso deve ser
feito em casos extremos, por ser uma operao que pode danificar permanentemente seu hardware, se executada de modo errado.

Agora, quando um problema detectado no funcionamento de um processador, no h como atualizar o software embarcado nele, pois no h
uma EEPROM dentro do processador. O microcode original, implementado no processador na forma de circuitos.

Apesar de extremamente avanados e modernos, os processadores no esto livres de erros em sua programao interna, e isso muito
mais comum do que voc pode imaginar!

Erros na programao interna de processadores so muito difceis de detectar e esto relacionados com comportamentos estranhos e que
geram travamentos (telas azuis ou kernel panic) ou reboots aleatrios da mquina.

Quando esses erros aparecem, normalmente atualizamos a BIOS da placa me, os drivers (mdulos), os softwares utilitrios e, por fim, o
prprio sistema operacional.

Muitas vezes, o erro desaparece e outras vezes, no. Quando esses travamentos ocorrem, o mais comum a troca de partes do
equipamento como: memrias RAM, fonte de energia, placas PCI, o cooler e, por fim, o prprio processador.

Mas, nem isso uma garantia de soluo ao problema e muitos hardwares acabam simplesmente condenados pela avaliao de um tcnico,
que no encontra o problema facilmente.

CPU MICROCODE

De acordo com [1], microcode um conjunto de instrues em baixo nvel (linguagem de mquina) que controla diretamente o modo de
funcionamento de um processador.

1 de 5
Microcode - Como atualizar o firmware do processador [Artigo] https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14720

Nos processadores modernos, o microcode implementado na forma de circuitos e no pode ser modificado. Algumas arquiteturas, como
RISC, simplesmente eliminaram o microcode de dentro do processador. Outras arquiteturas, como mini e mainframes, so atualizveis por
microcode armazenado em chips EEPROM.

Segundo [2], microcode de processadores, podem ser entendidos com uma espcie de firmware. O kernel Linux (//www.vivaolinux.com.br
/linux/) capaz de injetar esse cdigo em tempo de boot, modificando o comportamento do processador, sem necessidade de outro tipo de
atualizao como, por exemplo, feito com as BIOS.

Os processadores modernos da Intel e da AMD, esto preparados para funcionar com microcode injetado. Manter seu microcode atualizado
elimina potenciais problemas de funcionamento e corrupo de dados. Problemas difceis de detectar como as falhas de segmentao,
travamentos, reboots aleatrios e outros inexplicveis, esto relacionados falhas do processador.

As BIOS (tradicionais) ou sistemas EFI podem atenuar o problema, se estiverem atualizadas. Todavia, os vendedores no atualizam suas
BIOS com frequncia e os usurios fazem isso com muito menos frequncia. Bilhes de computadores esto funcionando com suas BIOS
completamente desatualizadas.

SUPORTE DEBIAN PARA MICROCODE

Conforme anunciado em [3], por Henrique M. Holschuh (desenvolvedor Debian) o suporte para atualizao de microcode em tempo de boot
para processadores Intel e AMD, est disponvel no Debian.

Para detectar se seu processador est sendo executado, com ou sem o suporte, basta filtrar a expresso microcode da leitura de
/proc/cpuinfo.

# fgrep -i microcode /proc/cpuinfo

A instalao e as configuraes necessrias, so totalmente automatizadas pela instalao dos pacotes de microcode (amd64-microcode ou
intel-microcode) e pelos utilitrios do pacote iucode-tool.

Todavia, esses pacotes no esto de acordo com as rgidas regras do licenciamento Debian e no so considerados software livre. Para
obter esses pacotes, preciso atualizar seu arquivo /etc/apt/sources.list, incluindo as sees contrib e non-free em cada um dos seus
repositrios oficiais, como, por exemplo:

deb http://ftp.br.debian.org/debian/ wheezy main contrib non-free

Posteriormente, basta atualizar sua lista de pacotes:

# apt-get update

E proceder a instalao dos pacotes:

# apt-get install intel-microcode iucode-tool

Observe que a atualizao do microcode efmera e a cada boot, ele deve ser reaplicado. Em alguns casos, o simples fato do sistema entrar
em modo de suspenso para memria RAM, ou para o disco rgido, pode ser suficiente para desfazer a injeo do microcode. Esteja atendo a
isso e evite utilizar os modos de hibernao e suspenso para RAM.

Para sistemas em produo, saiba que no necessrio o reincio (reboot) e o microcode ser aplicado imediatamente aps a instalao dos
pacotes e estar disponvel a partir deste ponto.

Particularmente, eu recomendo a instalao em um momento de manuteno programada, para que possa fazer um reincio e ter certeza que
a caracterstica foi corretamente instalada.

Caso os pacotes (iucode-tool e amd64-microcode ou intel-microcode) sejam removidos, a funcionalidade deixar de existir em seu sistema.

Para checar a verso do microcode que est em execuo no sistema, faa:

2 de 5
Microcode - Como atualizar o firmware do processador [Artigo] https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14720

# fgrep -i microcode /proc/cpuinfo


microcode : 0xa4

microcode : 0xa4

CONFIRMANDO A IMPLANTAO

# fgrep -i microcode /proc/cpuinfo


microcode : 0xa4

microcode : 0xa4

Outra forma de filtrar e confirmar a injeo do microcode durante o boot, :

# dmesg |fgrep -i microcode


[ 2.887380] microcode: CPU0 sig=0x6fd, pf=0x1, revision=0x0

[ 2.902898] platform microcode: firmware: agent loaded intel-ucode/06-0f-0d into memory

[ 2.914852] microcode: CPU0 updated to revision 0xa4, date = 2010-10-02

[ 2.926347] microcode: CPU1 sig=0x6fd, pf=0x1, revision=0x0

[ 2.951439] platform microcode: firmware: agent loaded intel-ucode/06-0f-0d into memory

[ 2.963699] microcode: CPU1 updated to revision 0xa4, date = 2010-10-02

[ 2.975655] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba

As BIOS (SETUP) novas, podem exibir o valor original do microcode do processador antes da atualizao. Esse valor ser diferente, quando
o microcode for atualizado em tempo de execuo.

OUTRAS DICAS

O mdulo cpuid pode ser necessrio para a correta funcionalidade de iucode_tool. Para tanto, inclua esse mdulo em /etc/modules para
garantir seu carregamento em tempo de execuo.

# modinfo cpuid
filename: /lib/modules/3.2.0-4-amd64/kernel/arch/x86/kernel/cpuid.ko

license: GPL

description: x86 generic CPUID driver

author: H. Peter Anvin <hpa@zytor.com>

depends:

intree: Y

vermagic: 3.2.0-4-amd64 SMP mod_unload modversions

No sei qual o meu processador, e agora?

# cat /proc/cpuinfo
processor :1

vendor_id : GenuineIntel

cpu family :6

model : 15

model name : Intel(R) Pentium(R) Dual CPU E2160 @ 1.80GHz

stepping : 13

microcode : 0xa4

cpu MHz : 1200.000

cache size : 1024 KB

physical id :0

siblings :2

core id :1

cpu cores :2

apicid :1

initial apicid : 1

fpu : yes

fpu_exception : yes

cpuid level : 10

wp : yes

3 de 5
Microcode - Como atualizar o firmware do processador [Artigo] https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14720

flags : fpu vme de pse tsc msr pae mce cx8 apic

sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm

pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor

ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dtherm

bogomips : 3591.20

clflush size : 64

cache_alignment : 64

address sizes : 36 bits physical, 48 bits virtual

power management:

De acordo com [4], as seguintes CPUs aceitam atualizaes de microcode:

- AMD CPUs

De acordo com a AMD:

10h (Barcelona)

11h (Turion X2 Ultra/Llano)

12h (Fusion), 14h (Bobcat)

15h (Bulldozer)

- Intel CPUs

De acordo com a Intel:

Intel Atom Processor

Intel Atom processor for Entry Level Desktop PCs

Intel Celeron Desktop Processor

Intel Core Duo Processor

Intel Core i3 Desktop Processor

Intel Core i3 Mobile Processor

Intel Core i5 Desktop Processor

Intel Core i5 Mobile Processor

Intel Core i7 Desktop Processor

Intel Core i7 Mobile Processor

Intel Core i7 Mobile Processor Extreme Edition

Intel Core i7 Processor Extreme Edition

Intel Core Solo processor

Intel Core2 Duo Desktop Processor

Intel Core2 Duo Mobile Processor

Intel Core2 Extreme Mobile Processor

Intel Core2 Extreme Processor

Intel Core2 Quad Mobile Processor

Intel Core2 Quad Processor

Intel Core2 Solo Processor

Intel Pentium 4 Processor Extreme Edition

Intel Pentium 4 Processors

Intel Pentium D Processor

Intel Pentium M Processor

Intel Pentium Processor Extreme Edition

Intel Pentium Processor for Desktop

Intel Pentium Processor for Mobile

Intel Setup and Configuration Software (Intel SCS)

Intel vPro technology

Intel Xeon Processor

Intel Xeon Processor 3000 Sequence

Intel Xeon Processor 5000 Sequence

Intel Xeon Processor 6000 Sequence

Intel Xeon Processor 7000 Sequence

Intel Xeon processor E3-1200 Product Family

Intel Xeon processor E5-1600 Product Family

4 de 5
Microcode - Como atualizar o firmware do processador [Artigo] https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14720

Intel Xeon processor E5-2400 Product Family

Intel Xeon processor E5-2600 Product Family

Intel Xeon processor E5-4600 Product Family

Intel Xeon processor E7-2800 Product Family

Intel Xeon processor E7-4800 Product Family

Intel Xeon processor E7-8800 Product Family

Intel Z2460 Smartphone

Mobile Intel Celeron Processors

Mobile Intel Pentium 4 Processors - M

REFERNCIAS

[1] What is microcode? - A Word Definition From the Webopedia Computer Dictionary (http://www.webopedia.com/TERM/M
/microcode.html)
[2] Microcode - Debian Wiki (https://wiki.debian.org/Microcode)
[3] ANNOUNCEMENT: Intel/AMD x86 CPU microcode update system in non-free (https://lists.debian.org/debian-devel/2012
/11/msg00109.html)
[4] Microcode - ArchWiki (https://wiki.archlinux.org/index.php/Microcode)

Voltar (verArtigo.php?codigo=14720)

5 de 5

Anda mungkin juga menyukai