Como definir a resolução em consoles de texto (soluciona problemas quando qualquer 'vga =…' falha)

28

É uma maneira comum de definir a resolução de um console de texto (que geralmente está disponível por Ctrl-Alt-F1 através de Ctrl-Alt-F6) usando o parâmetro vga=... kernel. Estou usando o Ubuntu 10.04 Lucid, a saída de uname -a é:

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

Para identificar os modos disponíveis, eu uso o sudo hwinfo --framebuffer que informa:

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 muitos modos hi-res estão disponíveis, como 0x305, 0x307, 0x317, 0x318, 0x31a, 0x31b (a propósito, o que significa o número-positivo na lista de modos?). No entanto, a configuração de qualquer um desses modos na sequência de opções do kernel, a linha vga=0x305 , resulta no console de texto de negrito ou na tela preenchida por pontos / cor intermitentes.

Qual é a maneira "moderna" e "robusta" de configurar alta resolução em consoles de texto?

    
por mbaitoff 20.07.2011 / 08:11

3 respostas

25

Novos kernels usam KMS por padrão, então você deve deixar de acrescentar vga= ao seu grub line como ele entrará em conflito com a resolução nativa do KMS. No entanto, depende do driver de vídeo que você está usando: o driver proprietário da Nvidia não suporta KMS , mas você pode contornar isso.

Você deve conseguir uma resolução completa no framebuffer editando seu /etc/default/grub e certificando-se de que o GFXMODE esteja definido corretamente e, em seguida, adicionando uma entrada GFXPAYLOAD da seguinte forma:

GRUB_GFXMODE=1680x1050x24

# Hack to force higher framebuffer resolution
GRUB_GFXPAYLOAD_LINUX=1680x1050

Lembre-se de executar sudo update-grub depois.

    
por 20.07.2011 / 09:30
13

Para o Debian mais novo & Distribuições Ubuntu usando nvidia, eu tive que fazer o seguinte:

Primeiro, edite / etc / default / grub. Altere a seguinte linha:

#GRUB_GFXMODE=640x480 

para isso:

GRUB_GFXMODE=1280x800 
GRUB_GFXPAYLOAD_LINUX=keep

substituindo 1280x800 pela resolução desejada.

Então:

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

Para simplesmente alterar o tamanho da fonte, você pode fazer isso usando o seguinte comando:

sudo dpkg-reconfigure console-setup
    
por 02.06.2015 / 02:29
6

Esta é sua melhor opção:

Use sudo hwinfo --framebuffer como descrito, escolha um modo de vídeo que você gostaria de ver durante a inicialização no console e adicione a opção vga=nnn aos parâmetros de inicialização do kernel.

O único truque é que nnn é o modo de vídeo selecionado na lista produzido por hwinfo - CONVERTIDO PARA DECIMAL !!!

Se você tentar vga=0xwhatever , não vai funcionar.

Por exemplo, escolhi o modo de vídeo 0x307 (1280x1024 (+1280), 8 bits), converti 0x307 em decimal, que é 775, e usei vga=775 nos parâmetros de inicialização do isolinux / extlinux.

Você pode usar o printf para converter hexadecimal em decimal: $ printf "%d\n" 0x307 775

E recebi um bom texto em todas as consolas desde o início.

Sucesso!

    
por 29.01.2016 / 10:30