web-dev-qa-db-fra.com

IOapic [0] pas dans la table IVRS

J'ai une installation fraîche Ubuntu à partir de USB. Quand je démarre le PC, il me prend droit sur GNU Grub, lorsque je sélectionne Ubuntu, je reçois les messages suivants.

[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

Je peux vous rendre au bureau Ubuntu via "Options avancées pour Ubuntu"> "Ubuntu, avec Linux 4.2.0-30-Generic (Mode de récupération)"> "CV", mais la CPU fonctionne à près de 100% et n'est pas suintable.

Spécifications PC:

  • AMD A6-6400K

  • MSI A68HI MINI ITX F M2 + Board mère

11
Maria Warnes

La raison pour laquelle la CPU est tout le temps à 100%, je pense que c'est différent du message que vous voyez.

À propos du message d'erreur

Maintenant à propos de AMD-Vi: IOAPIC[0] not in IVRS table et AMD-Vi: No southbridge IOAPIC found in IVRS tableles erreurs. Ces messages signifient que votre configuration CMOS/BIOS est configurée pour activer IOMMU , mais le BIOS manque de table IVRS décrivant quelle est l'adresse du contrôleur IOMU et SMBUS. IVRS = I/O Structure de déclaration de virtualisation. Voir aussi: http://support.amd.com/techdocs/488882_iommu.pdf

Qu'est-ce que iommu?

IOMMU est une unité matérielle qui fait aujourd'hui partie de la CPU. Il permet de cartographier les adresses virtuelles visibles du dispositif aux adresses physiques.

Pourquoi iommu?

  1. Iommu permet d'avoir une meilleure sécurité et de protéger votre ordinateur de certaines attaques de quelqu'un ayant accès à des bus comme PCIe et FireWire.
  2. vous pouvez exposer un périphérique PCIE physique à A VM (PCI passthrough).
  3. il est nécessaire pour SR-IOV (VNF)

Fixation "AMD-VI: iOapic [0] non dans la table IVRS"

  1. Mettre à jour le firmware de la carte mère

Le correctif approprié devrait provoquer du fabricant de matériel de la carte mère. Donc, si vous avez une mise à jour BIOS/Firmware pour votre carte mère, installez-la comme cela pourrait résoudre le problème. Malheureusement pour ma carte mère (Asus Crosshair V de formule), les IVRS sont cassés même dans la dernière mise à jour du BIOS/Firmware (version 1703, date de sortie: 10/17/2012).

  1. Workarron de Linux

Si le fabricant du MB ne propose pas de solution, vous pouvez résoudre ce problème sous Linux en spécifiant dans les paramètres de démarrage du noyau où ces périphériques sont localisés à l'aide de ivrs_ioapic option.

Voici les étapes pour le faire. Pour plus de détails, voir: https://ubuntuforums.org/showthread.php?t=2254677

Démarrez votre noyau en ajoutant AMD_iommu_dump=1 aux options du noyau. Vous pouvez le faire via GRUB MENU pendant le démarrage.

Dans le journal du noyau, vous verrez des lignes comme:

$ 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
$ 

Notez les index de IOAPIC. Dans ce cas, ce sont 5 et 6. Notez le dévid, où 00:14.0 est ok et 00:00.1 est incorrect.

Recherchez l'adresse de bus de ces périphériques et d'écrire les adresses (00:00.2 et 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)
$ 

Maintenant, ajoutez des paramètres de noyau: ivrs_ioapic[5]=00:14.0 ivrs_ioapic[6]=00:00.2 Où index 5 et 6 ont été trouvés dans la sortie DMESG et les valeurs proviennent de la sortie LSPCI. Vous pouvez rendre cela permanent en édition /etc/default/grub Fichier, puis en cours d'exécution grub2-mkconfig -o /boot/grub2/grub.cfg.

  1. Désactiver Iommu dans la configuration UEFI/BIOS

La désactivation de l'iommu a un faible avantage de performance. Mais il n'est pas souhaitable de le désactiver pour la sécurité et la stabilité du système. IOMMU est requis pour certaines configurations de virtualisation (PCI Pass-Throug-through, SR-IOV) et la désactivation de ce n'est pas une option.

12
Mircea Vutcovici

J'ai mis à jour le firmware de ma carte mère et cela a semblé l'avoir réparé.

3
Maria Warnes