Полностью отключить любые сообщения при загрузке Linux

Вопрос или проблема

Я хочу полностью отключить вывод любых сообщений на экран при загрузке системы. nomodeset, quiet – не работают должным образом для меня. Сообщения об ошибках все равно появляются.
В идеале, я хочу видеть сообщение на мониторе – “нет сигнала”.

Лучшего, чего я смог достичь, это установив console=ttyS0, но я не собираюсь использовать последовательный порт.

Я пытался отключить фреймбуфер, но это тоже не работает.

loglevel=0 должен отключить все, кроме паники ядра 🙂

Чтобы выключить монитор, добавьте setterm в ваш initrd и запустите его при загрузке. Это зависит от дистрибутива и выходит за рамки данного вопроса.

Ответ или решение

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

Теоретическая часть

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

  1. Логгирование в ядре: В ядре Linux используется система уровней логгирования, от критических ошибок до детализированных отладочных сообщений. Параметр loglevel=0 – это один из ключевых методов сокращения вывода сообщений. Однако он действительно не отключает сообщений о критических ошибках.

  2. Консольный вывод: Даже при перенаправлении консоли на неиспользуемый интерфейс, как, например, console=ttyS0, могут возникнуть ситуации, когда аппаратные сообщения могут быть выведены напрямую, минуя стандартные каналы.

  3. Управление видео: VGA и другие видеоинтерфейсы могут транслировать низкоуровневые сообщения, поэтому необходимо отключение или перенаправление таких выводов.

Пример решения

Чтобы добиться желаемого эффекта, можно рассмотреть более комплексный подход:

  1. Изменение параметров загрузчика:

    • Используйте комбинацию параметров загрузки ядра:
      quiet loglevel=0 console=tty3

      Это снизит уровень сообщений и перенаправит основную консоль на неиспользуемую консольную TTY-линию.

  2. Отключение родной консоли и вывода сообщений:

    • Включите дополнительные параметры, такие как nmi_watchdog=0 и mem_encrypt=off, чтобы минимизировать остальные типы вывода, которые могут обойти ваши настройки.
  3. Создание специального initrd-скрипта:

    • Добавление команды setterm -blank force в RAM-диск и настройка его для исполнения при старте позволит принудительно отключить экран. Вы можете сконфигурировать скрипт, который будет автоматически запускать эту команду при старте.

    Пример скрипта можно представить как:

    #!/bin/sh
    /usr/bin/setterm -term linux -blank 1 -powersave on -powerdown 1
  4. Физическое отключение монитора:

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

Применение

Для реализации вышеописанных методов, проверьте конфигурационные файлы вашего загрузчика, такого как GRUB, и внесите соответствующие изменения:

  • Откройте конфигурационный файл GRUB:

    sudo nano /etc/default/grub
  • Добавьте или измените параметры так:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=0 console=tty3"
  • Обновите конфигурацию GRUB:

    sudo update-grub

Вторым шагом добавьте ваш скрипт blank.sh в initrd. Вам потребуется изменить файл конфигурации для вашего инструмента RAM-диска, такого как initramfs:

  • Перейдите в директорию initramfs, добавьте скрипт, и обновите образ:
    sudo cp blank.sh /etc/initramfs-tools/scripts/init-bottom/
    sudo update-initramfs -u

После выполнения этих действий, перезагрузите систему и проверьте, чтобы на экране не появлялось никакой активности. Если вы все сделали правильно, ваша система не будет показывать ничего вплоть до завершения загрузки и активации X-сервера (если вы его используете).

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

Оцените материал
Добавить комментарий

Капча загружается...