7

У меня свежая установка Ubuntu с USB. Когда я загружаю ПК, я перехожу прямо в GNU Grub, когда я выбираю Ubuntu, я получаю следующие сообщения.

[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

Я могу получить доступ к рабочему столу Ubuntu через "Дополнительные параметры для Ubuntu"> «Ubuntu, с Linux 4.2.0-30-generic (режим восстановления)»> "resume", но процессор работает почти на 100% и не может работать.

Спецификации ПК:

  • AMD A6-6400K

  • Материнская плата MSI A68HI Mini ITX F M2+

2 ответа2

8

Причина, по которой процессор все время используется на 100%, я думаю, что он отличается от сообщения, которое вы видите.

О сообщении об ошибке

Теперь о AMD-Vi: IOAPIC[0] not in IVRS table и AMD-Vi: No southbridge IOAPIC found in IVRS table . Эти сообщения означают, что в вашей настройке CMOS/BIOS настроено включение IOMMU, но в BIOS отсутствует таблица IVRS, в которой описывается адрес IOMMU и контроллера SMBus. IVRS = структура отчетности виртуализации ввода / вывода. Смотрите также: http://support.amd.com/TechDocs/48882_IOMMU.pdf

Что такое IOMMU?

IOMMU - это аппаратная единица, которая сегодня является частью CPU. Это позволяет сопоставить видимые с устройства виртуальные адреса с физическими адресами.

Почему ИОММУ?

  1. IOMMU позволяет повысить безопасность и защитить компьютер от некоторых атак со стороны кого-либо, имеющего доступ к некоторым шинам, таким как PCIe и FireWire.
  2. Вы можете открыть физическое устройство PCIe для виртуальной машины.
  3. требуется для SR-IOV (VNF)

Исправление «AMD-Vi: IOAPIC [0] не в таблице IVRS»

  1. Обновление прошивки материнской платы

Правильное исправление должно исходить от производителя оборудования материнской платы. Поэтому, если у вас есть обновление BIOS/ прошивки для вашей материнской платы, установите его, так как это может решить проблему. К сожалению, для моей материнской платы (Asus Crosshair V Formula) IVRS не работает даже в последнем обновлении BIOS/ прошивки (версия 1703, дата выпуска: 17.10.2012).

  1. Linux обходной путь

Если производитель MB не предлагает исправления, вы можете исправить это в Linux, указав в параметрах запуска ядра расположение этих устройств с помощью параметра ivrs_ioapic .

Вот шаги, чтобы сделать это. Для получения дополнительной информации см .: https://ubuntuforums.org/showthread.php?t=2254677.

Загрузите ваше ядро, добавив amd_iommu_dump=1 к опциям ядра. Вы можете сделать это через меню grub во время загрузки.

В журнале ядра вы увидите несколько строк:

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

Запишите индексы из IOAPIC . В этом случае это 5 и 6 . Обратите внимание на devid, где 00:14.0 в порядке, а 00:00.1 - неверно.

Найдите адрес шины для этих устройств и запишите адреса (00:00.2 и 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)
$ 

Теперь добавьте в качестве параметров ядра: ivrs_ioapic[5]=00:14.0 ivrs_ioapic[6]=00:00.2 где индексы 5 и 6 были найдены в выводе dmesg, а значения получены из вывода lspci. Это можно сделать постоянным, отредактировав файл /etc/default/grub и запустив grub2-mkconfig -o /boot/grub2/grub.cfg .

  1. Отключить IOMMU в конфигурации UEFI/BIOS

Отключение IOMMU имеет небольшое преимущество в производительности. Но нежелательно отключать его для безопасности и стабильности системы. IOMMU требуется для определенных настроек виртуализации (сквозной канал PCI, SR-IOV), и отключение этого параметра невозможно.

3

Я обновил прошивку моей материнской платы, и это, кажется, исправило это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .