Comment définir la résolution dans les consoles de texte (dépannage en cas d'échec de `vga =…`)

29

C'est un moyen courant de définir la résolution d'une console de texte (qui sont généralement disponibles par Ctrl-Alt-F1 à Ctrl-Alt-F6) en utilisant un vga=...paramètre de noyau. J'utilise Ubuntu 10.04 Lucid, la sortie de uname -aest:

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

Pour identifier les modes disponibles, j'utilise les sudo hwinfo --framebufferrapports suivants:

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  

Il semble que de nombreux modes haute résolution soient disponibles, comme 0x305, 0x307, 0x317, 0x318, 0x31a, 0x31b (au fait, que signifie le nombre plus dans la liste des modes?). Cependant, la définition de l'un de ces modes dans la chaîne, la ligne d'option du noyau vga=0x305entraîne une console de texte noir ou un écran rempli de points de couleur / bw clignotants.

Quelle est la manière «moderne» et «robuste» de configurer la haute résolution dans les consoles de texte?

mbaitoff
la source

Réponses:

25

Les noyaux plus récents utilisent KMS par défaut, vous devez donc vous éloigner de l'ajout vga=à votre ligne grub car cela entrerait en conflit avec la résolution native de KMS. Cependant, cela dépend du pilote vidéo que vous utilisez: le pilote Nvidia propriétaire ne prend pas en charge KMS , mais vous pouvez le contourner.

Vous devriez pouvoir obtenir la pleine résolution dans le framebuffer en modifiant votre /etc/default/grubet en vous assurant que le GFXMODEest correctement défini, puis en ajoutant une GFXPAYLOADentrée comme ceci:

GRUB_GFXMODE=1680x1050x24

# Hack to force higher framebuffer resolution
GRUB_GFXPAYLOAD_LINUX=1680x1050

N'oubliez pas de courir sudo update-grubaprès.

jasonwryan
la source
J'ai Driver "nvidia"dans mon xorg.conf, donc c'est probablement un pilote propriétaire. Je vais expérimenter de grubtoute façon. Au fait, comment contourner le pilote propriétaire?
mbaitoff
J'utilise le pilote propriétaire et la méthode ci-dessus (sur une boîte 10.10) et ça va. Vous pouvez toujours essayer un nouveau pilote si vous le souhaitez: nouveau.freedesktop.org/wiki/UbuntuPackages
jasonwryan
1
On dirait que l' approche GFXPAYLOAD travaillé, mais seulement avec set gfxpayload=keepdans les grub2fichiers de configuration.
mbaitoff
2
Mais j'ai toujours un soupçon que mon mode vidéo n'est pas natif. J'ai fourni GRUB_GFXPAYLOAD=1920x1080avec GRUB_GFXMODE=1920x1080x24, mais je vois toujours les lettres floues dans la console comme si j'étais en résolution non native.
mbaitoff
1
Je suis tombé sur cela en essayant d'obtenir une console plus grande pour ma machine virtuelle et je voulais ajouter au commentaire de @ mbaitoff. Pour entrer set gfxpayload=keepdans la configuration grub2, vous devez ajouter la ligne GRUB_GFXPAYLOAD_LINUX=keepà votre /etc/default/grub. (C'est sur Debian, et je suppose que Ubuntu - YMMV sur les autres). J'ai dû traquer cela dans les documents grub, alors j'ai pensé que je partagerais.
Will
13

Pour les distributions Debian et Ubuntu plus récentes utilisant nvidia, je devais faire ce qui suit:

Tout d'abord, modifiez / etc / default / grub. Modifiez la ligne suivante:

#GRUB_GFXMODE=640x480 

pour ça:

GRUB_GFXMODE=1280x800 
GRUB_GFXPAYLOAD_LINUX=keep

remplacer 1280x800 avec la résolution souhaitée.

Ensuite:

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

Pour simplement changer la taille de la police, vous pouvez le faire en utilisant la commande suivante:

sudo dpkg-reconfigure console-setup
mchid
la source
2
+1 pour dpkg-reconfigure console-setup
jinowolski
Cela a fonctionné pour moi sur Kubuntu 16.04 avec le pilote NVidia 390.
Maxim Egorushkin
Ce n'est PAS un TYPO, l'écho "echo FRAMEBUFFER = y" est correct. J'ai vérifié et vérifié cela et cela ne fonctionnera pas sans la commande echo suivante écrite dans le fichier. Merci!
mchid
8

Voici votre meilleure option:

Utilisez sudo hwinfo --framebuffercomme décrit, choisissez un mode vidéo que vous souhaitez voir lors du démarrage dans la console, puis ajoutez l'option vga=nnnaux paramètres de démarrage du noyau.

La seule astuce est que nnnc'est le mode vidéo que vous avez sélectionné dans la liste produite par hwinfo- CONVERTED TO DECIMAL !!!

Si vous essayez, vga=0xwhatevercela ne fonctionnera pas.

Par exemple, j'ai choisi le mode vidéo 0x307 (1280x1024 (+1280), 8 bits), j'ai converti 0x307 en décimal qui est 775, puis j'ai utilisé vga=775dans les paramètres de démarrage d'isolinux / extlinux.

Vous pouvez utiliser printf pour convertir hexadécimal en décimal: $ printf "%d\n" 0x307 775

Et j'ai reçu un joli texte fin dans toutes les consoles depuis le début.

Succès!

chris_startx
la source