Plymouth (Русский)

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

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

Подготовка

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

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

Если у вас не настроены ни KMS ни framebuffer, то Plymouth вернется в текстовый режим.

Установка

Plymouth доступен в AUR. Стабильная версия называется plymouthAUR, но можно использовать версию plymouth-gitAUR. В связи с тем, что новые стабильные версии выходят редко и нерегулярно, обычно рекомендуется использовать plymouth-gitAUR, потому что вероятность возникновения проблем с ним у большинства пользователей ниже, чем у стабильного пакета.

Включение Plymouth в Initcpio

Добавьте Plymouth в HOOKS в mkinitcpio.conf. Он обязательно должен быть добавлен после base и udev:

/etc/mkinitcpio.conf
HOOKS=(base udev plymouth ...)
Важно:
  • Если используется шифрование жестких дисков с хуком encrypt, необходимо заменить encrypt на plymouth-encrypt и поместить его после хука plymouth, чтобы получить доступ к запросу пароля TTY.
  • Хук plymouth-encrypt не поддерживает использование параметров PARTUUID или PARTLABEL в cryptdevice=.
  • При использовании ZFS encrypted root нужно установить plymouth-zfsAUR и заменить хук zfs на plymouth-zfs

Если после добавления хука plymouth-encrypt вводимый пароль попадает в фон в текстовом виде, необходимо добавить модуль вашего видеодрайвера в initramfs. Пример для intel:

/etc/mkinitcpio.conf
MODULES=(i915 ...)

Также этот шаг может потребоваться для работоспособности некоторых тем.

Альтернативный хук plymouth (systemd)

Если в mkinitcpio.conf используется хук systemd, необходимо заменить plymouth на sd-plymouth. На зашифрованной системе вместо encrypt или plymouth-encrypt используйте sd-encrypt:

/etc/mkinitcpio.conf
HOOKS=(base systemd sd-plymouth ... sd-encrypt ...)

Командная строка ядра

Добавьте quiet splash vt.global_cursor_default=0 в параметры ядра. Другие параметры, которые помогут уменьшить вывод логов в консоли, описаны в статье Silent boot.

Настройка

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

Для GDM есть пакет gdm-plymouthAUR, который поддерживает плавный переход из коробки (он полностью заменяет gdm и не требует дополнительной настройки).

Пользователи Optimus-manager могут установить gdm-plymouth-primeAUR, который является форком gdm-plymouthAUR с патчами, необходимыми для поддержки Prime switching.

Для других экранных менеджеров (SDDM, LightDM, LXDM):

  1. Отключите стандартную службу вашего экранного менеджера, например lxdm.service.
  2. Включите аналогичную службу, совместимую с Plymouth, например lxdm-plymouth.service.

Задержка загрузки

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

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

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

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

Выбор темы

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

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

Дополнительные темы доступны в AUR: смотрите список пакетов, зависимых от plymouthAUR.

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

$ plymouth-set-default-theme -l

или:

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

Изначально выбрана тема spinner. Чтобы выбрать другую, следует изменить строку Theme= в /etc/plymouth/plymouthd.conf, например:

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

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

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

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

# plymouthd
# plymouth --show-splash

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

# plymouth --quit

Hidpi

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

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

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

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

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

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

Добавление логотипа Arch Linux к темам spinner и BGRT

Чтобы добавить логотип к темам spinner и BGRT, нужно поместить его в папку темы с названием watermark.png:

# cp /usr/share/plymouth/arch-logo.png /usr/share/plymouth/themes/spinner/watermark.png

Чтобы поместить логотип в центр (если он не в центре), добавьте следующие строки в файл конфигурации темы (файл с расширением .plymouth, например spinner.plymouth):

WatermarkHorizontalAlignment=.5
WatermarkVerticalAlignment=.5

Замена логотипа Arch и создание кастомных тем

Темы, поставляемые с plymouth (fade-in, script, solar, spinfinity), используют логотип, расположенный в /usr/share/plymouth/arch-logo.png. Чтобы заменить логитип, можно позаимствовать любой по вкусу из тем в AUR, изменить *.plymouth (и, возможно, *.script), заменив изображение на выбранное. Из созданной темы следует создать пакет, поскольку изменения в /usr/share/plymouth могут быть переписаны при обновлении.

Не забудьте пересобрать initrd после создания и включения новой темы.

Отключение логотипа производителя

Добавьте fbcon=nodefer в параметры ядра.

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

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

Смотрите этот пост на reddit.

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