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

Также смотри

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