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
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 table
les 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?
Fixation "AMD-VI: iOapic [0] non dans la table IVRS"
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).
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
.
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.
J'ai mis à jour le firmware de ma carte mère et cela a semblé l'avoir réparé.