При запуске юбутом вывожу splash-картинку, а далее linux её херит, возникает провал...
Подскажите как решить эту проблему?
Как вариант, предлагают инициализировать ядро со вторым фэйк экраном, а после инициализации переключиться на реальный.
Тут проблема в том, что когда RGB интерфейс отрубается, выведенная юбутом картинка начинает "выгорать" - смотрится безобразно, поэтому я решил, что кроме деинициализации IPU юбутом, надо обязательно отключать подсветку экрана тоже....
получается так: старт юбута -> включение IPU с подсветкой -> вывод на экран изображения (надписи) о том что стартуем -> отключаем IPU и подсветку -> запускаем ядро...
ради интереса засетапил процесс на imx6q:
1. картинка в юбут
2. лого из ядра
видео (паршивого качества): http://www.youtube.com/watch?v=MZqkjfVNJ2A&feature=youtu.be
эффект "выгорания" изображения есть (белёсая полоса внизу экрана на 4-6 сек), если vpu не выключать, то да, в ядре возникают проблемы - на эти грабли я наступал..
У меня же провал в несколько секунд, причем очень заметный. (вечером выложу видео) Но у меня splash в ядре не установлен.
Обратил внимание, что яркость подсветки на экране ядро устанавливает на первой секунде своего старта, а консоль появляется гораздо позже......сейчас пришла мысль, о том, что splash может появиться гораздо раньше консоли, и провал будет не так заметен....
Подскажите, как splash в ядро устанавливаете (я никогда не ставил)?
На какой частоте работает проц и какое у вас ядро ?
не совсем мгновенная, просто на видео не видно - если не заленюсь, то переключу на 15" lvds и озвучу результат..
в каком-то из юбутов (то ли для imx5, то ли для imx6q) пробовал параметр - время показа картинки.. именно для уменьшения разрыва между лого, так если время сделать достаточно большим, то в ядре происходил отказ с мотивировкой "vpu device not ready"
все правильно - пины и девайсы в АРМе интятся практически мгновенно, т.е. подсветка сразу оживает.. но промпт логина появляется с задержкой из-за инита рутовой, подъема сетки, короче в самом конце..
временно отключите поддержку сети, юсб и ммс - загрузка до консоли будет практически мгновенной..
я о технологии наслышан и видел результат, но сам (вроде) не пробовал..
частота не принципиальна - вероятно 700МГц, а может и 1ГГц.. ядро 3.0.35
параметр зовется MAX_LOGO_TIME, к сожалению я ошибся и на вашей платформе он не пойдет - это из юбута для dm8148 (у меня несколько разных платформ и всё не упомнишь)
с большой долей вероятности можно, разумеется внимательно отслеживая, чтобы, например, обращение к GPIO было после инита блока GPIO..
как? не знаю, мне как-то без надобности, почитайте доки к ядру, посмотрите содержимое
Какой смысл делать заставку в убуте ? Не логичней максимально ускорить старт ядра и заменить лого пингвина на свое полноэкранное ? Можно вообще отказаться от убута и сделать минимальный загрузчик - в ядре отключить все лишнее, убрать printk, вырубить всю отладочную информацию, прописать из лога калибровку delay loop параметрах ядра чтобы оно ее не считало каждый раз при старте
максимально приблизить инициализацию IPU. На платах с imx6q есть возможность стартовать с SD - там можно вообще выкинуть nand как тормоз перестройки :) c SD система стартует в разы быстрей, там уже проще использовать не сжатый образ ядра и не тратить время на распаковку при старте.