LINUX.ORG.RU

Не работает ранний старт plymouth

 , , ,


0

2

Не могу разобраться почему плюмут так поздно стартует, т.е. аж на этапе инициализации демонов. Коротко, initramfs с плюмутом и темой создан (пробовал и genkernel-next и dracut), в грабе все прописано

GRUB_CMDLINE_LINUX_DEFAULT='quiet splash radeon.modeset=1'
GRUB_GFXMODE=1366x768x24
GRUB_GFXPAYLOAD_LINUX=keep
KMS включен и работает.

По факту, стартует ядро как обычно, запускается systemd и аж потом включается плюмут. Пробовал для теста удалять initramfs, картина все та же. Судя по всему плюмут не хочет стартовать с initramfs.

https://pastebin.com/5ygCdCF4 - фул лог от старта ядра до загрузки иксов последней сессии.

Закрадываются мысли, что для того, что бы плюмут работал еще на старте ядра нужен UEFI, на арчвики пишут что EFI фреймбуфер дружит с плюмутом. Может быть?


~ # egrep "dracutmodules|force" /etc/dracut.conf
dracutmodules="bash systemd systemd-initrd kernel-modules fs-lib btrfs drm plymouth i18n"
force_drivers+="amdgpu"
hostonly="yes"
hostonly_cmdline="yes"
~ # egrep -v "^#" /etc/plymouth/plymouthd.conf 
[Daemon]
Theme=breeze
ShowDelay=1

У меня вот так что касательно темы. Всё стартует весьма рано, попробуй по образцу.

Apr 29 18:21:09 localhost kernel: [drm] amdgpu kernel modesetting enabled.
radeon.modeset=1

Ну тут уже определиться, наверное, надо.

Nirvandil ()

Btrfs loaded, crc32c=crc32c-generic

Плохо, нужно включить в add_drivers crc32c_intel, ну или в само ядро вкомпилить.

Nirvandil ()

radeon собран модулем или монолитно в ядре? Так же в initramfs есть firmware для драйвера radeon или нет?

kostik87 ★★★★★ ()

Плохо, нужно включить в add_drivers crc32c_intel, ну или в само ядро вкомпилить.

А что это?

radeon собран модулем или монолитно в ядре?

Пробовал и так и так. Результат на пару строк ниже описан.

Так же в initramfs есть firmware для драйвера radeon или нет?

Да, был.

Рапортирую, вдруг кому в будущем это поможет.

Поставил UEFI с gpt разметкой. Раз 100 пересобрал ядро, красноглазил все выходные.

Оказалось, что если драйвера замодулировать, то plymouth с initramfs грузит быстро, но отображается криво (https://pp.userapi.com/c840028/v840028340/93f/s7lL9Zv8T64.jpg) + работает только стандартная тема, хотя kms работает.

Если без initramfs, то отображает нормально, но грузит поздно.

Вкомпилировал в ядро radeon, причем прям с прошивками, и аж потом initramfs. Работает. Может это особенности моей видеокарты, кто знает... И да, только UEFI, только с ним подхватывает плюмут раньше всего, да и система в целом грузится быстрее (как мне показалось, UEFI загружает прошивки с драйверами быстрее и эффективнее).

d-7 ()
Ответ на: комментарий от d-7

Вкомпилировал в ядро radeon, причем прям с прошивками, и аж потом initramfs. Работает.

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

Если собрано всё модульно и не находится в Initramfs, то в начале стартует ядро, монтирует корень, уже потом загружает модули с корня.

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

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

Дело в том, что прошивки как раз таки были в initramfs, во всяком случае так показывал лог создания dracut, kms работал. Странно.

d-7 ()
Ответ на: комментарий от Deleted
# dmesg | grep crc
[    1.589321] Btrfs loaded, crc32c=crc32c-intel
# uname -p
AMD FX(tm)-8320 Eight-Core Processor
Nirvandil ()
Ответ на: комментарий от d-7

Это возможность использовать SSE4.2 для подсчёта контрольных сумм.

egrep sse4.2 /proc/cpuinfo
Если вывод не пустой - значит, имеет смысл включить\использовать.

Nirvandil ()
Ответ на: комментарий от d-7

sse4_2

Вот и я об этом. В ядре опция CONFIG_CRYPTO_CRC32C_INTEL=m.

Вкомпилировал в ядро radeon, причем прям с прошивками, и аж потом initramfs. Работает.

А force_drivers+=«radeon» не работает, если модулем? Я тоже, когда настраивал, долго мучился, но мне помогло, оно добавит опцию rd.driver.pre=radeon к initrd, чтобы он грузился по возможности раньше. И ShowDelay в plymouthd.conf я тоже не сразу подобрал - то не успевала картинка отрисоваться, то как-то поздновато начинала.

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

А force_drivers+=«radeon» не работает, если модулем?

Нет к сожалению. Вкомпилил в ядро в пару к radeon еще и amdgpu (его поддерживает дискретная карта amd hd8750m), на производительность это никак, к сожалению, не отразилось.

d-7 ()

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

Есть предчувствие что это systemd с его параллельной загрузкой, или фс btrfs.

На что стоит обратить внимание?

d-7 ()
Ответ на: комментарий от d-7

Нашел решение. Выкинул systemd из ядра, убрал его в конфигурации граба, и просто запихнул его только в рамдиск. Думаю запуск systemd шел рандомно, то с initramfs, то из ядра или граба или вообще все вместе, из-за этого плюмут стартовал рандомно и криво.

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