IOAPIC [0] não na tabela IVRS

4

Eu tenho uma nova instalação do Ubuntu via USB. Quando eu inicializo o PC, ele me leva direto para o GNU Grub, quando eu seleciono o Ubuntu eu recebo as seguintes mensagens.

[Firmware Bug]: AMD-Vi: IOAPIC[0] not in IVRS table
[Firmware Bug]: AMD-Vi: No southbridge IOAPIC found in IVRS table
AMD-Vi: Disabling interrupt remapping

Eu posso acessar a área de trabalho do Ubuntu via "Opções avançadas para o Ubuntu" > "Ubuntu, com o Linux 4.2.0-30 genérico (modo de recuperação)" > "resume", mas a CPU é executada em quase 100% e não é sustentável.

Especificações do PC:

  • AMD A6-6400K

  • Placa mãe MSI A68HI Mini ITX F M2 +

por Maria Warnes 12.03.2016 / 19:17

2 respostas

5

A razão pela qual a CPU está o tempo todo 100% usada, eu acho que é diferente da mensagem que você está vendo.

Sobre a mensagem de erro

Agora, sobre os erros AMD-Vi: IOAPIC[0] not in IVRS table e AMD-Vi: No southbridge IOAPIC found in IVRS table . Essas mensagens significam que sua configuração de CMOS / BIOS está configurada para ativar a IOMMU , mas o BIOS não tem a tabela IVRS que está descrevendo qual é o endereço do IOMMU e do SMBus Controller. IVRS = Estrutura de Relatório de Virtualização de E / S. Veja também: link

O que é o IOMMU?

O IOMMU é uma unidade de hardware que hoje faz parte da CPU. Permite mapear endereços virtuais visíveis ao dispositivo para endereços físicos.

Por que o IOMMU?

  1. O IOMMU permite ter uma melhor segurança e proteger seu computador de alguns ataques de alguém que tenha acesso a alguns ônibus como o PCIe e o firewire.
  2. você pode expor um dispositivo PCIe físico a uma VM.
  3. é necessário para SR-IOV (VNF)

Corrigindo "AMD-Vi: IOAPIC [0] não na tabela IVRS"

  1. Atualizar o firmware da placa-mãe

A correção apropriada deve vir do fabricante do hardware da placa-mãe. Portanto, se você tiver uma atualização de BIOS / firmware para sua placa-mãe, instale-a, pois isso pode resolver o problema. Infelizmente para minha placa-mãe (Fórmula Asus Crosshair V), o IVRS está quebrado mesmo na atualização mais recente do BIOS / firmware (versão 1703, Data de Lançamento: 17/10/2012).

  1. Linux workarround

Se o fabricante do MB não estiver oferecendo uma correção, você pode corrigir isso no Linux especificando nos parâmetros de inicialização do kernel onde esses dispositivos estão localizados usando a opção ivrs_ioapic .

Aqui estão os passos para o fazer. Para mais detalhes, consulte: link

Inicialize seu kernel adicionando amd_iommu_dump=1 às opções do kernel. Você pode fazer isso através do menu do grub durante a inicialização.

No log do kernel, você verá algumas linhas como:

$ dmesg |grep 'DEV_SPECIAL(IOAPIC\|not in IVRS table'
[    0.133756] AMD-Vi:   DEV_SPECIAL(IOAPIC[0])     devid: 00:14.0
[    0.133995] AMD-Vi:   DEV_SPECIAL(IOAPIC[255])       devid: 00:00.1
[    0.134116] [Firmware Bug]: AMD-Vi: IOAPIC[5] not in IVRS table
[    0.134235] [Firmware Bug]: AMD-Vi: IOAPIC[6] not in IVRS table
$ 

Anote os índices de IOAPIC . Nesse caso, esses são 5 e 6 . Observe o devid, em que 00:14.0 está ok e 00:00.1 está incorreto.

Pesquise o endereço do barramento desses dispositivos e anote os endereços ( 00:00.2 e 00:14.0 )

$ lspci -nn | egrep "SMBus | IOMMU"
00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD/ATI] RD890S/RD990 I/O Memory Management Unit (IOMMU) [1002:5a23]
00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller [1002:4385] (rev 42)
$ 

Agora adicione como parâmetros do kernel: ivrs_ioapic[5]=00:14.0 ivrs_ioapic[6]=00:00.2 , onde o índice 5 e 6 foram encontrados na saída do dmesg e os valores são da saída lspci. Você pode tornar isso permanente editando /etc/default/grub file e executando grub2-mkconfig -o /boot/grub2/grub.cfg .

  1. Desativar o IOMMU na configuração UEFI / BIOS

Desativar o IOMMU tem um pequeno benefício de desempenho. Mas é indesejável para segurança e estabilidade do sistema. O IOMMU é necessário para determinadas configurações de virtualização (passagem PCI, SR-IOV) e desativá-lo não é uma opção.

    
por 01.10.2017 / 05:11
2

Eu atualizei o firmware da minha placa-mãe e isso parece ter corrigido isso.

    
por 04.04.2016 / 16:32