LINUX.ORG.RU

[arch] хочу визуально «бесшовную» загрузку

 


0

2

Заняться нечем и поэтому решил прилизать систему, отследил и удалил почти все ошибки, которые нашел в everything.log и решил наконец добиться чтобы от граба до рабочего стола не мелькал экран разрешениями и вообще все было красиво. Установил plymouth, настроил и столкнулся с несколькими проблемами:

1. После граба экран моргает разрешениями 2 раза, хотя в грабе 1920х1080 и в КМС радеон соответственно также. Нашел вероятного виновника «Console: colour VGA+ 80x25» при начале загрузки ядра, как избавится не знаю.

2. Plymouth в середине загрузки сбрасывается и появляется обратно текстовая консоль. Видимых причин для этого никаких не нашел. Где-то тут сбрасывается:

Thu Oct  6 22:28:42 2011: :: Starting UDev Daemon [BUSY] [DONE] 
Thu Oct  6 22:28:42 2011: :: Triggering UDev uevents [BUSY] [DONE] 
Thu Oct  6 22:28:42 2011: :: Loading User-specified Modules [BUSY] [FAIL] 
Thu Oct  6 22:28:42 2011: :: Waiting for UDev uevents to be processed [BUSY] [DONE]

//2 дня уже красноглазю с этим... поможите кто чем может

★★★★★

Последнее исправление: Loki13 (всего исправлений: 1)

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

anonymous
()

>1. После граба экран моргает разрешениями 2 раза, хотя в грабе 1920х1080 и в КМС радеон соответственно также. Нашел вероятного виновника «Console: colour VGA+ 80x25» при начале загрузки ядра, как избавится не знаю.

Вкомпилить драйверы на видео и всё, что нужно для них (AGP/PCIe/whatever) в ядро, по дефолту они идут модулями. Мне с r200 ещё приходилось вкомпиливать firmware, без этого KMS становился очень тормозным. Побочный эффект: увидишь пингвинов при загрузке.

2. Plymouth в середине загрузки сбрасывается и появляется обратно текстовая консоль. Видимых причин для этого никаких не нашел. Где-то тут сбрасывается:

Возможно, у тебя radeon-модуль сначала грузится из initrd, потом переинициализируется udev'ом. Если это так, то после первого шага вылечится (udev не настолько крут, чтобы вкомпиленный драйвер выгрузить из ядра).

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

Очень интересно, спасибо, сейчас буду пробовать.

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

Пля, еще и ядро не собрать.

Не подскажешь откуда сейчас можно исходники ядра взять? На kernel.org пустота и ветер гуляет

Побочный эффект: увидишь пингвинов при загрузке.

А разве пинвины не отдельным пунктом в конфиге ядра?

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

я так понимаю, «бесшовная» загрузка возможна только после выпиливания обеих.

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

> Это тот, что в арче? В арчбилдах которого прописаны линки на все тот же лежащий kernel.org?

Ты по своей же ссылке сходить не пробовал? Сайт работает.

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

> Я удивлен, что в треде до сих пор не отписали, что plymouth не нужен.

Это и так очевидно. :)

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

И что? Все по арчевики и настроил. Вторая проблема ладно, а первая к плимуту вообще не относится

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

>Я удивлен, что в треде до сих пор не отписали, что plymouth не нужен.

Да пусть без plymouth. Первая проблема все равно остается и экран промаргивает с граба на какое-то разрешение на 1.3секунды, а потом только включается КМС

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

Выходит 1920х1080 -> ? -> 1920x1080. (->) - это визуально моргает экран

Loki13 ★★★★★
() автор топика

Установил grub2. Конфиг практически дефолтный:

GRUB_DEFAULT=1
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch Linux"
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=/dev/sda2:lvgroup nomodeset quiet splash pci=nocrs"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable Hidden Menu, and optionally hide the timeout count
#GRUB_HIDDEN_TIMEOUT=5
#GRUB_HIDDEN_TIMEOUT_QUIET=true

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=1366x768

# Uncomment to allow the kernel use the same resolution used by grub
#GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter 
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx" 
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper 
# modes only.  Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-blue/black"
GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/boot/grub/background.png"
#GRUB_THEME="/path/to/gfxtheme"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"
Отключил KMS, разрешение фреймбуфера установил с помощью uvesavb 1366x768-32.

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

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

До кучи /etc/mkinitcpio.conf:

# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES="piix ide_disk reiserfs"
MODULES="powernow-k8"

# BINARIES
# This setting includes, into the CPIO image, and additional
# binaries a given user may wish.  This is run first, so may
# be used to override the actual binaries used in a given hook.
# (Existing files are NOT overwritten is already added)
# BINARIES are dependancy parsed, so you may safely ignore libraries
BINARIES=""

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in anyway.  This is useful for config files.
# Some users may wish to include modprobe.conf for custom module options,
# like so:
#    FILES="/etc/modprobe.conf"
FILES=""

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
#    This setup specifies all modules in the MODULES setting above.
#    No raid, lvm2, or encrypted root is needed.
#    HOOKS="base"
#
#    This setup will autodetect all modules for your system and should
#    work as a sane default
#    HOOKS="base udev autodetect pata scsi sata filesystems"
#
#    This is identical to the above, except the old ide subsystem is
#    used for IDE devices instead of the new pata subsystem.
#    HOOKS="base udev autodetect ide scsi sata filesystems"
#
#    This setup will generate a 'full' image which supports most systems.
#    No autodetection is done.
#    HOOKS="base udev pata scsi sata usb filesystems"
#
#    This setup assembles an pata raid array with an encrypted root FS.
#    Note: See 'mkinitcpio -H raid' for more information on raid devices.
#    HOOKS="base udev pata raid encrypt filesystems"
#
#    This setup loads an lvm2 volume group on a usb device.
#    HOOKS="base udev usb lvm2 filesystems"
HOOKS="base udev v86d plymouth autodetect plymouth-encrypt lvm2 sata filesystems"

# COMPRESSION
# Use this to compress the initramfs image. With kernels earlier than
# 2.6.30, only gzip is supported, which is also the default. Newer kernels
# support gzip, bzip2 and lzma.
COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"

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

Тут ключевое слово «Отключил KMS». Не хотелось бы без KMS жить.

>экран черный с мигающим курсором где-то 1.5 секунды -> plymouth.

У меня также, но за эти 1.5 секунды(1.3 по dmesg) экран моргает 2 раза

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

А вообще спасибо. Попробую эти настройки grub с KMS попробовать. Особенно GRUB_GFXPAYLOAD_LINUX=keep заинтересовало

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

сосущие гентари такие сосущие.

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

Об этом думал, но это применительно к проблеме №2. Я так понимаю проблеме с двойной сменой разрешения после граба это не поможет

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

>Я так понимаю проблеме с двойной сменой разрешения после граба это не поможет

если в бивисе видеокарты не вшито родное разрешение, то ничего не поможет

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

Разрешение вшито, KMS работает, в грабе auto выставляет корректное разрешение(1920х1080), а между ними на какое-то другое переключается на секунду. По dmesg мне показалось что вот тут «Console: colour VGA+ 80x25» на 0.00 секунде, т.е. сразу после граба. А радеон проинициализировался только на 1.3 секунде

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

Вот это «loglevel=3 logo.nologo console=tty1» скорее всего от второй проблемы поможет.

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

Ну в стартовом посте же написано 1. и 2. я их так и продолжаю в обсуждении называть

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

>Почитай ман. Пропиши разрешение буквами.

Вчера пробовал писать и video=radeondrmfb:1920x1080-32@60 и video=fbcon:1920x1080 никакой разницы

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

Разрешение картинки ты выставляешь в конфиге самой темы, а в строку к ядре пишешь например вот так: vga=869

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

Для KMS по идее вообще не надо ничего ядру передавать, т.к. модуль radeon сам знает что выставлять. Пока что больше всего понравился вариант вкомпилять radeon kms в ядро вместо загрузки модулем, сегодня буду пробовать.

Loki13 ★★★★★
() автор топика

Сижу собираю linux 3.0.4 с опциями acpi_video=y nouveau=y

drivers/built-in.o: In function `nouveau_acpi_edid':
(.text+0x163a7d): undefined reference to `acpi_video_get_edid'
make: *** [.tmp_vmlinux1] Error 1

3.1.0_rc9 тоже самое.

bhfq ★★★★★
()

Thu Oct 6 22:28:42 2011: :: Starting UDev Daemon [BUSY] [DONE]
Thu Oct 6 22:28:42 2011: :: Triggering UDev uevents [BUSY] [DONE]
Thu Oct 6 22:28:42 2011: :: Loading User-specified Modules [BUSY] [FAIL]
Thu Oct 6 22:28:42 2011: :: Waiting for UDev uevents to be processed [BUSY] [DONE]

Это нормально. Уберёшь этот FAIL - будет мигать только один раз.

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

>Уберёшь этот FAIL - будет мигать только один раз.

Этот фэйл уже на 4ой секунде примерно, а мигает от 0.00сек до 1.3сек. Из за этого фэйла(мне так кажется) plymouth слетает.
А как понять что это за фэйл? Про него кроме как в /var/log/boot нигде ничего нет. dmesg почти девственен, ошибок в нем в смысле нет

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

>3.1.0_rc9 тоже самое.

точно название не скажу, но там есть еще опция разрешающая KMS_EDID или DRI_EDID как-то так

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

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

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

>ядро пытается хоть как-то инициализировать вывод, пока нет нормального драйвера

Вот этот момент самый интересный. Тут выходит надо или добиться более ранней инициализации модуля radeon(возможно поможет вкомпиляние в ядро, хотя не уверен, т.к. он же и так в initrd) или отключение инициализации пока он на 1.3сек не загрузится(тут даже мыслей нет как это сделать)

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

>Ты уже собрал? Можно конфиг для сравнения?

Через часа 1.5 буду собирать. На работе еще, а собирать дома буду

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

>он же и так в initrd

Который нужно распаковать, найти init, запустить его и подождать, пока radeon загрузится им либо порождённым им процессом… Хотя я до конца не помню, кто в initrd отвечает за модули.

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

Я не совсем понимаю начало загрузки после нажатия Ф10 в грабе... Кто раньше доберется до исполнения модуль radeon в MODULES mkinitcpio или вкомпиленный в ядро?

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

Мне казалось что ramdisk распаковывается еще до начала загрузки ядра. Хотя может я и ошибаюсь

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

Нет, доказательство — в конфиге ядра. Именно там выбирают поддерживаемые типы сжатия initrd/initcpio. grub/lilo/extlinux/более экзотичный загрузчик могут лишь избавить ядро от необходимости читать initrd с диска, распаковывать и запускать init за ядро они не будут.

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