LINUX.ORG.RU

Как добиться корректной работы Plymouth на Debian 9?

 , , ,


0

1

Добрый вечер.

В наличии:

1) Debian v9.2, ветка stable;
2) XFCE v4.12.3;
3) Lightdm v1.18.3;
4) Plymouth v0.9.2 и темы по умолчанию.

Устанавливал следуя указаниям отсюда: https://wiki.debian.org/ru/Plymouth. Так как видеокарта у меня от NVidia (GeForce GT 240M, версия драйвера: 340.102), то драйвер v86d также был установлен. Словом, все было сделано по статье. В процессе никаких аномалий не случалось. Установлена тема lines. Перезагрузка.

Проблема:

начало анимационного ролика воспроизводится корректно, во всей красе, но чуть погодя все превращается в монохромную (а иногда и в оттенках серого) кашу различного рода артефактов. Дальше все загружается в нормальном режиме.

Смена темы только усугубила положение: ос зависает при загрузке почти наглухо (даже терминалы по ctrl-alt-f не переключаются), работает только ctrl-alt-del. Перезагрузился в режим восстановления и вернул рабочую тему обратно.

В журнале dmesg насторожило следующие:

[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.9.0-4-amd64 root=UUID=21f9bc35-b1b5-4e5b-b90b-54bd1efb621f ro quiet splash nomodeset video=uvesafb:mode_option=1024x768-16,mtrr=3,scroll=ywrap
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.9.0-4-amd64 root=UUID=21f9bc35-b1b5-4e5b-b90b-54bd1efb621f ro quiet splash nomodeset video=uvesafb:mode_option=1024x768-16,mtrr=3,scroll=ywrap
[ 4.493904] uvesafb:
[ 4.765938] uvesafb: VBIOS/hardware doesn't support DDC transfers
[ 4.765939] uvesafb: no monitor limits have been set, default refresh rate will be used
[ 4.767379] uvesafb: scrolling: redraw
[ 4.767382] uvesafb: request region 0x3c0-0x3e0 failed
[ 4.767634] uvesafb: probe of uvesafb.0 failed with error -5

Гуглил долго, наткнулся только на это - там товарищи добавляли к параметрам ядра следующее: video=vesa:off vga=normal. На иностранных форумах такая мысль тоже проскакивала, мол vesa «кушает» память фреймбуфера и для uvesafb уже ничего не остается. Сказано - сделано. Однако проблема не исчезла.

Вывод dmesg изменился на:

[ 4.671583] uvesafb: VBIOS/hardware doesn't support DDC transfers
[ 4.671584] uvesafb: no monitor limits have been set, default refresh rate will be used
[ 4.673057] uvesafb: scrolling: redraw
[ 4.917487] Console: switching to colour frame buffer device 128x48
[ 4.918563] uvesafb: framebuffer at 0xcf000000, mapped to 0xffffb31341000000, using 8160k, total 14336k
[ 4.824186] fb0: VESA VGA frame buffer device

Значения video=uvesafb:mode_option пробовал самые различные. Брал их отсюда:
cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes
и отсюда:
cat /sys/class/graphics/fb0/modes,
и из hwinfo --framebuffer тоже. Не помогло.

Чисто для эксперимента удалил v86d, в конф. файле grub в качестве параметров передаваемых ядру оставил лишь «quiet splash», initframs собран заново. И знаете что? А ничего не изменилось! Разве что вывод dmesg изменился, никаких ошибок теперь. Что с uvesafb, что без него - проблема та же - «испорченная» анимашка при загрузке, либо зависнувшая ос при указании другой темы.

Гуглил еще и вот эта ситуация вроде похожа на мою. Там парень таки добился своего, но повторить его путь у меня не получается. У него в первом шаге решения идет речь о декомпиляции модуля efifb из ядра. Я не знаю как это сделать. Что я ищу, тоже не знаю; какого рода модуль?, это те которые с расширением *.so? Куда его потом перемещать? Нарыл только скрипт extract-vmlinux, «натравил» на него свой vmlinuz, получил какой-то бинарник, куча статей о том как его дизасемблировать и ни слова о декомпиляции модулей. Это уже дебри. А вот это сообщение вообще наполнено безысходностью: или декомпиляция efifb, или выкидывай проприетарный драйвер, или вообще откажись от идеи с плимутом.

ТУПИК!

Потрачена куча времени с нулевым результатом. Что делать дальше?

Помогите пожалуйста и спасибо за внимание.

Отвечу на послединий абзац. *.so это динамические библиотеки для user-space программ. В ядре всё своё, модули *.ko файлы, а то что вкомпилировано, то вкомпилировано. Декомпиляция в том случае это совсем не дизассемблирование, а просто сборка ядра из исходников с другим конфигом. В общем для повторения пути garygolden, вам нужно взять исходники ядра, по идее не ванильные, а дистрибутивные, и скомпилировать их с изменением конфигурации. Скомпилировать в пакет, установить этот пакет (новое ядро) и далее как положено, сделать для него initramfs и загрузиться с ним.

В инете много статей как скомпилировать ядро в Debian, думаю вы найдёте ту, где берут дистрибутивное ядро, а не качают с kernel.org...

И, понятно, что обновлять это ядро придётся вручную, путём компиляции, всякие ″apt-get update″ поставят ядро из репозитория дистрибутива, где efifb вкомпилен.

P.S. Никаких гарантий, что пересборка ядра поможет с плимутом я не даю.

mky ★★★★★ ()
Последнее исправление: mky (всего исправлений: 1)
Ответ на: комментарий от mky

Понятно. Нет, такие маневры с обновлением вручную не нужны. Плимут - на мороз до лучших времен.

Спасибо за отзыв.

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

Мммм, а альтернатив никаких? Usplash и Хsplash, я так понимаю, уже динозавры. Очень хотелось сделать бесшовный загрузочный экран, чтобы было как в виндовс лучше чем в виндовс, я любитель свистелок и перделок такого рода.

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

Напиши свой =) И с другими поделись =)

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

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

Или как в Андроиде, что ближе всего к GNU/Linux.

gag ★★★★★ ()

Вот кстати у меня какая проблема была с plymouth: Debian 9 plymouth console font is not setup on tty1 , в итоге решил, что такая элементарная вещь как plymouth не стоит времени, забил и поставил кубунту.

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