Como atualizar BIOS, UEFI ou Microcode do Linux

Die shot ou micrografia de um Intel XEON E5

Voce sabe como atualizar BIOS do seu PC? Com vulnerabilidades como Spectre, Meltdown e todas as suas variantes e outras falhas de segurança detectadas no hardware, especialmente nas CPUs, você certamente já leu muitas vezes que muitas delas são resolvidas sabendo como atualizar o BIOS ou UEFI do seu computador ., já que uma atualização ou patch é necessária para o microcódigo usado pela CPU e, portanto, alterar a forma como a Unidade de Controle da CPU opera para que não seja vulnerável a tais ameaças.

Além de vulnerabilidades, firmware pode ser atualizado por muitas outras causas, como mau funcionamento de um dispositivo de hardware, erros constantes no software de forma inexplicável, atualizações para adicionar algumas funcionalidades, etc. Mas como eu disse, nos últimos meses temos ouvido esse termo muitas vezes devido a problemas de segurança que são bastante críticos em alguns casos e que tiveram a ver com a maneira como os microprocessadores modernos lidam com alguns saltos, cache, FPU e execução especulativa, embora em outros casos eles tenham sido detectados em outras partes do sistema, como chipsets ou certos processadores de segurança integrados nessas plataformas ...

O que é firmware?

Chip BIOS de uma placa-mãe

Todos nós sabemos muito bem o que são hardware (parte física e palpável de um computador, isto é, eletrônica) e software (aquela parte lógica que não pode ser tocada: programas). Mas entre o hardware e o software, ou melhor, entre o hardware e o kernel do sistema operacional há outra coisa: o firmware. O firmware está presente em todos os dispositivos e partes de um computador, desde o mouse, o drive ótico, até a GPU e CPU que operam com um microcódigo.

Mas é? Bem, você pode dizer isso é código, ou seja, software e, portanto, um componente lógico, mas desta vez é inalterável. Opera em um nível baixo e controla diretamente as funcionalidades dos circuitos eletrônicos. Este firmware, com a ajuda dos controladores ou drivers, permite que quando o kernel do sistema operacional comandar o hardware para realizar uma tarefa, ele a execute. Este programa ou código foi gravado pelo fabricante do dispositivo em uma memória que geralmente é flash ou algum tipo de ROM, como EEPROM.

Mas um dos firmware que mais nos interessa neste artigo é o BIOS ou UEFI de um sistema, por se tratar de um firmware muito importante que possui diversas funções durante a inicialização e operação do equipamento. Por exemplo, este código se encarrega de acionar a máquina durante a inicialização, detectar discos rígidos ou mídias onde um sistema operacional esteja disponível, realizar algumas verificações interferindo em outro firmware dos componentes e periféricos, e dar controle ao kernel quando o sistema começa a começar ...

Por que atualizá-lo afeta a CPU?

Pinos da CPU

... e isso tem a ver com a CPU, muito bem. Acontece que as CPUs têm uma unidade de controle, Esta unidade de controle é um circuito que é responsável por controlar o resto das partes do microprocessador ou CPU, como decodificar as instruções e fazer os dados com os operandos irem para os registros apropriados e então ativar alguma unidade funcional como uma ALU ou FPU e que realiza alguma operação nos dados dependendo do tipo de instrução que está sendo executada. Essas instruções, por sua vez, vêm do programa ou código do software que está sendo processado naquele momento, pois, como você deve saber, os programas são compostos de uma série de instruções sequenciais.

Como você pode imaginar, esta unidade de controle opera da maneira que o fabricante ou projetista a criou. Em alguns casos específicos, as unidades de controle podem ser cabeadas, ou seja, costumam ser bastante rápidas, mas não muito flexíveis, já que são implementadas diretamente com um circuito muito específico. Por outro lado, também existem os programáveis, ou seja, um circuito um pouco mais "aberto" que pode operar de uma forma ou de outra de acordo com um microcódigo ou firmware. Conclui-se, portanto, que se alterarmos o firmware ou microcódigo, podemos fazer a unidade de controle e, portanto, a CPU pode operar de forma diferente ou corrigir alguns bugs ou vulnerabilidades.

Não quero ser muito técnico, quero que este artigo alcance o maior número de pessoas possível e que tudo o que eu quero dizer seja facilmente entendido ... E em muitas máquinas acontece que esse código é geralmente integrado ao BIOS ou UEFI , embora às vezes o microcódigo possa ser atualizado pelo kernel a cada boot, salvando a atualização ou patch em memória volátil, ou seja, em RAM, evitando a necessidade de alteração do BIOS / UEFI.

Como atualizar o BIOS / UEFI do Linux?

Interface UEFI ASUS

Para atualizar BIOS / UEFI do Linux ou microcódigo, vamos analisar ambos os procedimentos.

Antes de realizar uma atualização de microcódigo, é muito importante que você tenha BIOS atualizado / firmware UEFIcaso contrário, pode não funcionar. Portanto, verifique o site do provedor de sua empresa, como Phoenix, Award, etc., ou o site de suporte técnico do modelo de sua placa-mãe, que geralmente contém pacotes para atualizar esses sistemas.

Atualizar o BIOS / UEFI é algo delicado, como você pode ver na última seção sobre riscos. É por isso que aconselho você a não fazer isso se não tiver certeza do que está fazendo e se você quiser atualizar ou você precisa, mas não tem conhecimento suficiente, consulte sempre um profissional. Além disso, recomendo que você dê uma olhada em projetos como fwupd, BIOSDisck, Flashrom, etc., que são ferramentas muito práticas que nos ajudarão no processo.

Um dos que mais gosto é flashrom, É um pacote que nos dá uma ferramenta que permite identificar, ler, escrever, verificar e apagar chips flash. Isso não serve apenas para fazer o flash de um BIOS / UEFI / CoreBoot, mas também para modificar outras memórias flash de placas de rede, GPUs, etc., em outros dispositivos com firmware modificável. Ele também oferece suporte a vários sistemas operacionais e uma infinidade de engrenagens e modelos de dispositivos e placas.

  • Instale o pacote flashrom na sua distribuição usando o gerenciador de pacotes que você normalmente usa, pois é uma ferramenta que está entre os repositórios das distribuições mais importantes.
  • Usar root ou sudo, já que para usá-lo você precisa de privilégios para ser algo delicado.
  • Identifique o firmware que usamos simplesmente executando o comando:
flashrom

  • Eu recomendo que você faça um faça backup de sua ROM atual, caso você descubra que a nova atualização não funciona e você queira voltar. Para isso:
flashrom -r copia_seguridad.bin

  • Sim já nós temos a nova ROM que baixamos de uma fonte CONFIÁVEL, podemos usar o seguinte comando para piscar, por exemplo, se nossa nova atualização for chamada uefi-sm.bin:
flashrom -wv uefi-sm.bin

Para mais informações consulte o manual com homem flashrom.

Atualizar microcódigo:

Para atualizar o microcódigo de nossa CPU, sem mexer no BIOS / UEFI, ou seja, com uma simples modificação no kernel do Linux, você pode optar por instalar os pacotes necessários para sua CPU. Por exemplo, se você tem uma CPU AMD moderna, o normal é que instale o pacote chamado amd64-microcódigo, e para um Intel o pacote microcódigo intel (se você usar openSUSE, SUSE, RHEL, CentOS, etc., o pacote é chamado microcódigo_ctl, e para Arch intel-ucode ou amd-ucode ...) que você pode encontrar em sites confiáveis ​​... (se for uma máquina x86, se for ARM ou diferente, vá para o site do fabricante). Insisto a pesar de parecer un pesado, no descargues este tipo de paquetes desde fuentes desconocidas, es muy importante. Bien, ahora que ya lo tenemos descargado e instalado, puede que el procedimiento sea diferente en cada distribución y que implique activar algunos paquetes o actualizaciones restringidos como los propietarios…

Com esses pacotes instalados e as configurações do sistema referenciando atualizações bem configuradas, lpróprias atualizações de segurança que instala o sistema operacional já incluirá este tipo de patches de microcódigo se alguma vulnerabilidade séria for detectada, como Spectre, Meltdown, etc.

Se desejar, você pode obter informações de microcódigo de sua distribuição usando:

dmesg | grep microcode

E com isso vamos obter detalhes do microcódigoNa verdade, se tivermos executado este comando antes de instalar os pacotes que mencionei antes (após a instalação é necessário reiniciar) e depois, veremos que ele nos mostra as alterações se houver uma atualização disponível que tenha sido instalada.

Às vezes, a AMD, Intel e outros fabricantes ou designers de CPU fornecem tarballs com blobs binários para atualizar microcódigo ou firmware. Se você baixou um desses pacotes de um local confiável, siga as instruções fornecidas pelo distribuidor ou consulte os arquivos README.

Perigos e dicas antes de atualizar o BIOS

Placas-mãe para reciclagem

Uma atualização de firmware ou microcódigo da CPU significa, na maioria dos casos, atualizar códigos fechados fornecidos pelos provedores de CPU que temos, drivers de kernel fechados (blobs binários), etc. Quero deixar isso claro, já que seu conteúdo e forma de operação são desconhecidos e parece lógico que você saiba. Em princípio, se você não usa hardware livre, você não tem escolha a não ser confiar no fabricante ou designer de sua CPU ou placa-mãe, mas sim, nunca baixe microcódigo ou firmware de sites não oficiais, pois é algo muito delicado.

Na verdade não só é delicado por razões de segurança, já que você também pode tornar o equipamento totalmente inutilizável. Mesmo que você tenha baixado o firmware de um site confiável, algo pode dar errado durante o processo, como uma queda de energia e isso deixa a instalação da atualização e o firmware completamente corrompidos, o que significa que você já pode estar pensando em gastar dinheiro para comprar uma nova placa-mãe.

Isso é o que é conhecido pelo termo tijolo na gíria de hardware, ou seja, deixe seu hardware como um tijolo, sem nenhum tipo de utilidade. Com isto quero dizer-lhe para ser cauteloso e que não somos responsáveis ​​pelo que pode acontecer se você decidir atualizar um firmware ou fazer um flash no BIOS / EFI. Mas atenção, isso nem sempre implica riscos, como já falei antes, nem sempre é necessário "mexer" no BIOS / EFI, também existem atualizações que são apenas no nível do SO e não implicam nesses riscos. .

Espero que este tutorial tenha sido útil, qualquer dúvida ou sugestão, não esqueça de deixar o seu comentários...


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Ruben Horácio Specogna dito

    hola buenos, días quise instalar xubuntu 14 en mi notebook,y descargue los archivos, los instala pero cuando pide reiniciar desde la llave usb, entro en la bios y no puedo encontrar la memoria flash en el menu de arranque, alguien me puede ayudar, desde já muito obrigado.

  2.   José luis mateo dito

    Olá amigos:

    O artigo me parece excelente, embora "perigoso" para aqueles de nós que são mais novatos e medrosos.

    Há muito tempo que estou perdendo um bom artigo que nos faça entender como um sistema de impressora multifuncional como o meu (Canon MG 7150) funciona em Wifi.

    Com o Linux, nunca o fiz funcionar totalmente. Consegui ligar a impressora por USB para funcionar, mas nunca o scanner, nem por wi-fi nem por cabo.

    É por isso que hoje trago o assunto e ao mesmo tempo agradeço por nos fornecer artigos de tamanha qualidade como este; mas ao mesmo tempo gostaria que alguém que soubesse fazer isso facilitasse o funcionamento do referido sistema.

    Obrigado e melhores cumprimentos

  3.   Gabriel dito

    Primeiro verifique na BIOS se existe a opção MULTIBOOT (onde você deve ativá-la), se não existe, para inicializar com USB geralmente ao ligar o PC você tem que segurar a tecla F8 por um tempo (em outros PCs geralmente é F12) e aí o menu de boot salta mostrando as opções: disco rígido, CD, USB. No caso de ter UEFI, o USB deve ser gerado com a opção UEFI caso contrário não é reconhecido