У меня вместо загрузочного экрана красивого, серый фон и три квадратика которые даже не мигают, переодически во время загрузки вообще в консоль выпадает. А хочется нормальную графическую загрузку. Помогите, где че логи посмотреть?
Tumbleweed у меня.
Добавлено: 26.05.2020 16:02:48
https://www.reddit.com/r/openSUSE/comments/cjbxxt/silent_boot_removing_text_before_plymouth/
https://www.reddit.com/r/openSUSE/comments/31mlvu/plymouth_is_broken_in_tumbleweed/
Вот тут есть чето полезное, но во первых нихрена не понятно, во вторых не факт что подойдет к моей конфигурации.
Объясните чо делать пжлст.
Plymouth три квадратика
SODIX, смотреть "железо". Автор Plymouth объясняет, что подобное происходит из-за того, что отсуствует видеодрайвер в модуле ядра. Либо он слишком новый, либо безнадёжно протух.
И что, как посмотреть?
И что, как посмотреть?
[console]
# lspci
[/console]
для начала. Дальше по обстановке.
"Три квадратика" - это режим плимута "стандартный текстовый сплеш", если прописанная в конфиге тема по каким либо причинам не загружается и выдаёт ошибку, то плимут переходит в текстовый режим.
В любом раскладе это можно решить, тут главное внимательность и строгая последовательность в нужных вещах.
главная засада в таких случаях это корректный образ initramfs. Многие дебо-бубунто-сюзевцы поступают странно - они пишут наколенные скрипты-генераторы этого самого образа, которые как правило всегда(за небольшим исключением) работают криво и лапотно. От того и все проблемы. Есть такая штука - dracut, который собственно и является "родным" костылём плимута, т.к. написан именно под него, там всё просто с настройками.
[console]> sudo lspci
[sudo] пароль для root:
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 05)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b5)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5)
00:1c.6 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 7 (rev b5)
00:1c.7 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 8 (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation P67 Express Chipset LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port Desktop SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
01:00.0 PCI bridge: NVIDIA Corporation NF200 PCIe 2.0 switch (rev a3)
02:00.0 PCI bridge: NVIDIA Corporation NF200 PCIe 2.0 switch (rev a3)
02:02.0 PCI bridge: NVIDIA Corporation NF200 PCIe 2.0 switch (rev a3)
04:00.0 VGA compatible controller: NVIDIA Corporation GF106 [GeForce GTS 450] (rev a1)
04:00.1 Audio device: NVIDIA Corporation GF106 High Definition Audio Controller (rev a1)
06:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6315 Series Firewire Controller (rev 01)
07:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03)
08:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
09:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo (rev 11)[/console]
PS. Попробовал совет со второй ссылки первого поста, создал файл и вставил туда название nvidia, но не помогло.
GeForce GTS 450
старенькая. очень. очень...
Дело в том, что её поддержка выкинута из современных дров, а это сильно бьёт по вообще возможности завести плимут. В ней кастрированный оперативный буфер(ака биос) и вроде как отрезана возможность по горячей перезагрузке(крайне важная фича, которая позволяет на лету сбросить кеш и по новой инициировать драйвер, но конкретно по этой карте врать не буду, возможно и не так всё страшно).
В общем схема такова(сразу предупрежу, может всё зря) :
- сперва нужно выяснить, получает ли ядро EDID от моника.
Делается примерно так : https://kodi.wiki/view/Creating_and_using_edid.bin_via_xorg.conf
Нужные проги должны быть в репах.
Если edid нормально сгенерился(смотри по ссылке как) тогда можно пробовать его подсунуть в initramfs плимуту.
Ставь dracut(в репах должен быть, эта популярная плюшка).
Поправь его конфиг примерно так:
cat /etc/dracut.conf :
[console]
# PUT YOUR CONFIG IN separate files
# in /etc/dracut.conf.d named "<name>.conf"
# SEE man dracut.conf(5) for options
hostonly="yes"
use_fstab="yes"
force_drivers+="nvidia nvidia_drm nvidia_modeset drm_kms_helper drm"
dracutmodules+="plymouth gensplash bash kernel-modules rootfs-block udev-rules usrmount base fs-lib shutdown"
add_device+="/dev/dri/card0"
install_items+="/lib/firmware/edid/1920x1080_60.00.bin"
[/console]
последняя строка это что? Во время загрузки динамического образа, могут потребоваться некоторые куски от системных инструментов, например я не пользую системдэ, но плимуту нужны пруфы! и он опрашивает состояния, вместо системдэ я ему подсовываю вот это /lib/elogind/elogind-uaccess-command(специальная заглушка от потериговских поделий), а в твоём случае может понадобиться сам системдэ, при запуске можно подловить, на что ругается плимут, и прописать нужный модуль, разделитель в строке просто пробел, плюс готовый edid моника, который нужно положить по указанному пути, у меня строка выглядит так :
install_items+="/lib/firmware/edid/1920x1080_60.00.bin /lib/elogind/elogind-uaccess-command"
add_device+="/dev/dri/card0" - тут вопрос только как твое ядро видит карту, можно подглядеть в выхлопе dmesg, или в том же lspci с опцией -v .
- после генеришь новый initramfs , предварительно сохранив старый(если он есть) на случай если не проканает.
[console]
# dracut -f
[/console]
- после, обязательно нужно поправить конфиг grub'а! там вариантов как грязи, но для проверки можно и вручную, просто прописав новый пункт.
Вот пример что было:
[console]
menuentry 'Phoniex© GNU/Linux' --class phoniex__ --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4b3ca340-4649-45c3-8f27-74cd597e64db' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd2,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd2,msdos2 --hint-efi=hd2,msdos2 --hint-baremetal=ahci2,msdos2 4b3ca340-4649-45c3-8f27-74cd597e64db
else
search --no-floppy --fs-uuid --set=root 4b3ca340-4649-45c3-8f27-74cd597e64db
fi
echo 'Loading Linux 5.5.9 ...'
linux /boot/vmlinuz-5.5.9 root=/dev/sdc2 ro video=VGA-0:1920x1080-24@60 drm.edid_firmware=VGA-0:/lib/firmware/edid/1920x1080_60.00.bin nvidia-drm.modeset=1 quiet splash acpi=noirq
}
[/console]
просто этот же фрагмент тупо копипастим следующей строкой, немного меняем и добавляем:
menuentry 'Phoniex© GNU/Linux' --class phoniex__ --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4b3ca340-4649-45c3-8f27-74cd597e64db' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd2,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd2,msdos2 --hint-efi=hd2,msdos2 --hint-baremetal=ahci2,msdos2 4b3ca340-4649-45c3-8f27-74cd597e64db
else
search --no-floppy --fs-uuid --set=root 4b3ca340-4649-45c3-8f27-74cd597e64db
fi
echo 'Loading Linux 5.5.9 ...'
linux /boot/vmlinuz-5.5.9 root=/dev/sdc2 ro video=VGA-0:1920x1080-24@60 drm.edid_firmware=VGA-0:/lib/firmware/edid/1920x1080_60.00.bin nvidia-drm.modeset=1 quiet splash acpi=noirq
}
menuentry 'Phoniex© GNU/Linux Whith Plymouth!' --class phoniex__ --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4b3ca340-4649-45c3-8f27-74cd597e64db' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd2,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd2,msdos2 --hint-efi=hd2,msdos2 --hint-baremetal=ahci2,msdos2 4b3ca340-4649-45c3-8f27-74cd597e64db
else
search --no-floppy --fs-uuid --set=root 4b3ca340-4649-45c3-8f27-74cd597e64db
fi
echo 'Loading Linux 5.5.9 ...'
linux /boot/vmlinuz-5.5.9 root=/dev/sdc2 ro video=VGA-0:1920x1080-24@60 drm.edid_firmware=VGA-0:/lib/firmware/edid/1920x1080_60.00.bin nvidia-drm.modeset=1 quiet splash acpi=noirq
initrd /boot/initrd.gz
}
https://fedoraproject.org/wiki/Dracut или http://www.bog.pp.ru/work/dracut.html как работает dracut.
Заметь, у меня в строке ядра прописан режим драйвера и указан splash, это нужно для того, чтобы карта была сразу инициирована в нужном режиме, иначе после подгрузки драйвера невидии кеш будет сброшен и плимут получит false после чего переключится в текстовый режим. Сам dracut позволяет задавать любые имена для образа initrd.gz , поэтому прописывай фактическое имя своё.Это всё строго индивидуальная херня, начинай по малу, с самого простого, постепенно добавляя сущности, пока не заработает...
Добавлено: 27.05.2020 04:12:37
отдельно как вообще работает плимут.
Первоначальный загрузчик(grub? lilo? ...) загружает на исполнение динамический образ системы в виртуальную память(initrd.gz), который, по сути, выполняет ровно то же самое что и при обычной(без initrd.gz) загрузке, но ! в самом образе содержится самостоятельный набор необходимых системных инструментов, в том числе и плимут, для того, чтобы была возможность ими пользоваться за долго до монтирования файловой системы. Если в момент распаковки образа в оперативную память плимут не обнаружит чего-то для своей работы, то он автоматически переходит в текстовый режим. Поэтому правильное создание образа initrd.gz залог правильной работы плимута.
...ПС\\\
по мне так это всё костыльная блажь, которая только удлиняет загрузку и засирает память, в своё время была куда более полезная и функциональная вещь fbsplash от генты, но давно почила в бозе, а плимут её кастрированная жалкая пародия... Всё умирает, все умирают, и мы умрём,.. но это не повод напиваться и страдать.
Я нихрена не понел, 10 лет за линуксом не сидел. Понял только что походу придется забить на эту идею. Конфиг я могу отредактировать, но не более.
Интуитивно я думаю есть более простой способ, ведь надо сначала выявить хренли он валится в текстовый режим. Хотя года так два назад, Leap на этой же машине показывал нормальный графический бут.
Достаточно понять, что не следует использовать Nvidia.
Когда-то все наоборот было. Я из тех времен. Но это вообще дело вкуса, я в этой теме пытаюсь загрузку графическую починить в одном популярном линуксе.
Всё меняется.
Но это не дело вкуса, а вопрос открытых драйверов и поддерживаемом железе.
Я ничего не понел, 10 лет за линуксом не сидел. Понял только что походу придется забить на эту идею. Конфиг я могу отредактировать, но не более.
...ты не поверишь! Но от тебя только и требуется - отредактировать конфиг(ну может два-три).
Ещё раз - «почему он валится в текстовый режим»
При старте, первое что делает плимут - это запрашивает текущий видеодрайвер edid монитора...
Разбираем по ниточкам сказанное выше:
«текущий видеодрайвер» - драйвер видео который опознан ведром и уже загруженный! Ему (плимуту) по барабану что это будет за драйвер, амуде, штеуд, веса(ювеса) нуво и невидия... главное и единственное требование, чтобы он работал в штатном режиме, т.е. показывал картинку и присутствовал как устройство в дереве /dev/dri/***(варианты, ядра разные бывают).
Если это условие соблюдено, тогда плимут, уже у видеодрайвера, запрашивает текущее валидное разрешение экрана(читай что такое edid, там выше по ссылке).
Когда разрешение получено, он (плимут!!! афтунг!! нихт шиссе!!!) ищет согласно а) своего текущего конфига /etc/plymouth/plymouthd.conf ... б) своего конфига по умолчанию !!! /usr/share/plymouth/plymouthd.defaults ... файлы и пути, указанные в этих конфигах.
Так вот если в этой дорожной карте, вдруг выпадает нечет(false) , то плимут включает текстовый режим и ... повторяет всю эту процедуру снова! если при этом опять что-то не контачит, тогда он возвращает -1 и аварийно завершает работу(чёрный экран).
Твоя задача, установить место false, учитывая условие старинная невидия, можно не искать других причин, это она.
Остаётся простое решение - спросить гугель : «гугол гидеянахажус»(шютко тупой) , запрос примерно такой : "opensuse nvidia proprietary plymouth"
после чего, просто перечитать до десятка вариантов одного и того же решения, что бы понять, какой тебе подойдет больше всего...
Я не могу тебе рассказать за зюзю, я линуксы собираю по старинке сам, поэтому мои советы бесполезны в 99% случаев *ROFL*
Интуитивно я думаю есть более простой способ, ведь надо сначала выявить хренли он валится в текстовый режим.
Иногда лучше вообще отключить плимут или установить нейтральную тему вроде бегущей снизу строки (plymouth-theme-tribar). Или поставить что-то "резиновое", малозависящее от разрешения экрана до загрузки его реальных параметров. Например, для openSuse есть вот такой "Кот": https://github.com/krishnan793/PlymouthTheme-Cat (Tested on openSUSE Tumbleweed); там есть инструкция + коты всегда актуальны. Плимут нормально работает с бесплатными драйверами, поскольку приколочен гвоздями.
Насчёт проприетарщины... Здесь про NVidia и плимут несколько строк: https://help.ubuntu.ru/wiki/plymouth
Цитата:
NVIDIA отключили поддержку фреймбуфера для всех видеокарт NVIDIA во избежание проблем со стабильностью. Из-за этого Plymouth может не отображаться или отображаться не правильно. Для исправления этого необходимо в файле /usr/share/nvidia-current-updates/nvidia ваш драйвер закомментировать строку v10ded.*sv.*sd.*bc03sc.*:.. и т.д. и т.п.
Смена плимута тянет за собой пересборку ядра и то, что выбранная Вами тема останется по умолчанию после запланированного обновления - никто не гарантирует. В Mageia, например, она может откатиться опять на "квадратики" (тема text), либо вообще подцепить любую другую из /usr/share/plymouth/theme. Замена плимута в присутствии проприетарного добра - это как раз тот случай, когда для того, чтобы отвернуть нужный болт, сначала нужно демонтировать весь двигатель. Уважаемый gramozeka это любезно продемонстрировал.
Сделал. Сам. Без лишней мороки отредактировав пару конфигов и включив DKMS по хинтам с дебиан вики и реддита. Просто я хотел быстро. А заняло три дня. Ну ладно чо.
Добавлено: 27.05.2020 17:18:40
Правда перед запуском графической загрузки, и до запуска иксов все-равно консоль видно, пока не нашел как это поправить. Может знает кто?
Добавлено: 27.05.2020 21:42:58
Помогите с бесшовной загрузкой, а?
Помогите с бесшовной загрузкой, а?
судя по :
Я ничего не понел, 10 лет за линуксом не сидел.
артель «Напрасный Труд»...
Для начала тебе надо бы мало-мало подтянуть теорию с практикой.
"Бесшовная загрузка", это как раз :
Поэтому правильное создание образа initrd.gz залог правильной работы плимута.
из меня учитель как из говна пуля, но я пытался объяснить тебе что требуется для этого. Раз ты видишь консоль, значит плимут твой стартует из уже примонтированной системы, а для того, чтоб вообще не появлялась консоль, он(плимут) должен стартовать из initramfs-образа, беря от туда же и блоб, и картинку, и все нужные ему вещи.
По сути, если залезть под капот всего процесса, то можно увидеть, что твоя система при старте загружается дважды - первый раз из динамического образа, а второй уже из физического носителя. В итоге ты расходуешь в никуда и время самой загрузки, и оперативную память, и видео-память, и ресурс процессора, что вызывает трудно локализуемые глюки и рандомные подвисания. И да, штатные системные утилки тебе этого не покажут, разве что висящий в памяти без толку процесс plymouthd...
Ищи как правильно в зюзе создать образ initramfs, найдешь и ответ на свой вопрос.