GRUB2 et noyau vga = paramètre

16

Selon la documentation, l'utilisation du vga=paramètre du noyau est déconseillée à partir de GRUB2. Le fait que certains noyaux plus récents ne semblent plus le prendre en charge sur certains adaptateurs n'est pas un problème car la carte graphique que j'ai a entre sept et huit ans.

Le problème est maintenant que je voudrais utiliser un mode texte de résolution plus élevée, tel que 80x50 au lieu des caractères 80x25 par défaut. Apparemment, tous les modes graphiques (VBE / VESA) sont hors de question pour cette carte graphique (ATI Rage XL) - la liste des modes disponibles ne s'affiche qu'à 0travers 6. 6est 80x60mais a l'air horrible, donc je voudrais y aller 1(80x50).

J'ai vu 80x50 et 80x60 fonctionner après avoir obtenu la liste des modes disponibles lorsque le mode par défaut n'était pas pris en charge (avec la valeur par défaut commentée GRUB_TERMINAL=console) et j'ai été invité à choisir.

Comment puis-je définir le mode, si je ne suis pas censé le définir sur la ligne de commande du noyau et chaque utilisation de GRUB_GFXMODE(avec ou sans vbemodule de préchargement ) et GRUB_GFXPAYLOAD_LINUX=keepéchoue? Échoue comme dans: l'écran reste vide car c'est un mode graphique invalide pour la carte que j'ai dans cette machine?

Mon idée serait de passer nomodesetau noyau encore, mais le chargeur de démarrage devrait alors encore définir le mode graphique. Et je ne vois aucune option autre que le vga=paramètre du noyau pour le faire.

Remarque: les commandes vbetestet videotestde la console GRUB2 masquent l'écran, puis l'écran passe en mode veille après avoir affirmé qu'il n'y a pas d'entrée vidéo. vbeinfoet videoinfomontrer quelques modes disponibles autres que ceux mentionnés ci-dessus, mais il n'y a aucune mention de l'endroit où cela devrait être réglé. De plus, lors du passage vga=1(sans nomodeset) sur la ligne de commande du noyau, je vois un très bref avertissement à propos de sa dépréciation, mais c'est trop long pour être lu complètement - et la sortie n'apparaît pas dans dmesg.

0xC0000022L
la source
le vga paramètre s'applique au noyau, pas à grub2. Peu importe la façon dont le grub2développeur essaie de rendre le complexe simple, cela fonctionne toujours tant que les noyaux comprennent ce paramètre.
ajeh

Réponses:

9

Il est peut-être déconseillé par grub2, mais il devrait toujours fonctionner et doit continuer à fonctionner. Cela fonctionne pour moi en utilisant grub2 et debian wheezy ainsi que rhel7.3 (confirmé 01-2017). Toujours selon la documentation officielle, il n'est pas déconseillé:

https://www.kernel.org/doc/Documentation/x86/boot.txt

Si la ligne de commande fournie par le chargeur de démarrage est entrée par l'utilisateur, l'utilisateur peut s'attendre à ce que les options de ligne de commande suivantes fonctionnent. Ils ne devraient normalement pas être supprimés de la ligne de commande du noyau même s'ils ne sont pas tous significatifs pour le noyau.

vga = ici est soit un entier (en notation C, soit décimal, octal ou hexadécimal) ou l'une des chaînes "normal" (signifiant 0xFFFF), "ext" (signifiant 0xFFFE) ou "ask" (signifiant 0xFFFD). Cette valeur doit être entrée dans le champ vid_mode, car elle est utilisée par le noyau avant l'analyse de la ligne de commande.

Et https://www.kernel.org/doc/Documentation/svga.txt vous dira tout ce que vous devez savoir. Ci-dessous quelques exemples de résolutions que j'utilise couramment:

vga=0x31b --> 1280x1024x32
vga=0x34d --> 1600x900x32
vga=0x31e --> 1600x1200x32

Pour obtenir une liste des modes pris en charge, utilisez:

vga=ask

Pour un écran 1024 × 768x24 que j'ai trouvé fonctionne sur à peu près tous les systèmes et moniteurs que j'utilise (cette fois en décimal et en hexadécimal):

vga=792
vga=0x318
aseq
la source
1
Cela fonctionne pour moi lorsque je modifie le /etc/default/gruben ajoutant vga=792à la valeur existante deGRUB_CMDLINE_LINUX
Shashank Vyas
Une mise à jour d'Ubuntu a installé aujourd'hui de nouveaux trucs de démarrage grub UEFI et a proposé un changement de ligne de commande à ajouter vga=currentavec des trucs de vidage sur incident. J'ai refusé les changements mais je suis venu ici en me demandant ce vga=currentque cela signifiait.
WinEunuuchs2Unix
2

Le paramètre vga est toujours pris en charge avec les commandes linux16 et initrd16, donc si vous changez "linux" en "linux16" ou "initrd" en "initrd16", vous pouvez obtenir l'ancien comportement. Je ne sais pas quels autres changements cela provoque, mais cela a assez bien fonctionné pour moi. :-)

Adam M.
la source
1
C'est un excellent conseil! Appuyez simplement sur e pour éditer dans grub2, puis descendez jusqu'à l'endroit où il est dit linux et mettez 16 à la fin. Ensuite, vous pouvez mettre vga = ask à la fin de la ligne. Si framebuffer est toujours activé dans le noyau, il passera probablement assez rapidement du texte VGA rapide à ce mode.
Alex Cannon