Plymouth (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Plymouth. Дата последней синхронизации: 12 апреля 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Plymouth — это проект Fedora и один из официальных проектов freedesktop.org, реализующий графический экран загрузки системы без бегущих надписей (логов) на экране. Он использует kernel mode setting (KMS, установка разрешения и глубины цвета на уровне ядра) для обеспечения родного разрешения экрана на раннем этапе загрузки, после чего отображает красивый экран загрузки вплоть до появления менеджера входа.

Подготовка

Plymouth главным образом использует KMS (Kernel Mode Setting) для отображения графики. На EFI/UEFI системах plymouth может использовать EFI framebuffer.

Если вы не можете использовать KMS, например, из-за использования проприетарного драйвера или не хотите использовать EFI framebuffer, обратите внимание на Uvesafb, поскольку он поддерживает широкоформатные разрешения. Если у вас не настроены ни KMS ни framebuffer, то Plymouth вернётся в текстовый режим.

Установка

Установите пакет plymouth. Разрабатываемая версия доступна в пакете plymouth-gitAUR.

По умолчанию Plymouth записывает сообщения загрузки в /var/log/boot.log и не показывает графический экран загрузки.

  • Для отображения графического экрана загрузки добавьте splash в параметры ядра.
  • Для обеспечения тихой загрузки также добавьте quiet.
  • Для отключения записи лога добавьте plymouth.nolog.

Для раннего запуска Plymouth нужно добавить его в initramfs.

mkinitcpio

Добавьте plymouth в массив HOOKS в mkinitcpio.conf.

/etc/mkinitcpio.conf
HOOKS=(... plymouth ...)

dracut

После установки Plymouth dracut автоматически обнаружит его и добавит в ваши образы initramfs. Если автоопределение не сработало, вы можете заставить dracut добавить Plymouth с помощью следующей строки в конфигурации dracut:

/etc/dracut.conf.d/myflags.conf
add_dracutmodules+=" plymouth "

Настройка

Plymouth настраивается через файл /etc/plymouth/plymouthd.conf. Значения по умолчанию описаны в файле /usr/share/plymouth/plymouthd.defaults.

Выбор темы

Plymouth поставляется со следующими темами:

  1. BGRT: Вариант Spinner, который использует OEM-логотип, если он доступен (BGRT означает Boot Graphics Resource Table)
  2. Fade-in: "Простая тема с затухающими и разгорающимися мерцающими звездами"
  3. Glow: "Производственная тема, показывающая процесс загрузки в виде круговой диаграммы"
  4. Script: "Пример скрипта" (Несмотря на описание, выглядит очень симпатичной темой с логотипом Arch)
  5. Solar: "Космическая тема, голубая звезда с протуберанцами"
  6. Spinner: "Простая тема с вращающимся индикатором загрузки"
  7. Spinfinity: "Простая тема, показывающая вращающийся знак бесконечности в центре экрана"
  8. Tribar: "Текстовый режим с трёхцветной полосой прогресса"
  9. (Text: "Текстовый режим с трёхцветной полосой прогресса")
  10. (Details: "Резервная тема с подробностями загрузки")

По умолчанию используется тема bgrt. Чтобы выбрать другую, пропишите её в настройках, например:

/etc/plymouth/plymouthd.conf
[Daemon]
Theme=fade-in

или выберите тему с помощью команды:

# plymouth-set-default-theme -R тема

При каждой смене темы необходимо пересобирать initrd. Это произойдёт автоматически при выборе темы командой plymouth-set-default-theme с опцией -R (в противном случае пересоберите образ initramfs самостоятельно).

Установка новых тем

Дополнительные темы доступны в AUR. [1] Также plymouth-kcm добавляет интеграцию с настройками KDE Plasma и предлагает темы, отсутствующие в AUR.

Список установленных тем можно получить командой:

$ plymouth-set-default-theme -l

или:

$ ls /usr/share/plymouth/themes
bgrt  details  fade-in  glow  script  solar  spinfinity  spinner  text  tribar

Задержка отображения

Plymouth позволяет добавить задержку перед отображением графического экрана загрузки:

/etc/plymouth/plymouthd.conf
[Daemon]
ShowDelay=5

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

HiDPI

Пропишите коэффициент масштабирования (целое число) в настройках:

/etc/plymouth/plymouthd.conf
DeviceScale=коэффициент-масштабирования

и пересоберите initrd.

Советы и рекомендации

Отображение сообщений ядра

Чтобы включить отображение сообщений ядра во время загрузки, нажмите Esc.

Плавный переход к экранному менеджеру

GDM поддерживает плавный переход из коробки.

Для других экранных менеджеров можно создать drop-in файл для юнита display-manager.service:

/etc/systemd/system/display-manager.service.d/plymouth.conf
[Unit]
Conflicts=plymouth-quit.service
After=plymouth-quit.service rc-local.service plymouth-start.service systemd-user-sessions.service
OnFailure=plymouth-quit.service

[Service]
ExecStartPre=-/usr/bin/plymouth deactivate
ExecStartPost=-/usr/bin/sleep 30
ExecStartPost=-/usr/bin/plymouth quit --retain-splash

Предпросмотр тем

Для просмотра тем без перезагрузки и пересборки initrd можно перейти в терминал нажатием Ctrl+Alt+F6, войти как root и набрать:

# plymouthd
# plymouth --show-splash

Для выхода из просмотра нажать Ctrl+Alt+F6 снова и набрать:

# plymouth --quit

Изменение фонового изображения темы

В некоторых темах (таких как spinner и bgrt) можно изменить фоновое изображение. Для этого следует заменить файл /usr/share/plymouth/themes/theme/background-tile.png на собственный. Во избежание перезаписи изменённой темы при обновлении plymouth, все действия проводите над копией темы. После изменения не забудьте пересобрать initrd.

Отсутствующее BGRT изображение

Если вы используете тему BGRT, но UEFI не предоставляет логотип производителя, вы можете поместить запасное изображение в /usr/share/plymouth/themes/spinner/bgrt-fallback.png.

Замедление загрузки системы для отображения анимации

Если ваша система загружается настолько быстро, что анимация толком не успевает отобразиться, вы можете замедлить загрузку, создав drop-in файл для службы plymouth-quit.service и добавив туда ExecStartPre=/usr/bin/sleep 5. Смотрите этот пост на reddit.

Решение проблем

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

plymouth.enable=0 disablehooks=plymouth

Для записи отладочных сообщений в /var/log/plymouth-debug.log добавьте параметр ядра:

plymouth.debug

Смотрите также