atualização de microcódigo persistente no Linux

1

Eu apenas tentei atualizar o microcódigo para o meu processador Intel Core i3-3217U seguindo as instruções da Intel . Eu estou no Debian Mint Debian edição 2 (kernel 3.16.0-5-amd64).

O que eu fiz:

  • Existe um /sys/devices/system/cpu/microcode/reload
  • Não há /lib/firmware/intel-ucode , apenas /lib/firmware/intel . Eu adicionei a pasta de qualquer maneira a partir do pacote baixado.
  • Como por instrução, como SU eu executei

    echo 1 > /sys/devices/system/cpu/microcode/reload
    

cat /proc/cpuinfo | grep microcode me fornece 0x1f , que é a versão atualizada, mas apenas enquanto o sistema estiver em execução. Depois de uma reinicialização, volto para 0x12 .

Como posso tornar a atualização permanente?

    
por ccprog 14.03.2018 / 19:10

4 respostas

2

Você não pode tornar a atualização do microcódigo da Intel permanente, ela deve ser carregada após cada inicialização. O microcódigo é armazenado em RAM volátil na CPU.

    
por 14.03.2018 / 20:33
2

Como uma solução intermediária enquanto a atualização do microcódigo não é portada para o Debian, você pode adicionar o "echo 1 > / sys / devices / system / cpu / microcode / reload" ao /etc/rc.local depois de instalar a atualização do microcódigo por instruções da Intel. Este é um patch bastante tardio, mas provavelmente OK se você confiar em seu ambiente de inicialização:)

    
por 04.04.2018 / 16:26
1

Descobri que posso carregar o microcódigo no ramdisk inicial, aproveitando o código do pacote debian intel-microcode . Isso está atualmente em uma versão mais antiga dos microcódigos, mas eles podem ser substituídos.

Depois de instalar o pacote, removi manualmente todos os arquivos em /lib/firmware/intel-ucode e os substituímos pelas novas versões do download da Intel. Depois disso, eu pude atualizar initrd.img-<kernel version> com

update-initramfs -u

grub-mkconfig também executaria isso.

Pelo que entendi, o intel-ucode.img mencionado na outra resposta seria o chamado "arquivo initramfs inicial". Parece que o script de gancho initramfs-tools que está incluído no pacote escolhe para si mesmo se ele coloca o módulo de atualização em um .img separado ou no initrd.img principal.

Editar: Parece que as novas versões de microcódigo já chegaram ao pacote instável . Dependências são inalteradas, então elas podem funcionar no Debian stretch (ou jessie, que eu ainda estou usando). Eu suspeito que levará apenas alguns dias até que a nova versão do pacote seja portada. Então, a instalação será suficiente.

    
por 14.03.2018 / 21:26
0

Atualizações de microcódigo são aplicadas durante a inicialização e, portanto, devem ser adicionadas ao carregador de inicialização, por exemplo, GRUB2 ou systemd-boot. Mais especificamente, /boot/intel-ucode.img (ou onde quer que este arquivo esteja localizado em seu sistema) deve ser adicionado como a primeira imagem initrd de seu processo de inicialização (mas não deve / strong> substitua sua imagem normal do initrd). Uma vez que o pacote de atualização do microcódigo é instalado, o script grub-mkconfig geralmente cuida disso sozinho, mas você pode verificar se o arquivo /boot/grub/grub.cfg tem uma linha similar:

initrd  /intel-ucode.img /initramfs-linux.img

Caso contrário, você pode reinstalar o pacote do microcódigo ou executar o script grub-mkconfig manualmente.

    
por 14.03.2018 / 20:38