Plymouth (Русский) - ArchWiki

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

Ссылки по теме

- Silent boot

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.

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

- Original Spec
- Обсуждение на форуме

Category:

- Bootsplash (Русский)