it-swarm.it

Come impostare la risoluzione nelle console di testo (risoluzione dei problemi in caso di errore di `vga = ...`)

È un modo comune per impostare la risoluzione di una console di testo (che di solito sono disponibili da Ctrl-Alt-F1 a Ctrl-Alt-F6) usando un vga=... parametro del kernel. Sto usando Ubuntu 10.04 Lucid, output di uname -a è:

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

Per identificare le modalità disponibili, utilizzo Sudo hwinfo --framebuffer che riporta:

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  

Sembra che siano disponibili molte modalità ad alta risoluzione, come 0x305, 0x307, 0x317, 0x318, 0x31a, 0x31b (a proposito, cosa significa il numero più nell'elenco delle modalità?). Tuttavia, impostando una di queste modalità nella stringa di opzioni del kernel, riga vga=0x305, si traduce in una console di testo in nero o in uno schermo riempito da punti lampeggianti di colore/bw.

Qual è il modo "moderno" e "robusto" per impostare l'alta risoluzione nelle console di testo?

29
mbaitoff

I kernel più recenti usano KMS per impostazione predefinita, quindi dovresti allontanarti dall'aggiunta di vga= alla tua riga di comando poiché sarà in conflitto con la risoluzione nativa di KMS. Tuttavia, dipende dal driver video che si sta utilizzando: il driver Nvidia proprietario non supporta KMS , ma è possibile aggirare il problema.

Dovresti essere in grado di ottenere la massima risoluzione nel framebuffer modificando il tuo /etc/default/grub e assicurandoti che GFXMODE sia impostato correttamente, quindi aggiungi una voce GFXPAYLOAD in questo modo:

GRUB_GFXMODE=1680x1050x24

# Hack to force higher framebuffer resolution
GRUB_GFXPAYLOAD_LINUX=1680x1050

Ricordati di eseguire Sudo update-grub in seguito.

27
jasonwryan

Per le nuove distribuzioni Debian e Ubuntu che usano nvidia, ho dovuto fare quanto segue:

Innanzitutto, modifica/etc/default/grub. Cambia la seguente riga:

#GRUB_GFXMODE=640x480 

a questo:

GRUB_GFXMODE=1280x800 
GRUB_GFXPAYLOAD_LINUX=keep

sostituendo 1280x800 con la risoluzione desiderata.

Poi:

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

Per modificare semplicemente la dimensione del carattere, puoi farlo utilizzando il seguente comando:

Sudo dpkg-reconfigure console-setup
14
mchid

Ecco la tua migliore opzione:

Uso Sudo hwinfo --framebuffer come descritto, scegli una modalità video che vorresti vedere durante l'avvio nella console, quindi aggiungi l'opzione vga=nnn ai parametri di avvio del kernel.

L'unico trucco è che nnn è la modalità video selezionata dall'elenco prodotto da hwinfo - CONVERTITO AL DECIMALE !!!

Se provi vga=0xwhatever non funzionerà.

Ad esempio, ho scelto la modalità video 0x307 (1280x1024 (+1280), 8 bit), ho convertito 0x307 in decimale che è 775 e quindi ho usato vga=775 nei parametri di avvio di isolinux/extlinux.

Puoi usare printf per convertire esadecimali in decimali: $ printf "%d\n" 0x307 775

Fin dall'inizio ho ricevuto un bel testo in tutte le console.

Successo!

9
chris_startx