LINUX.ORG.RU

Нормальный сплэшскрин (лого) в Линукс, реально ли достичь?

 , ,


0

2

Подскажите, а есть ли возможность показывать при старте системы нормальный сплэшскрин (логотип)? Проблема заключается в следующем - мне нужно показать картинку с момента старта системы до момента запуска моего приложения, которое стартует под Иксами. Я уже перепробовал кучу всего, в итоге остановился на варианте с логотипом, встроенным в ядро. Он показывается достаточно рано, спустя примерно 2 секунды, висит на экране весь процесс загрузки, но выключается сразу же при старте Иксов, возможно даже, что чуть раньше, при достижении graphical.target. Система у меня достаточно медленная, поэтому Иксы стартуют 3-4 секунды, потом запускается приложение, в итоге минимум 5-6 секунд экран черный, что выглядит реально непрофессионально. Я знаю, что есть как минимум три возможности запуска логотипа на моей системе (iMX6+Debian или Angström):

1. Включить отображение в U-boot и пропатчить ядро для сохранения картинки, данный метод включается сразу (что некритично в целом), но выключается, думаю, в тот же момент и требует немалых усилий 2. Поддержка логотипа в ядре - то, что я использую в данный момент времени. 3. Скрипт в init.d с отрисовкой через fbi - запускается позднее, чем из ядра, проблема с Иксами не решается, этот метод я уже использовал и отказался от него.

Есть ли какая-то дополнительная возможность обойти инициализацию Иксов и сохранить картинку до момента запуска моего приложения?

Заранее спасибо!

Я не сталкивался с подобными задачами и вообще не админ, но такая вот мысль: лого рисуешь через фреймбуфер на одном виртуальном терминале (или как там это называется), иксы с программой грузятся на другом. Когда всё проинициализируется переключаешь на иксы. Ну вроде как Alt-F1-2-3...
Терминологией не владею, как устроен графический стек в Линуксе не знаю, так что может и дичь сморозил.

JacobTwoTwo
()

Уже сто лет всякие gdm'ы при запуске на той же консоли умеют сохранять содержимое фреймбуфера и интегрируются с plymouth.

ЕМНИП, раньше нужен был патч на иксы, чтобы не стиралось содержимое экрана, и ещё один на gdm для взаимодействия с plymouth (кажется, нужно было просигналить ему, чтобы завершался, только тогда, когда gdm уже поднимется). Сейчас уже ничего патчить не надо, всё это есть в апстриме, поэтому плавный переход между plymouth и gdm работает из коробки.

Если gdm не используется, можно посмотреть, как сделано там, и повторить в своём приложении.

Plymouth нужно запускать пораньше, из initramfs. Не знаю, что там с видео на арме, но у меня на x86 с интеловской встроенной видеокартой загрузка драйвера i915 занимает некоторое заметное время, а plymouth сможет работать только после этого, поэтому до этого отображается картинка, оставшаяся от UEFI (но тоже не чёрный экран).

gentoo_root ★★★★★
()

У меня plymouth показывал логотип и степень загрузки посередине (картинку и тему я сделал кастомную), на рабочем столе та же картинка и в логин менеджере та же картинка, она просто не меняется во время загрузки. Хотя не уверен, у меня сейчас SSD и оно так быстро грузится, что я и не замечаю и мне ненужно впринципе. Там вроде был только один момент, когда на секунду вылезал чёрный экран и месседж от системд на медленном хдд. Посмотри мою старую тему за начало того года, там давали какие-то советы (возможно, сделать юнит для системд). https://www.linux.org.ru/forum/desktop/12412678

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

Поставил на своем Дебиане plymouth и lightdm - не помогло, ни по одной из инструкций заставить их работать вместе не получилось. Да и plymouth, в принципе, ни одну тему так и не вывел, потому как текущие инструкции по настройке тоже не помогли, подозреваю, что у меня какие-то старые версии в репозитории, потому что не x86

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

свежая версия плимуса тут: http://anongit.freedesktop.org/git/plymouth , хотя попробуй сначала со своей. У меня в репах отдельно лежит версия gdm-plymouth (гдм с поддержкой plymouth smooth transition). Так же, чтобы он заработал - в конфиге нужно поправить тему (скачав её предварительно). Редактировать темы для него не слишком сложно - я например сделал картинку со своего рабочего стала + кастомный инпут для ввода пароля к зашифрованному диску (когда появляется запрос), а далее - добавил по центру заполняющееся лого арча из другой темы прикольное по ходу загрузки. Линк на создание тем для плимуса счас не помню - можно нагуглить, но если тебе просто лого отображать без анимаций - это отредактировать минутное дело. Либо на примерах похожего смотри, скачай сразу кучу.

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

gdm и kdm отпадают, у меня встраиваемая система, lightdm c plymouth заработать не смог, у меня в системе отсутствует lightdm-plymouth.service

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

У меня в репозиториях все это добро отсутствует, только голый плимут, на своей машине я все это вряд ли смогу собрать.

Polarisru
() автор топика

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

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

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

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

В данном случае, более просто собрать Qt под фреймбуфер, благо там поддержка из коробки этого дела.

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

В другом месте посоветовали отказаться от иксов и работать с фреймбуфером

правильно подсказали. вроде как банкоматы на линухе так и работают.

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

Да, только проекты вроде DirectFB благополучно скончались, и возня с их трупами реально перекрывает все мои текущие возможности.

Polarisru
() автор топика

что выглядит реально непрофессионально

У меня на немецком оборудовании за лям так оно стартует)

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

На арчевом форуме человек решил проблему, установив гит версию плимуса:

Oh, yeah, I solved it, indeed. I built the plymouth-git package from the AUR, sudo systemctl disable lightdm.service; sudo systemctl enable lightdm-plymouth.service, and rebooted.

Интересующий тебя сервисный файл доступен в этом архиве: https://aur.archlinux.org/cgit/aur.git/snapshot/plymouth-git.tar.gz, вот его содержимое

[Unit]
Description=Light Display Manager
Conflicts=getty@tty1.service plymouth-quit.service
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service

[Service]
ExecStart=/usr/bin/lightdm
Restart=always
IgnoreSIGPIPE=no
BusName=org.freedesktop.DisplayManager

[Install]
Alias=display-manager.service
Так же, предлагали такое решение: https://bbs.archlinux.org/viewtopic.php?pid=1320104#p1320104

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

Справедливости ради бесшовной загрузки с логоном в иксы тут не будет - у иксов будет своя тема, у fbsplash - своя

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

Так то да. Невнимательно читал тред.

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