Уменьшение переключения режима видео во время загрузки Linux


12

Когда я загружаю свой настольный компьютер, на котором установлен только Linux, режим видео и / или шрифт консоли переключаются четыре раза:

  • Когда GRUB запускается, он переключается с текста размером 80x25 в графический режим, поэтому он может нарисовать красивый фон за своим меню;
  • GRUB затем возвращается к тексту 80x25 после того, как я что-то выбрал из меню;
  • Когда драйвер KMS для моей видеокарты загружается, он переключается в текстовый режим с гораздо более высоким разрешением (я не знаю, аппаратный ли это текстовый режим или нет);
  • Наконец X запускается и идет графика и остается таким же. Я думаю, что этот последний переключатель не меняет разрешение режима видео, только графичность.

Я бы хотел избавиться от как можно большего количества переключателей режимов. В идеале, когда GRUB вступает во владение BIOS, он переходит непосредственно в тот же текстовый режим высокого разрешения, который выбирает драйвер KMS, и дисплей будет оставаться в этом режиме, пока X не запустится и не отобразит графику. У меня сложилось впечатление, что это возможно путем перебора командной строки ядра и / или параметров загрузки консольного модуля GRUB, но я не знаю деталей.

GRUB 1.98 + 20100706, ядро ​​2.6.32.15 с использованием видеодрайверов Nouveau. Дистро нестабильно в Debian. Пожалуйста, не отвечайте на вопросы, связанные с перекомпиляцией чего-либо или совмещением новейших комбинаций ядра и драйвера. Мне все равно, что это может привести к таким неприятностям.

РЕДАКТИРОВАТЬ: Тобу предлагает установить GRUB_GFXMODEполное разрешение экрана монитора, и GRUB_GFXPAYLOAD_LINUX=keepчтобы избежать переключения режима после того, как меню исчезнет. Это делает часть того, что я хочу, но в итоге получается хуже. После меню переключателя режимов нет, но перерисовка экрана по-прежнему мучительно медленная (вероятно, мне следует просто отказаться от gfxmode GRUB, он слишком медленный при 1920x1200). Более серьезно, теперь есть двойной режим переключения при загрузке nouveaufb, а также забавные сообщения об ошибках вdmesg

[    5.923798] [drm] nouveau 0000:02:00.0: allocated 1920x1200 fb: 0x40250000, bo ffff8801ba5f4600
[    5.923802] fb: conflicting fb hw usage nouveaufb vs EFI VGA - removing generic driver
[    5.923821] [drm] nouveau 0000:02:00.0: PFIFO_INTR 0x00000010 - Ch 1
("PFIFO_INTR" message repeats 400+ times)
[    5.925609] Console: switching to colour dummy device 80x25
[    5.925802] Console: switching to colour frame buffer device 240x75

Мне любопытно, что такое "графичность".
Приостановлено до дальнейшего уведомления.

1
Для любого данного разрешения пикселя режим видео может быть графическим (каждый отдельный пиксель является адресуемым) или текстовым (имитирует терминал символьной ячейки из старых дней). Под «графичностью» я понимал, что четвертый переключатель режимов видео, который я перечислил, переходит от текстового к графическому без изменения разрешения пикселей, я думаю, в любом случае.
Звол

Ответы:


2

Плимут разработан, чтобы помочь в этом отношении:

Идея состоит в том, что на начальном этапе процесса загрузки устанавливается собственный режим для компьютера, этот режим используется plymouth, и этот режим остается в течение всего процесса загрузки вплоть до запуска X. В идеале цель состоит в том, чтобы избавиться от всех мерцаний во время запуска.

Поскольку у вас установлена ​​только одна ОС, отключение изменений разрешения grub (без фоновой графики) и даже самого меню, оставив его 80x25, не изменится, пока Плимут не вступит во владение.


1

Проверьте ваше разрешение и глубину цвета:

xrandr -q
xdpyinfo | grep 'depth of root window' | awk '{ print $5 }'

Установите GRUB_GFXMODE=<width>x<height>x<depth>в /etc/default/grubтак , что разрешение меню личинки совпадает с разрешением KMS.

Возможно также добавьте GRUB_GFXPAYLOAD_LINUX=keepзначения по умолчанию, чтобы после меню grub и перед настройкой KMS не было промежуточного шага. X11 должен сохранять то, что использует KMS, то есть переключателя X11 не нужно беспокоиться.

Примените свои изменения с

sudo update-grub

Спасибо! Это сделало часть того, что я хочу, но имело негативные побочные эффекты, которые сделали его хуже, чем статус-кво. Я добавил детали к вопросу.
Звол

0

Вы можете активировать KMS сразу после GRUB, и это обычно включает параметр в командной строке ядра, который включает его. Для intel это так i910.modeset=1, но помимо этого вам придется проверить документы вашего дистрибутива по этому вопросу.


Я полагаю, что KMS активен с момента загрузки драйвера nouveau, но это происходит только во время первоначального сканирования устройства udev, через некоторое время после запуска пространства пользователя. Я немного повозился с опциями video = и vga = командной строки, но мне не повезло.
Звол

Вы можете сказать, чтобы загрузить до этого с помощью этого метода
Daenyth

Если не считать перестройки ядра с nouveauскомпилированным модулем (что является слишком большой проблемой), лучшее, что я смог сделать, - это придерживаться nouveau /etc/initramfs-tools/modules... но все, что он делает, это перемещает переключатель двойного режима раньше, изнутри "Ожидание / dev для заполнения "сразу после" Загрузка, пожалуйста, подождите ... "Цель состоит в том, чтобы исключить переключатели режима.
Звол

В этом случае вам нужно использовать загрузчик, способный работать с KMS. Я думаю, что grub2 может сделать это, но если это не так, то вам совершенно не повезло.
Дейнит

grub2 действительно устанавливает режим и оставляет его установленным (это то, что GRUB_GFXPAYLOAD_LINUX = keep завершает), но этого как-то недостаточно для nouveau и / или подсистемы fb, отсюда и сообщения об ошибках «Conflicting fb hw using». Кстати, точно такое же поведение с i915 на моем ноутбуке.
Звол
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.