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


29

È 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, l'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 quelle sudo hwinfo --framebufferche riportano:

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 dell'opzione del kernel, nella riga vga=0x305, si ottiene una console di testo in tonalità nera o una schermata riempita da punti di colore / bw lampeggianti.

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

Risposte:


25

I kernel più recenti utilizzano KMS per impostazione predefinita, quindi è necessario abbandonare l'aggiunta vga=alla linea di grub in quanto in conflitto con la risoluzione nativa di KMS. Tuttavia, dipende dal driver video che si sta utilizzando: il driver proprietario Nvidia non supporta KMS , ma è possibile aggirare il problema.

Dovresti essere in grado di ottenere la massima risoluzione nel framebuffer modificando il tuo /etc/default/grube assicurandoti che GFXMODEsia impostato correttamente e quindi aggiungendo una GFXPAYLOADvoce in questo modo:

GRUB_GFXMODE=1680x1050x24

# Hack to force higher framebuffer resolution
GRUB_GFXPAYLOAD_LINUX=1680x1050

Ricordati di correre sudo update-grubdopo.


Ho Driver "nvidia"nel mio xorg.conf, quindi è probabilmente un driver proprietario. Sperimenterò grubcomunque. A proposito, come aggirare il driver proprietario?
mbaitoff,

Uso il driver proprietario e il metodo sopra (su una scatola da 10.10) e va bene. Puoi sempre provare un driver nouveau se lo desideri: nouveau.freedesktop.org/wiki/UbuntuPackages
jasonwryan,

1
Looks come approccio GFXPAYLOAD lavorato, ma solo con set gfxpayload=keepnel grub2file di configurazione.
mbaitoff,

2
Ma ho ancora il sospetto che la mia modalità video non sia nativa. Ho fornito GRUB_GFXPAYLOAD=1920x1080con GRUB_GFXMODE=1920x1080x24, ma io continuo a vedere le lettere sfocate in console come se fossi nella risoluzione non nativa.
mbaitoff,

1
Ci siamo imbattuti in questo tentativo di ottenere una console più grande per la mia macchina virtuale e volevo aggiungere il commento di @ mbaitoff. Per accedere alla set gfxpayload=keepconfigurazione di grub2, devi aggiungere la linea GRUB_GFXPAYLOAD_LINUX=keepalla tua /etc/default/grub. (Questo è su Debian e suppongo Ubuntu - YMMV su altri). Ho dovuto dare la caccia a questo nei documenti di grub, quindi ho pensato di condividere.
Will

13

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 questa:

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

2
+1 per dpkg-reconfigure console-setup
jinowolski

Questo ha funzionato per me su Kubuntu 16.04 con driver NVidia 390.
Maxim Egorushkin,

Questo NON È UN TIPO, l'eco "echo FRAMEBUFFER = y" è corretto. Ho verificato e verificato questo e questo non funzionerà senza il successivo comando echo scritto nel file. Grazie!
mchid

8

Ecco la tua migliore opzione:

Utilizzare sudo hwinfo --framebuffercome descritto, scegliere una modalità video che si desidera vedere durante l'avvio nella console, quindi aggiungere l'opzione vga=nnnai parametri di avvio del kernel.

L'unico trucco è che nnnè la modalità video selezionata dall'elenco prodotto da hwinfo- CONVERTED TO DECIMAL !!!

Se ci provi vga=0xwhatevernon 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=775nei parametri di avvio di isolinux / extlinux.

È possibile utilizzare printf per convertire esadecimali in decimali: $ printf "%d\n" 0x307 775

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

Successo!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.