Перейти к содержанию
    

Сплэшскрин в Линукс, реально ли вообще?

Подскажите, а есть ли возможность показывать при старте системы нормальный сплэшскрин (логотип)?

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

Я знаю, что есть как минимум три возможности запуска логотипа на моей системе (iMX6+Debian или Angström):

 

1. Включить отображение в U-boot и пропатчить ядро для сохранения картинки, данный метод включается сразу (что некритично в целом), но выключается, думаю, в тот же момент и требует немалых усилий

2. Поддержка логотипа в ядре - то, что я использую в данный момент времени.

3. Скрипт в init.d с отрисовкой через fbi - запускается позднее, чем из ядра, проблема с Иксами не решается, этот метод я уже использовал и отказался от него.

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно возможно. Отдельно в буте и при старте ядра. В ядре делал.

Когда-то делал в ядре 2.6.35 на imx53, но уже не помню деталей.

Вам на какой платформе?

Вот вам где это делается. Я делал аналогично. *.ppm это картинки в таком формате должны быть.

http://elixir.free-electrons.com/linux/lat...vers/video/logo

 

фрагмент Makefile

 

obj-$(CONFIG_LOGO) += logo.o

obj-$(CONFIG_LOGO_LINUX_MONO) += logo_linux_mono.o

obj-$(CONFIG_LOGO_LINUX_VGA16) += logo_linux_vga16.o

obj-$(CONFIG_LOGO_LINUX_CLUT224) += logo_linux_clut224.o

obj-$(CONFIG_LOGO_BLACKFIN_CLUT224) += logo_blackfin_clut224.o

obj-$(CONFIG_LOGO_BLACKFIN_VGA16) += logo_blackfin_vga16.o

obj-$(CONFIG_LOGO_DEC_CLUT224) += logo_dec_clut224.o

obj-$(CONFIG_LOGO_MAC_CLUT224) += logo_mac_clut224.o

obj-$(CONFIG_LOGO_PARISC_CLUT224) += logo_parisc_clut224.o

obj-$(CONFIG_LOGO_SGI_CLUT224) += logo_sgi_clut224.o

obj-$(CONFIG_LOGO_SUN_CLUT224) += logo_sun_clut224.o

obj-$(CONFIG_LOGO_SUPERH_MONO) += logo_superh_mono.o

obj-$(CONFIG_LOGO_SUPERH_VGA16) += logo_superh_vga16.o

obj-$(CONFIG_LOGO_SUPERH_CLUT224) += logo_superh_clut224.o

obj-$(CONFIG_LOGO_M32R_CLUT224) += logo_m32r_clut224.o

 

obj-$(CONFIG_SPU_BASE) += logo_spe_clut224.o

 

 

В make menuconfig

 

вам надо разрешить CONFIG_LOGO и CONFIG_LOGO_.... соответствующий вашей картинке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно возможно. Отдельно в буте и при старте ядра. В ядре делал.

Когда-то делал в ядре 2.6.35 на imx53, но уже не помню деталей.

Вам на какой платформе?

Вот вам где это делается. Я делал аналогично. *.ppm это картинки в таком формате должны быть.

http://elixir.free-electrons.com/linux/lat...vers/video/logo

 

фрагмент Makefile

 

obj-$(CONFIG_LOGO) += logo.o

obj-$(CONFIG_LOGO_LINUX_MONO) += logo_linux_mono.o

obj-$(CONFIG_LOGO_LINUX_VGA16) += logo_linux_vga16.o

obj-$(CONFIG_LOGO_LINUX_CLUT224) += logo_linux_clut224.o

obj-$(CONFIG_LOGO_BLACKFIN_CLUT224) += logo_blackfin_clut224.o

obj-$(CONFIG_LOGO_BLACKFIN_VGA16) += logo_blackfin_vga16.o

obj-$(CONFIG_LOGO_DEC_CLUT224) += logo_dec_clut224.o

obj-$(CONFIG_LOGO_MAC_CLUT224) += logo_mac_clut224.o

obj-$(CONFIG_LOGO_PARISC_CLUT224) += logo_parisc_clut224.o

obj-$(CONFIG_LOGO_SGI_CLUT224) += logo_sgi_clut224.o

obj-$(CONFIG_LOGO_SUN_CLUT224) += logo_sun_clut224.o

obj-$(CONFIG_LOGO_SUPERH_MONO) += logo_superh_mono.o

obj-$(CONFIG_LOGO_SUPERH_VGA16) += logo_superh_vga16.o

obj-$(CONFIG_LOGO_SUPERH_CLUT224) += logo_superh_clut224.o

obj-$(CONFIG_LOGO_M32R_CLUT224) += logo_m32r_clut224.o

 

obj-$(CONFIG_SPU_BASE) += logo_spe_clut224.o

 

 

В make menuconfig

 

вам надо разрешить CONFIG_LOGO и CONFIG_LOGO_.... соответствующий вашей картинке.

Я все это уже сделал давно, все работает, вопрос не в этом, а в дырке между этим лого и стартом самого приложения, после завершения загрузки ядра лого исчезает, а мне нужно еще закрыть старт икс-сервера и, если реально, приложения, этого лого из ядра не делает, в этом и вопрос, что реализация данной задачи не является тривиальной. Есть, конечно, plymouth, но на моей машине он почему-то не работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понятно. Это уже не сплэш скрин. Полагаю вам надо в конфигурации xorg надо искать. Здесь я мало что могу сказать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот попалось по теме, но похоже у человека пока не все получилось.

https://devtalk.nvidia.com/default/topic/99...n-at-x-startup/

 

Добавили фрагмент

    Section "Screen"
        Identifier     "Screen0"
        Device         "Device0"
        Monitor        "Monitor0"
        DefaultDepth    24
        Option         "LogoPath" "/usr/share/images/desktop-base/water.png"
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection

в файл:

/etc/X11/xorg.conf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...