GRUB2 y kernel vga = parámetro

16

Según la documentación, el uso del vga=parámetro kernel está en desuso a partir de GRUB2. El hecho de que algunos núcleos más nuevos ya no parezcan admitirlo en ciertos adaptadores no es preocupante, ya que la tarjeta gráfica que tengo tiene entre siete y ocho años.

El problema ahora es que me gustaría usar un modo de texto de mayor resolución, como 80x50 en lugar de los caracteres predeterminados de 80x25. Al parecer, todos los gráficos (VBE / VESA) Modos están fuera de la cuestión para la tarjeta gráfica (ATI Rage XL) - la lista de los modos disponibles sólo muestra 0a través 6. 6es 80x60pero se ve horrible, así que me gustaría ir con 1(80x50).

He visto que 80x50 y 80x60 funcionan después de obtener la lista de modos disponibles cada vez que el modo predeterminado no era compatible (con el comentario predeterminado GRUB_TERMINAL=console) y se me solicitó que eligiera.

¿Cómo puedo configurar el modo, si se supone que no debo configurarlo en la línea de comando del núcleo y cada uso de GRUB_GFXMODE(con o sin vbemódulo de precarga ) y GRUB_GFXPAYLOAD_LINUX=keepfalla? Falla como en: ¿la pantalla permanece en blanco porque es un modo de gráficos no válido para la tarjeta que tengo en esta máquina?

Mi idea sería pasar nomodesetal kernel todavía, pero el gestor de arranque aún tendría que configurar el modo de gráficos. Y no puedo ver ninguna opción que no sea el vga=parámetro del kernel para hacerlo.

Nota: los comandos vbetesty videotesten la consola GRUB2 dejarán en blanco la pantalla y luego la pantalla cambiará al modo de suspensión después de afirmar que no hay entrada de video. vbeinfoy videoinfomuestra algunos modos disponibles distintos a los mencionados anteriormente, pero no se menciona dónde se debe configurar. Además, cuando paso vga=1(sin nomodeset) en la línea de comando del kernel, veo una advertencia muy breve acerca de que está en desuso, pero es demasiado largo para leerlo por completo, y la salida no aparece dmesg.

0xC0000022L
fuente
El vgaparámetro se aplica al núcleo, no a grub2. No importa cómo el grub2desarrollador esté tratando de hacer un complejo simple, todavía funciona mientras los núcleos entiendan este parámetro.
ajeh

Respuestas:

9

Tal vez sea obsoleto por grub2, sin embargo, aún debería funcionar y debe continuar funcionando. Funciona para mí usando grub2 y debian wheezy, así como rhel7.3 (confirmado 01-2017). Además, según la documentación oficial, no está en desuso:

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

Si el usuario ingresa la línea de comando proporcionada por el gestor de arranque, el usuario puede esperar que las siguientes opciones de línea de comando funcionen. Normalmente no deberían eliminarse de la línea de comando del kernel, aunque no todos sean significativos para el kernel.

vga = aquí es un número entero (en notación C, decimal, octal o hexadecimal) o una de las cadenas "normal" (que significa 0xFFFF), "ext" (que significa 0xFFFE) o "ask" (que significa 0xFFFD). Este valor debe ingresarse en el campo vid_mode, ya que lo usa el núcleo antes de analizar la línea de comando.

Y https://www.kernel.org/doc/Documentation/svga.txt le dirá todo lo que necesita saber. A continuación, algunos ejemplos de resoluciones que uso habitualmente:

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

Para obtener una lista de modos compatibles, use:

vga=ask

Para una pantalla de 1024 × 768x24 que encontré funciona en casi todos los sistemas y monitores que uso (esta vez en decimal y en hexadecimal):

vga=792
vga=0x318
aseq
fuente
1
Esto funciona para mí cuando edito /etc/default/grubagregando vga=792al valor existente deGRUB_CMDLINE_LINUX
Shashank Vyas
Una actualización de Ubuntu instaló hoy nuevas cosas de arranque de grub UEFI y propuso un cambio de línea de comando para agregar vga=currentjunto con cosas de volcado por caída. Rechacé los cambios, pero vine aquí preguntándome qué vga=currentsignificaba.
WinEunuuchs2Unix
2

El parámetro vga todavía es compatible con los comandos linux16 e initrd16, por lo que si cambia "linux" a "linux16" o "initrd" a "initrd16" puede obtener el comportamiento anterior. No estoy seguro de qué otros cambios causan, pero funcionó lo suficientemente bien para mí. :-)

Adam M.
fuente
1
Este es un gran consejo! Simplemente presione e para editar en grub2, luego navegue hacia abajo hasta donde dice linux y ponga 16 al final. Entonces puedes poner vga = ask al final de la línea. Si framebuffer todavía está habilitado en el kernel, probablemente cambiará rápidamente de texto VGA rápido a ese modo bastante pronto.
Alex Cannon