Cómo configurar la resolución en las consolas de texto (solucionar problemas cuando falla cualquier vga = ... `)

29

Es una forma común de configurar la resolución de las consolas de texto (que generalmente están disponibles mediante Ctrl-Alt-F1 a través de Ctrl-Alt-F6) mediante el uso de un vga=...parámetro del núcleo. Estoy usando Ubuntu 10.04 Lucid, la salida de uname -aes:

Linux  2.6.32-33-generic #70-Ubuntu SMP Thu Jul 7 21:13:52 UTC 2011 x86_64 GNU/Linux

Para identificar los modos disponibles, uso los sudo hwinfo --framebufferinformes que:

02: None 00.0: 11001 VESA Framebuffer                            
  [Created at bios.464]  
  Unique ID: rdCR.R1b4duaxSqA  
  Hardware Class: framebuffer  
  Model: "NVIDIA G73 Board - p456h1  "  
  Vendor: "NVIDIA Corporation"  
  Device: "G73 Board - p456h1  "  
  SubVendor: "NVIDIA"  
  SubDevice:   
  Revision: "Chip Rev"  
  Memory Size: 256 MB  
  Memory Range: 0xc0000000-0xcfffffff (rw)  
  Mode 0x0300: 640x400 (+640), 8 bits  
  Mode 0x0301: 640x480 (+640), 8 bits  
  Mode 0x0303: 800x600 (+800), 8 bits  
  Mode 0x0305: 1024x768 (+1024), 8 bits  
  Mode 0x0307: 1280x1024 (+1280), 8 bits  
  Mode 0x030e: 320x200 (+640), 16 bits  
  Mode 0x030f: 320x200 (+1280), 24 bits  
  Mode 0x0311: 640x480 (+1280), 16 bits  
  Mode 0x0312: 640x480 (+2560), 24 bits  
  Mode 0x0314: 800x600 (+1600), 16 bits  
  Mode 0x0315: 800x600 (+3200), 24 bits  
  Mode 0x0317: 1024x768 (+2048), 16 bits  
  Mode 0x0318: 1024x768 (+4096), 24 bits  
  Mode 0x031a: 1280x1024 (+2560), 16 bits  
  Mode 0x031b: 1280x1024 (+5120), 24 bits  
  Mode 0x0330: 320x200 (+320), 8 bits  
  Mode 0x0331: 320x400 (+320), 8 bits  
  Mode 0x0332: 320x400 (+640), 16 bits  
  Mode 0x0333: 320x400 (+1280), 24 bits  
  Mode 0x0334: 320x240 (+320), 8 bits  
  Mode 0x0335: 320x240 (+640), 16 bits  
  Mode 0x0336: 320x240 (+1280), 24 bits  
  Mode 0x033d: 640x400 (+1280), 16 bits  
  Mode 0x033e: 640x400 (+2560), 24 bits  
  Config Status: cfg=new, avail=yes, need=no, active=unknown  

Parece que hay muchos modos de alta resolución disponibles, como 0x305, 0x307, 0x317, 0x318, 0x31a, 0x31b (por cierto, ¿qué significa el número más en la lista de modos?). Sin embargo, establecer cualquiera de estos modos en la cadena de opciones del kernel, la línea vga=0x305, da como resultado una consola de texto de tono negro o una pantalla llena de puntos parpadeantes de color / ancho.

¿Cuál es la forma 'moderna' y 'robusta' de configurar alta resolución en consolas de texto?

mbaitoff
fuente

Respuestas:

25

Los núcleos más nuevos usan KMS de forma predeterminada, por lo que debe alejarse de agregar vga=a su línea de grub ya que entrará en conflicto con la resolución nativa de KMS. Sin embargo, depende del controlador de video que esté utilizando: el controlador propietario de Nvidia no es compatible con KMS , pero puede solucionarlo.

Debería poder obtener la resolución completa en el framebuffer editando /etc/default/gruby asegurándose de que GFXMODEesté configurado correctamente, y luego agregando una GFXPAYLOADentrada como esta:

GRUB_GFXMODE=1680x1050x24

# Hack to force higher framebuffer resolution
GRUB_GFXPAYLOAD_LINUX=1680x1050

Recuerda correr sudo update-grubdespués.

jasonwryan
fuente
Me metí Driver "nvidia"en mi xorg.conf, así que probablemente sea un controlador propietario. Voy a experimentar con de grubtodos modos. Por cierto, ¿cómo solucionar el controlador propietario?
mbaitoff
Uso el controlador propietario y el método anterior (en un cuadro de 10.10) y está bien. Siempre puede probar un controlador nouveau si lo desea: nouveau.freedesktop.org/wiki/UbuntuPackages
jasonwryan
1
Se parece enfoque GFXPAYLOAD trabajaron, pero sólo con set gfxpayload=keepengrub2 los archivos de configuración.
mbaitoff
2
Pero aún sospecho que mi modo de video no es nativo. He proporcionado GRUB_GFXPAYLOAD=1920x1080con GRUB_GFXMODE=1920x1080x24, pero todavía veo las letras poco claras en la consola como si estuviera en la resolución no nativa.
mbaitoff
1
Me topé con esto tratando de obtener una consola más grande para mi VM y quería agregar al comentario de @ mbaitoff. Para ingresar set gfxpayload=keepa la configuración de grub2, debe agregar la línea GRUB_GFXPAYLOAD_LINUX=keepa su /etc/default/grub. (Esto está en Debian, y supongo que Ubuntu - YMMV en otros). Tuve que buscar esto en los grub docs, así que pensé en compartirlo.
Se
13

Para las nuevas distribuciones de Debian y Ubuntu que usan nvidia, tuve que hacer lo siguiente:

Primero, edite / etc / default / grub. Cambia la siguiente línea:

#GRUB_GFXMODE=640x480 

a esto:

GRUB_GFXMODE=1280x800 
GRUB_GFXPAYLOAD_LINUX=keep

reemplazando 1280x800 con la resolución deseada.

Luego:

echo "echo FRAMEBUFFER=y" | sudo tee /etc/initramfs-tools/conf.d/splash
sudo update-initramfs -u
sudo update-grub

Para cambiar simplemente el tamaño de fuente, puede hacerlo usando el siguiente comando:

sudo dpkg-reconfigure console-setup
mchid
fuente
2
+1 para dpkg-reconfigure console-setup
jinowolski
Esto funcionó para mí en Kubuntu 16.04 con el controlador NVidia 390.
Maxim Egorushkin
Esto NO ES UN TIPO, echo "echo FRAMEBUFFER = y" es correcto. He comprobado y verificado esto y esto no funcionará sin el siguiente comando echo escrito en el archivo. ¡Gracias!
mchid
8

Aquí está tu mejor opción:

Use sudo hwinfo --framebuffercomo se describe, elija un modo de video que le gustaría ver durante el arranque en la consola, luego agregue la opción vga=nnna los parámetros de arranque del kernel.

El único truco es que nnnes el modo de video que seleccionó de la lista producida por hwinfo- ¡ CONVERTIDO A DECIMAL !

Si lo intentas vga=0xwhatever, no va a funcionar.

Por ejemplo, elegí el modo de video 0x307 (1280x1024 (+1280), 8 bits), convertí 0x307 a decimal, que es 775 y luego usé vga=775 en los parámetros de arranque de isolinux / extlinux.

Puede usar printf para convertir hexadecimal a decimal: $ printf "%d\n" 0x307 775

Y obtuve un buen texto en todas las consolas desde el principio.

¡Éxito!

chris_startx
fuente