codigo=14720
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.
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.
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:
# apt-get update
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.
2 de 5
Microcode - Como atualizar o firmware do processador [Artigo] https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14720
microcode : 0xa4
CONFIRMANDO A IMPLANTAO
microcode : 0xa4
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
depends:
intree: Y
# cat /proc/cpuinfo
processor :1
vendor_id : GenuineIntel
cpu family :6
model : 15
stepping : 13
microcode : 0xa4
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
bogomips : 3591.20
clflush size : 64
cache_alignment : 64
power management:
- AMD CPUs
10h (Barcelona)
15h (Bulldozer)
- Intel CPUs
4 de 5
Microcode - Como atualizar o firmware do processador [Artigo] https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14720
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