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

# Plymouth (Русский)

From ArchWiki
Jump to navigation Jump to search

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 в 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[broken link: invalid section] нужно установить plymouth-zfsAUR и заменить хук `zfs` на `plymouth-zfs`

Если после добавления хука `plymouth-encrypt` вводимый пароль попадает в фон в текстовом виде, необходимо добавить модуль radeon (для видеокарт radeon), i915 (для видеокарт Intel) или nouveau (для видеокарт nvidia) в строку MODULES в `/etc/mkinitcpio.conf`

    /etc/mkinitcpio.conf

    MODULES=(i915 ...)
    или
    MODULES=(radeon ...)
    или
    MODULES=(nouveau ...)

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

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

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

    /etc/mkinitcpio.conf

    HOOKS=(base systemd sd-plymouth ... sd-encrypt ...)

Переконфигурация образа ядра (см. статью mkinitcpio для более детальной информации)

    # mkinitcpio -p [имя вашего ядра]

### Командная строка ядра и настройка загрузчика

Необходимо установить `quiet splash loglevel=3 rd.udev.log_priority=3 vt.global_cursor_default=0` в параметрах ядра загрузчика. Для Grub2 наиболее простым и безопасным способом сделать это является редактирование файла `/etc/default/grub`. Приведите указанные переменные к следующему виду:

    /etc/default/grub

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    GRUB_GFXMODE=1366x768x24
    GRUB_GFXPAYLOAD_LINUX=keep

Можно заставить KMS принудительно запускаться раньше добавив "radeon.modeset=1" (для видеокарт radeon) или "i915.modeset=1" (для видеокарт Intel) в опции ядра:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.modeset=1"

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.modeset=1"

Чтобы сгенерировать `grub.cfg`, выполните:

    # grub-mkconfig -o /boot/grub/grub.cfg

Для GRUB и LILO шаблон аналогичен.

## Конфигурация

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

Для активации плавного перехода следует заменить существующий сервис дисплейного менеджера на поставлющийся вместе с Plymouth (на примерe LightDM):

1. Отключите существующий сервис: `systemctl disable lightdm.service`
2. Включите аналогичный сервис, совместимый с Plymouth: `systemctl enable lightdm-plymouth.service`

Если вы предпочитаете GDM, установите пакет gdm-plymouthAUR, содержащий патчи для "бесшовного" перехода от анимации Plymouth к дисплейному менеджеру.

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

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

    /etc/plymouth/plymouthd.conf

    [Daemon]
    Theme=spinner
    ShowDelay=5

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

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

### Выбор темы

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

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

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

    plymouth-set-default-theme -l

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

    # plymouth-set-default-theme theme

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

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

    # plymouthd
    # plymouth --show-splash

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

    # plymouth --quit

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

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

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

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

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

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

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

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

## Устранение неполадок

Примечание: Данный раздел отсутствует в англоязычной версии страницы. Перечисленное может быть неактуально.

### Маленькие черные квадраты

По каким-то причинам после выполнения команды выйти, Plymouth может оставить черные квадраты вверху экрана видимые поверх всех окон. Два подтвержденных случая, это ноутбук с видеокартой ATI при использовании KMS, и десктоп с видеокартой nVidia использующий framebuffer. Источником проблемы является опция `--retain-splash` , которая требуется для максимально плавного отображения в процессе загрузки. Обходным путем является принудительное закрытие Plymouth после логина, когда опция `--retain-splash`более не требуется.

Нужно отредактировать `~/.xinitrc` и добавить следующую линию перед линией запускающей менеджер окружения рабочего стола (подобной "exec openbox-session") чтобы выключить Plymouth:

    sudo /bin/plymouth quit &

Примечание: Отсутствие `--retain-splash` и дополнительный знак `&` требуются чтобы xinitrc мог продолжать запуск графического окружения и оставить Plymouth выключаться в фоновом режиме.
Важно: Если не вставить это перед строкой запуска сессии рабочего стола (к примеру "exec startxfce4") приведет в результате к незапускаемой сессии.

Чтобы получить разрешение на принудительное отключение Plymouth без пароля, нужно отредактировать `/etc/sudoers`:

    $ su
    # EDITOR=nano visudo

и добавить:

    Ваш_Логин      ALL=(ALL) NOPASSWD: /bin/plymouth

После этого необходимо перезагрузиться.

### Выключение `<-- Все еще проблема?`

Если имеется проблема с выключением Power Off, к примеру компьютер перезагружается вместо выключения, причиной может быть или KMS или Plymouth. Если причина в Plymouth, то необходимо или запустить "plymouth --mode ..." в случае перезагрузки или halt или отредактировать `/etc/rc.d/functions.d/plymouth.functions` и закомментировать следующий блок:

    if [ "$0" == "/etc/rc.shutdown" ]; then
    ...
    fi

## Также смотри

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

Category:

- Bootsplash (Русский)

Hidden category:

- Pages with broken section links