Как заставить GRUB сохранять видеорежим после переключения на ОС?

Как заставить GRUB сохранять видеорежим после переключения на ОС?

Я использую GRUB в качестве загрузчика для своей пользовательской ОС. Я хочу, чтобы он переходил в графический режим для меня, чтобы мне не приходилось делать это самому в своей системе. Однако, прежде чем GRUB передаст управление ОС, видеорежим меняется обратно на текстовый режим 80x25. Я пробовал использовать , set gfxpayload=keepно, похоже, это ничего не дает. Режим, который я выбрал (используя set gfxmode=1024x768x24), работает нормально, пока GRUB все еще активен, но перед передачей управления точке входа моей ОС он возвращается в текстовый режим. Я что-то делаю не так? А вот мой grub.cfgфайл:

set root=(hd0,1)

set gfxmode=1024x768x24
set gfxpayload=keep

insmod vbe
insmod vga
insmod video_cirrus
insmod gfxterm

set menu_color_normal=red/blue
set menu_color_highlight=green/blue

loadfont /boot/grub/fonts/unicode.pf2

terminal_input console
terminal_output gfxterm

set timeout=1
set default=0

menuentry "Trolololo" {
    multiboot /kernel
    boot
}

решение1

Проблема решена. Как и предполагал sawdust, анализ исходного кода GRUB был выходом ( grub_multiboot_set_consoleфункция в grub-2.00/grub-core/loader/multiboot.cфайле).

Проблема была в том, что мое ядро ​​загружается multiboot <filename>командой, а linux загружается (в большинстве случаев) командой linux <filename>. Спецификация мультизагрузки требует, чтобы информация о предпочтительном видеорежиме была указана в заголовке мультизагрузки. Если эта информация не указана, GRUB переключается обратно в текстовый режим перед запуском ядра и полностью игнорирует gfxpayloadпеременную.

Связанный контент