LINUX.ORG.RU

Анимация загрузки «как в Windows»

 , ,


1

2

Под сабжем я подразумеваю сохранение логотипа UEFI и показ анимации загрузки на его фоне. Сама анимация может отличаться от виндовой.

Имеется Arch Linux с systemd-boot и plymouth, установленный в UEFI режиме. Так вот, обнаружил в возможных настройках systemd-boot с недавних пор опцию «console-mode keep». С ней получается следующее поведение: при запуске дисплейного менеджера (SDDM в моём случае) анимация plymouth исчезает и на секунду появляется логотип от UEFI и уже на его фоне появляется указатель мыши, а затем всё это сменяется запустившимся SDDM. То есть получается, что systemd-boot сохранил экран от UEFI при запуске ядра, а ядро умудрилось не затереть его содержимое и даже подсунуть дисплейному менеджеру в качестве начального содержимого экрана.

Иксы стартуют на tty1. Если переключиться на tty2, то также можно успеть заметить логотип UEFI, пока systemd не запустит getty и он не очистит консоль. При переключении на остальные консоли данный эффект уже не повторяется (возможно, getty запускается слишком быстро).

Раз пошло такое дело, то хочется заставить plymouth рисовать анимацию поверх логотипа UEFI, как это делает офтопик. Техническая возможность со стороны ядра точно есть, иначе бы этот логотип не мерцал при старте SDDM. Нужно как-то создать прозрачную тему plymouth или что-то вроде этого.

Кстати, если убрать опцию splash из параметров ядра, то логотип UEFI не появляется ни разу за всё время загрузки. Если переключиться в текстовую консоль с помощью Esc при работе plymouth, то там будут обычные информационные строчки на чёрном фоне.

★★★★★

Последнее исправление: KivApple (всего исправлений: 4)

при запуске дисплейного менеджера (SDDM в моём случае)

Избавить себя от насилия дисплейных менеджеров, есчо не случилось?

А ведь умеешь устанавливать Рач

SturmFuerer
()

то логотип UEFI не появляется ни разу за всё время загрузки

Покажи пожалуйста, логотип UEFI.

Никогда не видел при загрузке. Видел лишь лого Linux, что настраиваивается в boot -> logo

SturmFuerer
()
Ответ на: комментарий от SturmFuerer

Ну речь идёт о ситуации, когда на компе UEFI. Например, в моём случае это белая надпись Dell в кружочке по центру экрана на чёрном фоне. У других производителей что-нибудь другое. Windows не очищает экран после UEFI и рисует свой спиннер загрузки так, что в большинстве случаев он оказывается под логотипом производителя. Как по мне, выглядит прикольно. До недавнего времени, я думал, что драйвера Linux так устроены, что очистка экрана неизбежна. Однако сейчас увидел, что при некоторой кобминации настроек содержимое экрана от UEFI показывается на долю секунды на очень позднем этапе загрузки (во время старта иксов, причём указатель мыши отлично в это время перемещается над логотипом производителя), значит оно сохраняется и вопрос сугубо в том, что plymouth должен не очищать экран перед рисованием своей анимации.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от SturmFuerer

Это не отменяет того, что мой вопрос про plymouth. Даже если после его окончания вместо дисплейного менеджера я бы пожелал увидеть голую консоль.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Знакомо и такое,

Дисплей Dell U2415 при загрузке может показать своё лого и отключиться от работы. Или покажется лого Lenovo. И тогда, загрузка начинается как нужно.

Но это, проблемы DisplayPort и инициализации монитора.

Скорее всего, исправлено в моделях, что новее. но мне нужен именно этот монитор, что умеет в 1980х1200.

SturmFuerer
()

Мне вот вообще не нравится boot splash. Мне кажется, идеально когда система показывает процесс загрузки текстом — сообщения от dmesg и от init.

Так в случае какой-то проблемы её сразу видно, а в случае если скучно можно зацепиться глазами за строки и почитать их вместо того чтобы пялиться на кружочки

Xenius ★★★★★
()
Ответ на: комментарий от Xenius

Совершенно верно!

Загрузка компа с systemd и быстро летят строки с зелёным [ OK ]

Нравится, васисуально и неслышно )

SturmFuerer
()
Ответ на: комментарий от KivApple

При чем здесь Plymouth?

Что у вас/тебя покажется первым, консоль или ГУИ - зависит только от твоего хотения.

Или не от вас, а по хотению дистрибутива GNU/Linux, как мне видится в случае вашем.

Можно изменить ход загрузки и сделать так, чтобы не загружались X11 и компания. Всего-то делов на 5 минут редактирования скрипта.

SturmFuerer
()

Нужна интеграция в UEFI. Реальная интеграция, а не то, что сейчас есть в Linux.

В Windows 10 это реализовано так, что буфер не перехватывается и не перерисовывается, а пишется поверх него (иногда криво). Linux же полностью перехватывает буфер, очищает его и начинает выплёвывать процесс загрузки (даже с CMDLINE=+quiet), и только потом запускает Plymouth/splash, которые в свою очередь снова перерисовывают буфер.

В твоём случае единственным решением будет воткнуть в качестве фона в Plymouth идентичную картинку, что кажет вместо POST твоя матплата. Где её брать — твои заморочки (можешь поискать на сайте производителя).

mord0d ★★★★★
()

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

Мерцание логотипа из POST — лишь факт переключения буфера. Это происходит в момент переключения буфера.

если убрать опцию splash из параметров ядра, то логотип UEFI не появляется ни разу за всё время загрузки

Потому, что тогда пляски с буферами не имеют смысла.

Можешь попытаться сплясать с опцией “efi framebuffer” в ядре, но на некоторых матплатах он не работает (или работает криво?).

mord0d ★★★★★
()

В Fedora 29 с новым plymouth на Интел такое поведение уже реализовано. С АМД есть какая-то трабла.

anonymous
()

Линукс грузится секунд 15-20. Чего там анимировать-то?

anonymous
()

Реализовать анимированную загрузку «от и до» на данный момент не возможно. В ближайшие лет 5 ситуация не изменится.

anonymous
()

В настройках UEFI должна быть опция типа «Disable Logo...». Во всех BIOS такая была.

anonymous
()

Винда просто рисует свой кружок загрузки поверх того, что уже изображено на экране. Можно ради любопытства пустить винду из груба (или чего-угодно другого) со светлой темой и понаблюдать.

Thetan ★★★
()
Ответ на: комментарий от Thetan

Нет, это не так.

Я вообще поражаюсь количеству дятлов в этом треде. 100% комментариев выше можно удалять по 4.2.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Типичный не то что лор, а вообще комменты где угодно от плацебо ламеров.

anonymous
()
Ответ на: комментарий от Thetan

Просто — не так.

Если запускать винду через systemd-boot на новом железе, она рисует свой спиннер поверх логотипа из прошивки, несмотря на то, что systemd-boot ранее очистил экран и нарисовал там своё меню. Linux ведёт себя точно так же, только без спиннера (если делать quiet i915.fastboot=1).

Я полагаю, там отдельный фреймбуфер под это дело.

Вообще, gasinvein всё понял. Нужно выдрать тему из федоровского Plymouth'а.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

У меня на одном ноуте обратная ситуация (кривой UEFI?). Если логотип производителя чем-то затёрт, то всё. Так что зря ты наезжаешь.

Просто — не так.

А я ждал технических подробностей.

Thetan ★★★
()
Ответ на: комментарий от Thetan

У меня на одном ноуте обратная ситуация (кривой UEFI?). Если логотип производителя чем-то затёрт, то всё. Так что зря ты наезжаешь.

А у меня именно такая, как я написал. Так что твоё утверждение о том, что «винда просто рисует свой кружок загрузки поверх того, что уже изображено на экране» некорректно.

Если логотип производителя чем-то затёрт, то всё

И всё-таки что «всё»? Винда рисует свой спиннер поверх предыдущего содержимого экрана? Или всё-таки поверх пустого экрана?

А я ждал технических подробностей.

«Я полагаю, там отдельный фреймбуфер под это дело.» За подробностями — в UEFI спеку.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Так что твоё утверждение о том, что «винда просто рисует свой кружок загрузки поверх того, что уже изображено на экране» некорректно.

Допустим.

И всё-таки что «всё»? Винда рисует свой спиннер поверх предыдущего содержимого экрана? Или всё-таки поверх пустого экрана?

Поверх предыдущего содержимого.

Thetan ★★★
()

попробуй bootsplash-systemd

anonymous
()

Посмотрите, как работает HackBGRT, и сделайте наоборот (считайте Boot Graphics Resource Table из plymouth или что у вас там).

anonymous
()
Ответ на: комментарий от intelfx

За подробностями — в UEFI спеку.

Если бы ещё реализации следовали спецификации.

mord0d ★★★★★
()
Ответ на: комментарий от KivApple

Смотри в ядре в разделе фреймбуфера. CONFIG_FB_EFI.

mord0d ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.