OS に切り替えた後に GRUB にビデオ モードを維持するように強制するにはどうすればよいですか?

OS に切り替えた後に GRUB にビデオ モードを維持するように強制するにはどうすればよいですか?

私はカスタム OS のブートローダーとして GRUB を使用しています。システムで自分でグラフィック モードにしなくても済むように、GRUB が自動的にグラフィック モードに入るようにしたいのですが、GRUB が OS に制御を渡す前に、ビデオ モードが 80x25 テキスト モードに戻されてしまいます。 を使ってみましたset gfxpayload=keepが、何も起こらないようです。私が選択したモード (set を使用gfxmode=1024x768x24) は、GRUB がアクティブな間は正常に動作しますが、OS のエントリ ポイントに制御を渡す前に、テキスト モードに戻ります。何か間違っているのでしょうか? 私の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 のソース コードを分析するのが 1 つの方法です (ファイルgrub_multiboot_set_console内の関数grub-2.00/grub-core/loader/multiboot.c)。

問題は、カーネルがmultiboot <filename>コマンドによってロードされ、Linux が (ほとんどの場合)linux <filename>コマンドによってロードされることです。マルチブート仕様では、優先ビデオ モードに関する情報がマルチブート ヘッダーに提供される必要があります。その情報が提供されない場合、GRUB はカーネルを起動する前にテキスト モードに戻り、gfxpayload変数を完全に無視します。

関連情報