Почему мой системный журнал сообщает, что мой BIOS сломан?

Почему мой системный журнал сообщает, что мой BIOS сломан?

Я нашел это в своем файле syslog, что я могу сделать, чтобы исправить это? Или это вообще стоит исправить?

Кажется, все работает правильно. Запуск 3.12.9-031209-generic.

WARNING: CPU: 0 PID: 0 at /home/apw/COD/linux/drivers/iommu/dmar.c:488 warn_invalid_dmar+0x8f/0xa0()
Your BIOS is broken; DMAR reported at address 0!
BIOS vendor: American Megatrends Inc.; Ver: F5; Product Version: To be filled by O.E.M.
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.9-031209-generic #201401251255
Hardware name: Gigabyte Technology Co., Ltd. Z87MX-D3H/Z87MX-D3H-CF, BIOS F5 08/02/2013
00000000000001e8 ffffffff81c01d98 ffffffff817433c6 00000000000017e0
ffffffff81c01de8 ffffffff81c01dd8 ffffffff810678ac ffffffff81c01e28
ffffffff81fd201c ffffffff81fd2058 ffffffff81dda2e0 ffff88022f5aad00
Call Trace:
[<ffffffff817433c6>] dump_stack+0x46/0x58
[<ffffffff810678ac>] warn_slowpath_common+0x8c/0xc0
[<ffffffff8106793f>] warn_slowpath_fmt_taint+0x3f/0x50
[<ffffffff8172dfbb>] ? acpi_os_map_memory+0x27/0x150
[<ffffffff816124af>] warn_invalid_dmar+0x8f/0xa0
[<ffffffff81d84944>] check_zero_address+0x57/0xf7
[<ffffffff81d849fb>] detect_intel_iommu+0x17/0xb8
[<ffffffff81d3a0db>] pci_iommu_alloc+0x44/0x6e
[<ffffffff81d49a5c>] mem_init+0x11/0xa2
[<ffffffff81d2fcfa>] start_kernel+0x1de/0x41e
[<ffffffff81d2f9ae>] ? do_early_param+0x87/0x87
[<ffffffff81d2f120>] ? early_idt_handlers+0x120/0x120
[<ffffffff81d2f5e8>] x86_64_start_reservations+0x2a/0x2c
[<ffffffff81d2f6f2>] x86_64_start_kernel+0x108/0x117
---[ end trace 11d0aeb7d970f0a3 ]---

решение1

Лучший источник, который я нашел, который объясняет это, — это Redhat. Это касается не только Ubuntu, но и ядра (которое у нас всех общее) и вашего оборудования, возвращающего ядру неверную информацию.

Замените Redhat на Ubuntu в тексте, скопированном по ссылке, и обратите внимание на 3 пункта (возможно, вы сможете использовать их, чтобы обойти это):


Системы не загружаются, USB не функционирует, сетевой адаптер не работает (или возможны другие симптомы) из-за несовершенной обработки BIOS с неисправной обработкой IOMMU

Некоторые производители поставляют системы с BIOS, которые неправильно обрабатывают оборудование IOMMU. BIOS должен сообщать операционной системе, где в памяти найти оборудование IOMMU, но некоторые BIOS делают это неправильно, предоставляя мусорное местоположение или местоположение, которое является допустимым, но на самом деле не является тем, где находится устройство. Ядро пытается обрабатывать эти случаи, но некоторые из них все еще не были полностью обработаны в ядре выпуска Fedora 12. Если у вас есть система, затронутая этой проблемой, наиболее распространенным симптомом является то, что подсистема USB не будет работать (никакие периферийные устройства USB не будут работать), но другие симптомы включают в себя системы, которые полностью не загружаются, и неработающие сетевые адаптеры.

В настоящее время известно, что некоторые системы потенциально подвержены этой проблеме. Для всех них, за исключением рабочей станции HP xw4600 и Dell Precision M6400, все следующие условия должны быть верны, прежде чем вы столкнетесь с ошибкой:

  • Вы должны использовать 32-разрядную версию Fedora 12.
  • У вас не должно быть памяти за пределами адресной области 4 ГБ (на практике это означает, что у вас должно быть около 2,5 ГБ физической оперативной памяти или меньше)
  • Функции виртуализации (VT-d) должны быть отключены в BIOS

Если что-либо из вышеперечисленного не так, вы не должны столкнуться с этой проблемой. Если вы думаете, что можете страдать от этой проблемы, найдите сообщение в журнале ядра, включающее что-то похожее на:

Your BIOS is broken; DMAR reported at address fed10000 returns all ones!

или:

Your BIOS is broken; DMAR reported at address zero!

Обратите внимание, что если вы используете систему с таким сломанным BIOS, сообщение ядра будет появляться всегда, даже если ядро ​​на самом деле обрабатывает ваш случай правильно, или вы успешно обошли проблему. Так что не беспокойтесь, если вы все еще видите сообщение после того, как вы обошли проблему.

Есть несколько способов обойти эту проблему. В большинстве случаев (см. выше) достаточно будет установить 64-разрядную версию Fedora 12. Если в вашем BIOS есть такая возможность, включение функций виртуализации в BIOS также должно решить эту проблему. Наконец, вы можете обойти эту проблему, добавив параметр ядра iommu=soft в конфигурацию загрузки.

Для решения этой проблемы был выпущен обновленный пакет ядра. Обновите свою систему как обычно, чтобы получить это обновление, если у вас его еще нет. Очевидно, что если вас коснулась эта проблема, вам нужно будет использовать один из вышеперечисленных обходных путей, чтобы сначала привести свою систему в состояние, из которого вы сможете установить исправленное ядро.

Связанный контент