Por que as atualizações de microcódigo da Intel não funcionam no meu sistema?

8

Quero atualizar meu sistema para mitigar as explorações de Spectre e Meltdown.

A página relevante do Ubuntu afirma que eu preciso atualizar os microcódigos: "Do ponto de vista de convidado e não hipervisor, a partir das atualizações do kernel de 21 de fevereiro, tanto quanto sabemos, as atenuações para Spectre e Meltdown em 64 bits amd64, ppc64el e s390x são completos, desde que todas as atualizações de microcódigo, firmware e hipervisor sob o sistema sejam realizadas. ... "

Eu intel-microcodee iucode-toolinstalado e atualizado, no entanto correndo dmesg | grep -i microcodee grep -i microcode /var/log/syslog*retorno nada que me faz pensar que ou o microcódigo cpu não é atualizado ou algo está errado.

Os pacotes estão atualizados e foram reiniciados desde a última atualização.

sistema operacional: Lubuntu 16.04

CPU: Intel N3700 (Braswell)

repositórios de software ativados: principal, universo

atualizações ativadas: xenial-security

Edit:
A saída de grep name /proc/cpuinfo | sort -ué
model name : Intel(R) Pentium(R) CPU N3700 @ 1.60GHz

Meu processador não é Skylake, nem Kaby lake.

No /proc/cpuinfohyper-threading aparece como suportado, mas esta página da Intel diz que não é suportado:
https://ark.intel.com/products/87261/Intel-Pentium-Processor-N3700-2M-Cache-up-to-2_40 -GHz

Edit 2:
Eu corri sudo update-initramfs -ue reiniciei. As saídas ainda são as mesmas.

Saída de /usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/*:

/usr/sbin/iucode_tool: system has processor(s) with signature 0x000406c3
selected microcodes:

Parece que não há microcódigo atualizado para minha CPU, o que é interessante, pois havia um microcódigo selecionável na Additional Driversguia anteriormente (final de 2017); agora não há.

Editar 3:
Saída de apt list --installed | grep intel-microcode:

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

intel-microcode/xenial-security,now 3.20180108.0+really20170707ubuntu16.04.1 amd64 [installed]

Edit 4:
Agora entendo que não há atualização para o microcódigo da CPU, o que significa que o problema original foi resolvido e deixarei como está.

No entanto, dmesge journalctl -bainda deve produzir linhas sobre a versão do microcódigo, acredito.
Também notei que esses logs de inicialização começam em "5" em vez dos 1 ou 0 típicos, e há uma mensagem de erro repetida que os torna truncados ( dmesgnão diz nada sobre truncamento, mas journalctldiz que existem 371635 mensagens de kernel perdidas, veja abaixo) . Vou ignorar isso por enquanto.

March 19 06:36:40 NN systemd-journald[266]: Runtime journal (/run/log/journal/) is 8.0M, max 78.9M, 70.9M free.
March 19 06:36:40 NN systemd-journald[266]: Missed 371635 kernel messages
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, 
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120
March 19 06:36:40 NN kernel: ->action():           (null)
March 19 06:36:40 NN kernel:    IRQ_NOPROBE set
March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0
March 19 06:36:40 NN kernel: ->handle_irq():  ffffffffb9ee8f70, 
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, 
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120
March 19 06:36:40 NN kernel: ->action():           (null)
March 19 06:36:40 NN kernel:    IRQ_NOPROBE set
March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0
March 19 06:36:40 NN kernel: ->handle_irq():  ffffffffb9ee8f70, 
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, 
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120
March 19 06:36:40 NN kernel: ->action():           (null)
March 19 06:36:40 NN kernel:    IRQ_NOPROBE set
March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0
March 19 06:36:40 NN kernel: ->handle_irq():  ffffffffb9ee8f70, 
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, 
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120
Ponto de fusão
fonte
1
Aqui estão instruções detalhadas sobre como verificar o microcódigo nos sistemas debian - lists.debian.org/debian-devel/2017/06/msg00308.html . Poste a saída desses comandos. Comece identificando seu processador grep name /proc/cpuinfo | sort -ue observe "Alguns dos processadores nessas duas listas não são afetados porque não possuem suporte a hyperthreading. Execute o comando abaixo em um shell de linha de comando (por exemplo, xterm) e ele exibirá uma mensagem se houver hiper -threading é suportado / ativado: " grep -q '^flags.*[[:space:]]ht[[:space:]]' /proc/cpuinfo && echo "Hyper-threading is supported"
Panther
Eu editei a pergunta.
MeltingPoint 18/0318
Você pode executar sudo update-initramfs -u && sudo reboote verificar novamente após a reinicialização.
Pantera
1
Talvez não exista um microcódigo para sua CPU no pacote do Ubuntu. execute isto para ver/usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/*
doug
1
No "final de 2017", você possivelmente tinha um microcódigo para sua CPU com base em tentativas de correções de espectro / colapso. Esse código foi removido /, ou seja, o pacote foi revertido para o anterior, o que não é necessário para o seu processador.
doug

Respostas:

4

Com base nos resultados de /usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/*nenhum microcódigo está sendo carregado para a sua CPU, porque no momento não há nenhum. Isso não significa que não haverá no futuro. Você pode deixar com segurança o intel-microcode e o iucode-tool instalados, se houver uma atualização que contenha microcódigo para a assinatura da sua CPU, ela será usada.

doug
fonte
2

Bug no Microcódigo Intel de fusão / espectro

Houve um erro no início de 2018, a atualização do Microcode da Intel para solucionar as falhas de segurança do Meltdown / Spectre. Como tal, o microcódigo teve que ser revertido para uma versão anterior.

Aqui está o microcódigo que estou usando (tendo desativado todas as atualizações a partir de janeiro de 2018):

$ apt list --installed | grep intel-microcode

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

intel-microcode/now 3.20170707.1~ubuntu16.04.0 amd64 [installed,upgradable to: 3.20180108.0+really20170707ubuntu16.04.1]

Ao instalar o Intel Microcode Update, você obtém esta versão ou algo semelhante:

intel-microcode/3.20180108.0+really20170707ubuntu16.04.1

Menu Ubuntu 16.04 LTS

Não tenho certeza sobre a estrutura de menus do Lubuntu, mas, para o Ubuntu normal, é assim que você acessa os controles da atualização de microcódigo da Intel:

Drivers.png adicionais

A opção inferior controla as atualizações de microcódigo da Intel.

Instale o Microcode Intel a partir da CLI

Para ignorar completamente os menus da GUI, você pode instalar a partir da linha de comando:

sudo apt update
sudo apt install intel-microcode

dmesg agora mostra a saída correta

Depois de seguir as etapas de instalação, dmesgretorna a saída desejada (diferente da sua pergunta, onde ela não mostra nada):

$ dmesg | grep -i microcode
[    1.166542] microcode: sig=0x506e3, pf=0x20, revision=0xba
[    1.166993] microcode: Microcode Update Driver: v2.2.
[16082.584598] microcode: microcode updated early to revision 0xba, date = 2017-04-09
WinEunuuchs2Unix
fonte
Na pergunta, o OP declara claramente "Eu tenho o intel-microcode e o iucode-tool instalados e atualizados", por isso não tenho muita certeza de como isso ajuda.
Pantera
@ Panther Eu senti falta de adicionar minha dmesgsaída que tinha originalmente quando comecei a escrever a resposta. Vou acrescentar isso. Basicamente, depois de seguir as etapas de instalação, a dmesgsaída aparece como deveria.
WinEunuuchs2Unix 18/03/19
O OP também afirma claramente "executando o microcódigo dmesg | grep -i e o microcódigo grep -i / var / log / syslog * não retornam nada". Eu suspeito que precisamos para executarsudo update-initramfs -u && sudo reboot
Panther
@ Panther Pareceu-me que o microcódigo não estava instalado corretamente. Bom ponto de reinicialização. O OP não menciona nada sobre isso. Vou monitorar a resposta futura do OP ao seu comentário na pergunta dele. Não tenho certeza sobre update-initramfs -user necessário, pois não está listado aqui: askubuntu.com/questions/545925/… . No entanto, nunca dói.
WinEunuuchs2Unix 18/03/19
O microcódigo normalmente faz parte do initramfs e é carregado durante a inicialização. Portanto, embora não seja esperado, sugiro reconstruir o initramfs como uma possível correção para a situação incomum do OP. Ajudaria se soubéssemos qual microcódigo foi instalado.
Panther
2

O Ubuntu lançou a atualização fixa do kernal contra essa exploração. O novo kernal exigiu alterações.

Referência: SecurityTeam / KnowledgeBase / SpectreAndMeltdown | Ubuntu Wiki

Estou no Ubuntu 16.04, usando o driver de vídeo Nouveau. No meu caso, o microcódigo Intel foi desinstalado após a instalação do novo kernel.

Esta atualização é lançada logo após a Intel ter lançado a correção de bugs devido à vulnerabilidade de segurança de bugs espectros.

Isso deve resolver seu problema.

Se você substituiu o driver da propriedade intel como no meu lugar e ainda deseja o driver da propriedade intel-microcode.

Intel lança microcódigos de CPU Linux para corrigir erros de fusão e espectro | bleepingcomputer.com

Atualmente, os novos drivers não estão incluídos no Ubuntu ppa. Os usuários podem ter que fazer o download manualmente no site da Intel.

Aviso: Isso pode causar conflito ou instabilidade de driver no seu Ubuntu. Você precisa instalá-lo por sua conta e risco.

Baixe o arquivo de dados de microcódigo do processador Linux | downloadcenter.intel.com

Para mim, não tenho nenhum problema no meu laptop ubuntu. Então, eu não quero correr riscos. Saí da equipe do Ubuntu para decidir o que é melhor para o meu sistema. Estou aguardando atualização da equipe de drivers do Ubuntu.

Aravind
fonte
Não entendo como isso responde à minha pergunta. Você pode explicar? Eu intel-microcodeinstalei.
MeltingPoint 18/03/19
Simples, insights.ubuntu.com/2018/01/04/…
Aravind 18/18
Atualize seu kernal, o Ubuntu o corrigiu de outra maneira.
Aravind
Se o intel-microcode foi desinstalado, você tem 2 opções. opção 1) fique seguro e aguarde até a equipe do ubuntu lançar a atualização como eu. Ou 2) você pode executar sua própria experiência fazendo o download manualmente por sua conta e risco.
Aravind