Вопрос или проблема
Я нашел это в журналах ядра:
platform eisa.0: EISA: Cannot allocate resource for mainboard
Cannot allocate resource for EISA slot 1
Cannot allocate resource for EISA slot 2
Cannot allocate resource for EISA slot 3
Cannot allocate resource for EISA slot 4
Cannot allocate resource for EISA slot 5
Cannot allocate resource for EISA slot 6
Cannot allocate resource for EISA slot 7
Cannot allocate resource for EISA slot 8
Что это значит и как это исправить?
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 21.04
Release: 21.04
Codename: hirsute
Существует открытая ошибка об этом по адресу https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1837326
Ubuntu жестко прописывает все параметры конфигурации ядра EISA в значение y
:
$ grep -i eisa /boot/config-*
CONFIG_HAVE_EISA=y
CONFIG_EISA=y
CONFIG_EISA_VLB_PRIMING=y
CONFIG_EISA_PCI_EISA=y
CONFIG_EISA_VIRTUAL_ROOT=y
CONFIG_EISA_NAMES=y
Они должны быть либо m
(модули), либо n
(исключите их полностью, потому что EISA была заменена на PCI в 1993 году.)
Согласно комментариям в отчете об ошибке, вы можете (или не можете) добиться успеха, добавив eisa_bus.disable_dev=1,2,3,4,5,6,7,8
в командную строку ядра, например, обновив GRUB_CMDLINE_LINUX_DEFAULT
в /etc/default/grub
, а затем сгенерировав конфигурацию grub командой, например:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Если это не сработает, единственным другим вариантом будет компиляция персонализированного ядра.
Ответ или решение
Ошибка "EISA: Cannot allocate resource for mainboard" в ваших системных журналах может вызывать обеспокоенность, особенно если вы не уверены в её значении и не знаете, как это исправить. Для начала, давайте разберемся, что такое EISA и почему это может вызывать такие предупреждения.
Теория (Theory):
EISA (Extended Industry Standard Architecture) — это шина компьютера, которая была разработана в конце 1980-х годов в качестве расширения для ISA (Industry Standard Architecture). EISA позволяла более эффективное подключение и использование нескольких периферийных устройств, обеспечивала лучшую пропускную способность и служила конкурентом более поздним стандартам, таким как PCI (Peripheral Component Interconnect). Однако, с выходом PCI в 1993 году, EISA постепенно вышла из использования, так как PCI предлагала более высокую скорость и производительность.
Когда ваша система сообщает о невозможности выделения ресурсов для EISA, это указывает на то, что ядро операционной системы по-прежнему пытается инициализировать поддержку для EISA, несмотря на то, что в вашем оборудовании такие устройства, скорее всего, отсутствуют. Это может происходить из-за устаревших конфигураций ядра, заданных дистрибутивом вашей операционной системы. В вашем случае, Ubuntu 21.04, вероятно, по умолчанию включает поддержку EISA на уровне ядра.
Пример (Example):
Ваши системные журналы показывают ошибки, так как система продолжает пытаться выделить ресурсы для несуществующих EISA-слотов (от 1 до 8). Это можно объяснить тем, что конфигурация вашего ядра установлена таким образом, что поддержка EISA не отключена. Ваша версия Ubuntu, судя по предоставленной информации, настроила все опции конфигурации EISA в ядре на "y", что означает, что они всегда активны.
Применение (Application):
Существует несколько подходов к решению этой проблемы, и их выбор зависит от ваших требований и уровня комфорта работы с системными настройками:
-
Изменение параметров загрузки ядра:
Один из способов устранить эти ошибки — временно отключить обнаружение EISA-устройств, если они вам не нужны. Это можно сделать, добавив
eisa_bus.disable_dev=1,2,3,4,5,6,7,8
в командную строку загрузки ядра. Для этого выполните следующие шаги:-
Откройте файл
/etc/default/grub
с правами администратора. -
Найдите параметр
GRUB_CMDLINE_LINUX_DEFAULT
и добавьтеeisa_bus.disable_dev=1,2,3,4,5,6,7,8
к существующим параметрам. -
Сохраните изменения и выполните команду, чтобы обновить конфигурацию GRUB:
sudo grub-mkconfig -o /boot/grub/grub.cfg
-
Перезагрузите систему.
-
-
Компиляция пользовательского ядра:
Если изменения в параметрах загрузки не решают проблему или возникают ошибки, можно скомпилировать ядро с отключенной поддержкой EISA. Это более сложный процесс и требует понимания сборки ядра. Краткая инструкция по компиляции ядра:
- Получите исходный код ядра, которое вы используете.
- Настройте конфигурацию с помощью
make menuconfig
или аналогичного инструмента, сняв флажки с параметров EISA (CONFIG_EISA
и связанных с ним). - Скомпилируйте и установите новое ядро.
Этот процесс требует больше времени и усилий, но может быть полезным, если вы хотите настраивать ядро под свои конкретные нужды.
-
Ожидание решения со стороны разработчиков:
Так как проблема известна и зарегистрирована в базе ошибок Ubuntu, можно следить за ходом её решения разработчиками. В будущем может быть выпущено обновление, которое устранит эту проблему более простым способом, обновив конфигурацию ядра без необходимости сторонних корректировок.
Надеюсь, эти рекомендации помогут вам разобраться с проблемой и выбрать оптимальное решение. Поддержание системы в рабочем состоянии и оптимизация конфигурации — ключ к стабильной и безопасной работе вашей IT-инфраструктуры.