LINUX.ORG.RU

Бесшовная загрузка

 , , , ,


0

3

Я уже пару раз пытался реализовать, но идеально до сих пор ни разу не получалось.
Суть моей затеи в том, чтобы вывести какое-то изображение на экран ещё на этапе загрузки. При этом в загрузчике выставляется «родное» разрешение для экрана. GRUB2 отлично для этого подходит, однако я пробовал также pxelinux (тут придётся пошаманить с изображением).
Следующий этап — загрузка ядра. Нужно как-то загрузить ядро, но при этом не обновлять экран — пускай там остаётся изображение, выведенное загрузчиком. Как только ядро (с выставленным «родным» разрешением через GFX_MODE или параметр vga=) загрузится, оно выведет на экран точно такое же изображение. Реализуется это через vesafb — early framebuffer.
Последний этап — старт иксов. Нужно запустить иксы (или что у вас там? wayland?) и первым делом выставить бэкграундом всё то же изображение.
Кажется, что ничего сложного нет, но есть. У меня так и не получается обойтись без мерцаний между загрузчиком и ядром. Также между фреймбуффером и иксами должно быть мерцание, но я до этого шага ещё не дошёл.

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

★★★★★

Ответ на: комментарий от deterok

Не знаю, куда он там копал, а ноут на интеловской карточке у меня моргает экраном только так.

CYB3R ★★★★★ ()

Мечты...

У меня так и не получается обойтись без мерцаний между загрузчиком и ядром. Также между фреймбуффером и иксами должно быть мерцание

Вот это вот ты никогда не победишь.. А жаль.

nutsandmilk ★★★ ()

В Бубунте вроде плимут такое делает. Настроит плимут без анимации, только фон. А дальше сам знаешь...

ubiquitine ()

Ещё один забытый шаг: может быть графический login manager (если он нужен) с таким же фоном.

CYB3R ★★★★★ ()

патчи ядро чтобы не чистило экран перед выводом изображения.

mm3 ★★★ ()

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

Что есть: в последних версиях кмс, но всё равно мигает перед иксами, в предыдущих была идея показывать иксы чуть ли не из initrd, но мигания всё равно были между грубом и убунтой.

PolarFox ★★★★★ ()

Бесшовная загрузка

Зачем, когда есть suspend?

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

Что то Убунтовское. Но думаю можно прикрутить куда угодно..... Хотя Лично я такими Извращениями не занимаюсь. У меня система стартует где то 15-20 сек. , так что мне пофиг что там показывает...

ubiquitine ()

И мне вот нужно похожее для встраиваемого ПК. Под 2.6.2x был bootsplash-патч да обои можно было в консоли поставить. Хочу это всё обновить. Мерцание, наверное, не так критично, самое главное никакого окошка груба (чтобы он возникал только при удержании какой нибудь клавиши) и никакого «loading kernel.........»

gag ★★★★★ ()

ну вот я сейчас поставил ElementaryOS под VMware, там при загрузке нет никаких мерцаний

вот и смотри как они это сделали

хотя, может, это только в виртуалке нет мерцаний

anonymous ()

У покетбука на читалках (линукс ядро 2.4.х) так сделано. Включаешь и сразу выводится последняя читанная страница, а в строке состояния просьба подождать минутку.

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

Да, кстати, это в новых прошивках только добавили. При выключении делается «снимок» фреймбуффера, при включении он снова загоняется во фреймбуффер.
Это можно сделать простым cat или dd.

CYB3R ★★★★★ ()

+ по возможности в биос своё изображение пихнуть.

zinfandel ★★ ()
16 июля 2014 г.

Может поднимаю тему из архива, но, тут так и нет ответа. Побороть мерцание после граба, можно зашив в ядро нужные опции, и передав ядру правильные параметры. Мне удалось это сделать через uvesafb и simple framebufer. вот что получилось http://youtu.be/nUAWvLXPcnw

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

simpleframebufer

Это, я так понимаю, фреймбуфер UEFI.
А какие-нибудь патчи типа fbcondecor используешь? Какая строка параметров передаётся ядру?

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

нет, у меня старенький комп, уже 7 лет :) UEFI не стоит. Хотя хочу вот на ноуте проэксперементировать. патч естественно стоит fbcondecor. Без него логи не вывести без зарисовки картинки. Ядро 3.15 но дело не в версии тут.

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

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

Reset82 ()

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

Емнип для этого нужно, чтобы фреймбуфер был не в initrd, а вкомпилен в ядро.

vga= противопоказан, естественно.

x3al ★★★★★ ()

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

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

скорее вкомпилен в загрузчик, лол

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

посмотрите видео, все работает. Я тоже думал что это не победить, однако получилось.

Reset82 ()

Если на обоину поставить Малевича — черный квадрат, никаких бликов и переходов не будет. С вами была рубрика «советы домохозяйкам», до завтра!

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

Прошу прощения, позабыл ответить про параметры. там в общем, в каком режиме сплеш грузить, далее nomodeset нужно обязательно, ну и само разрешение уже как обычно выставлять. Думаю именно на этом этапе сложностей быть не должно.

Reset82 ()

Я уже пару раз пытался реализовать, но идеально до сих пор ни разу не получалось.

CYB3R И не получится.

А самое приближенное к идеалу на данный момент это grub2 с дефолтной черно-белой темой (т.е. вообще без тем ;) ) но с выставленным нативным разрешением. Дальше никаких плимутов и прочей ереси а тупо все такая же черная консоль с белыми буквами. И в конце нечто (dm/wm) настолько облегченное и шустрое чтобы стартовало просто мгновенно и незаметно.

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

4:3 фаг?

Без kms, как правило, довольно трудно добиться того чтобы разрешение в консоли полностью соответствовало разрешению в иксах т.е. с блобом это + еще одно переключение разрешения.

А надо оно кому-то или нет лично мне пофиг потому что я описал своё мнение.

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

Все получится! :) нужно просто делать все по порядку и знать конечно что именно делать.

Пусть момент изменения разрешения будет «ЫЫЫ» тогда он у нас будет во время:

BIOS post -> ЫЫЫ [1] -> загрузчик -> ЫЫЫ [2] -> bootsplash -> ЫЫЫ [3] -> dm/wm

Если у нас нет bootsplash вовсе и включен kms тогда фрагмент «bootsplash -> ЫЫЫ [3]» выпадает а на его месте будет консоль с тем же разрешением что и на [2].

От всех остальных моментов переключения избавится трудно. Потому что [1] требует вмешательства в прошивку bios… Но вангую что с coreboot это не проблема.

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

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

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

Reset82 самое простое это не ставить никаких bootsplash и использовать kms. Тогда у тебя останется только [1] и [2] и дальше если выбрать очень легкую dm/wm… Т.е. даже не просто легкую а настолько легкую чтобы её запуск проходил за доли секунды. Вот тогда оно хоть и не будет идеально зато лучших результатов без дальнейших издевательств над оборудованием ты просто не достигнешь.

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

да я уже это осуществил, и выложил решение. К сожалению не тут а на другом ресурсе. Но хотелось бы конечно найти способ грузить сразу картинку еще до граба. Видимо скоро начну проводить опыты на ноуте... достала эта Вин8 там.

Reset82 ()

wee63 - загрузчик такой
в плимуте задай тему
убери выхлоп initrd и init/rc

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

да я уже это осуществил, и выложил решение. К сожалению не тут а на другом ресурсе.

Без издевательств над железом ускорить еще быстрее можно только впихнув всю систему вместе с иксами и dm/wm в initramfs по принципу ембеддед систем. Т.е. сделав нечто вроде damn small linux. И опять же это не решит изначальную проблему а только сделает запуск более шустрым и уменьшит паузы до минимума.

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

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

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

Возможно кто-нибудь предложит вариант внедрение картинки в биос?

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

Лично я смотрю в сторону систем которые продают сразу с coreboot.

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

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

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