¿Cómo fuerzo a GRUB a mantener el modo de video después de cambiar al sistema operativo?

2

Uso GRUB como gestor de arranque para mi sistema operativo personalizado. Quiero que ingrese en el modo gráfico para que no tenga que hacerlo yo mismo en mi sistema. Sin embargo, antes de que GRUB pase el control al sistema operativo, el modo de video vuelve a cambiar al modo de texto 80x25. He intentado usar set gfxpayload=keep pero no parece hacer nada. El modo que elegí (usando set gfxmode=1024x768x24 ) funciona bien mientras GRUB todavía está activo, pero antes de pasar el control al punto de entrada de mi SO vuelve al modo de texto ¿Estoy haciendo algo mal? Y aqui esta mi grub.cfg expediente:

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
}
pvc
fuente
¿Qué quiere decir con "... mi sistema operativo personalizado?" ¿Un sistema operativo totalmente personalizado basado en Linux (supongo)? ¿O algo mas?
JakeGould
No, no está basado en Linux (ni compatible con Linux). Es un hobby escrito por mí desde cero. Pero eso no debería hacer ninguna diferencia.
pvc
GRUB es de código abierto, por lo que si puede escribir su propio sistema operativo, debería poder analizar el código fuente de GRUB para determinar dónde se realiza el cambio de modo de video.
sawdust
Tendré que hacerlo, si no encuentro una solución mejor, pero eso probablemente será un desastre. Quiero decir ... tiene que haber una manera mejor / correcta de hacer eso.
pvc

Respuestas:

1

Problema resuelto. Como lo sugirió el aserrín, analizar el código fuente de GRUB fue una manera de avanzar ( grub_multiboot_set_console funcionar en grub-2.00/grub-core/loader/multiboot.c expediente).

El problema fue que mi kernel está cargado por multiboot <filename> El comando y linux se cargan (en la mayoría de los casos) por linux <filename> mando. La especificación de inicio múltiple requiere que la información sobre el modo de video preferido se proporcione en el encabezado de inicio múltiple. Si no se proporciona esa información, GRUB vuelve al modo de texto antes de iniciar el núcleo e ignora por completo gfxpayload variable.

pvc
fuente