GRUB2 и ядро ​​vga = параметр

16

Согласно документации, использование vga=параметра ядра устарело с GRUB2. Тот факт, что некоторые новые ядра больше не поддерживают его на определенных адаптерах, не имеет значения, поскольку моей видеокарте уже семь-восемь лет.

Проблема в том, что я хотел бы использовать текстовый режим с более высоким разрешением, например, 80x50 вместо стандартных 80x25 символов. Видимо все графики (VBE / VESA) режимы из вопроса для этой видеокарты (ATI Rage XL) - список доступных режимов показывает только 0через 6. 6это , 80x60но выглядит ужасно, поэтому я хотел бы пойти с 1(80х50).

Я видел 80x50 и 80x60, работающие после получения списка доступных режимов, когда режим по умолчанию не поддерживался (с комментариями по умолчанию GRUB_TERMINAL=console), и мне было предложено выбрать.

Как я могу установить режим, если я не должен устанавливать его в командной строке ядра и при каждом использовании GRUB_GFXMODEvbeмодулем предварительной загрузки или без него ) и GRUB_GFXPAYLOAD_LINUX=keepсбой? Сбой как в: экран остается пустым, потому что это недопустимый графический режим для карты, установленной на этом аппарате?

Моя идея nomodesetсостояла бы в том, чтобы все же перейти к ядру, но тогда загрузчику все равно пришлось бы устанавливать графический режим. И я не вижу никаких параметров, кроме vga=параметра ядра для этого.

Примечание:vbetest и videotestкоманды на GRUB2 консоль на пустой экран , а затем экран переходит в спящий режим после того, как утверждают , нет видеовхода. vbeinfoи videoinfoпоказать несколько доступных режимов, кроме вышеупомянутых, но нет упоминания о том, где это должно быть установлено. Кроме того, при передаче vga=1(без nomodeset) в командной строке ядра я вижу очень краткое предупреждение о том, что оно устарело, но его слишком долго читать полностью - и вывод не появляется dmesg.

0xC0000022L
источник
vgaПараметр относится к ядру, а не grub2. Независимо от того, как grub2разработчик пытается сделать простой комплекс сложным, он все равно работает, пока ядра понимают этот параметр.
августа

Ответы:

9

Может быть, это не рекомендуется grub2, однако он все еще должен работать и должен продолжать работать. Это работает для меня, используя grub2 и debian wheezy, а также rhel7.3 (подтверждено 01-2017). Также согласно официальной документации это не считается устаревшим:

https://www.kernel.org/doc/Documentation/x86/boot.txt

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

vga = здесь это либо целое число (в нотации C, либо десятичное, восьмеричное или шестнадцатеричное), либо одна из строк «normal» (означает 0xFFFF), «ext» (означает 0xFFFE) или «ask» (означает 0xFFFD). Это значение должно быть введено в поле vid_mode, так как оно используется ядром перед анализом командной строки.

И https://www.kernel.org/doc/Documentation/svga.txt расскажет вам все, что вам нужно знать. Ниже приведены несколько примеров разрешений, которые я обычно использую:

vga=0x31b --> 1280x1024x32
vga=0x34d --> 1600x900x32
vga=0x31e --> 1600x1200x32

Чтобы получить список поддерживаемых режимов, используйте:

vga=ask

Для экрана размером 1024x768x24, который я нашел, работает практически на всех системах и мониторах, которые я использую (на этот раз в десятичном и шестнадцатеричном виде):

vga=792
vga=0x318
aseq
источник
1
Это работает для меня, когда я редактирую /etc/default/grub, добавляя vga=792к существующему значениюGRUB_CMDLINE_LINUX
Shashank Vyas
Сегодняшнее обновление Ubuntu установило новый загрузочный UEFI-загрузчик grub и предложило изменить командную строку, добавив vga=currentк нему аварийный дамп. Я отклонил изменения, но пришел сюда, задаваясь вопросом, что это vga=currentзначит.
WinEunuuchs2Unix
2

Параметр vga по-прежнему поддерживается командами linux16 и initrd16, поэтому, если вы измените «linux» на «linux16» или «initrd» на «initrd16», вы можете получить старое поведение. Я не уверен, какие другие изменения это вызывает, но это сработало достаточно хорошо для меня. :-)

Адам М.
источник
1
Это отличный совет! Просто нажмите e для редактирования в grub2, затем перейдите туда, где написано linux, и поставьте 16 в конце. Затем вы можете поставить vga = ask в конце строки. Если кадровый буфер все еще включен в ядре, он, вероятно, довольно скоро переключится с быстрого текста VGA на этот режим.
Алекс Кэннон