
Ich verwende GRUB als Bootloader für mein benutzerdefiniertes Betriebssystem. Ich möchte, dass es für mich in den Grafikmodus wechselt, damit ich das nicht selbst in meinem System tun muss. Bevor GRUB jedoch die Steuerung an das Betriebssystem übergibt, wird der Videomodus wieder in den 80x25-Textmodus geändert. Ich habe versucht, zu verwenden, set gfxpayload=keep
aber es scheint nichts zu bewirken. Der von mir gewählte Modus (mit set gfxmode=1024x768x24
) funktioniert einwandfrei, solange GRUB noch aktiv ist, aber bevor die Steuerung an den Einstiegspunkt meines Betriebssystems übergeben wird, wechselt es zurück in den Textmodus. Mache ich etwas falsch? Und hier ist meine grub.cfg
Datei:
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
}
Antwort1
Problem gelöst. Wie Sawdust vorgeschlagen hat, wäre die Analyse des GRUB-Quellcodes eine Möglichkeit ( grub_multiboot_set_console
Funktion in grub-2.00/grub-core/loader/multiboot.c
Datei).
Das Problem war, dass mein Kernel per Befehl geladen wird multiboot <filename>
und Linux (in den meisten Fällen) per linux <filename>
Befehl geladen wird. Die Multiboot-Spezifikation erfordert, dass Informationen zum bevorzugten Videomodus im Multiboot-Header bereitgestellt werden. Wenn diese Informationen nicht bereitgestellt werden, wechselt GRUB vor dem Starten des Kernels zurück in den Textmodus und ignoriert die gfxpayload
Variable vollständig.