Зменшення комутації режиму відеозапису під час завантаження Linux


12

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

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

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

GRUB 1.98 + 20100706, ядро ​​2.6.32.15 за допомогою драйверів відео Nouveau. Distro - Debian нестабільний. Будь ласка, жодних відповідей, які передбачають перекомпіляцію чого-небудь або згуртування комбінацій ядра / драйвера, що кровоточать, я не переймаюся цим питанням, щоб перейти до таких проблем.

EDIT: Tobu пропонує встановити 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
Для будь-якої заданої роздільної здатності пікселя режим відео може бути графічним (кожен окремий піксель адресований) або текстовим (імітує термінал комірки символів із старих днів). Що я мав на увазі під «графічністю», це те, що четвертий перемикач режиму відео, який я перераховував, переходить від тексту до графічного без зміни роздільної здатності пікселів.
zwol

Відповіді:


2

Плімут розроблений, щоб допомогти в цьому:

Ідея полягає в тому, що на початку процесу завантаження встановлюється нативний режим для комп'ютера, plymouth використовує цей режим, і цей режим залишається протягом усього процесу завантаження до і після запуску X. В ідеалі мета - позбутися від усіх мерехтінь під час запуску.

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


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

Дякую! Це було частиною того, що я хочу, але мав негативні побічні ефекти, які зробили його гіршим, ніж статус-кво. Я додав подробиці до питання.
zwol

0

Ви можете мати активність KMS відразу після GRUB, і це зазвичай буде включати параметр до командного рядка ядра, яке його вмикає. Для Intel це i910.modeset=1, але далі вам доведеться перевірити документи розповсюдження щодо цього.


KMS активний з моменту завантаження драйвера nouveau, я вважаю, але це відбувається лише під час початкового сканування пристрою через деякий час після запуску простору користувача. Я трохи заплутався з параметрами командного рядка video = і vga =, але не пощастило.
zwol

Ви можете сказати, що він завантажиться до цього часу за допомогою цього методу
Daenyth

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

У цьому випадку потрібно використовувати завантажувач, здатний KMS. Я думаю, grub2 може це зробити, але якщо цього не відбувається, то вам зовсім не пощастить.
Daenyth

grub2 встановлює режим і залишає його встановленим (саме це GRUB_GFXPAYLOAD_LINUX = продовжуйте виконувати), але це якось недостатньо добре для nouveau та / або підсистеми fb, отже, повідомлення про помилки "Conflicting fb hw use". До речі, саме таку поведінку з i915 на моєму ноутбуці.
zwol
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.