GRUB2 et kernel vga = paramètre

Selon la documentation, l'utilisation du paramètre vga= kernel est déconseillée à partir de GRUB2. Le fait que certains kernelx plus récents ne semblent plus le supporter sur certains adaptateurs n'est pas préoccupant car la carte graphique que j'ai est âgée de sept à huit ans.

Le problème est maintenant que je voudrais utiliser un mode text de plus haute résolution, comme 80×50 au lieu des 80×25 caractères par défaut. Apparemment tous les modes charts (VBE / VESA) sont hors de question pour cette carte graphique (ATI Rage XL) – la list des modes disponibles ne montre que 0 à 6 . 6 est 80x60 mais a l'air horrible, alors j'aimerais y aller avec 1 (80×50).

J'ai vu 80×50 et 80×60 fonctionnant après avoir obtenu la list des modes disponibles lorsque le mode par défaut n'était pas supporté ( GRUB_TERMINAL=console par défaut) et j'ai été invité à choisir.

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

Mon idée serait de passer nomodeset au kernel encore, mais le chargeur de démarrage devrait alors encore définir le mode graphique. Et je ne peux pas voir d'autres options que le paramètre vga= kernel pour le faire.

Remarque: les commands vbetest et videotest de la console GRUB2 masquent l'écran, puis l'écran passe en mode veille après avoir déclaré qu'il n'y a pas d'input video. vbeinfo et videoinfo montrent quelques modes disponibles autres que ceux mentionnés ci-dessus, mais on ne mentionne pas où cela devrait être défini. En outre, en passant vga=1 (sans nomodeset ) sur la command line du kernel, je vois un très bref avertissement à ce sujet étant déprécié, mais il est trop long à lire complètement – et la sortie n'apparaît pas dans dmesg .

Peut-être est-il déconseillé par grub2, mais il devrait encore 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 command line fournie par le chargeur de démarrage est saisie par l'user, l'user peut s'attendre à ce que les options de command line suivantes fonctionnent. Ils ne devraient normalement pas être supprimés de la command line du kernel, même s'ils ne sont pas tous significatifs pour le kernel.

vga = soit un entier (en notation C, décimal, octal ou hexadécimal) ou une des strings "normal" (signifiant 0xFFFF), "ext" (0xFFFE) ou "ask". Cette valeur doit être input dans le champ vid_mode, tel qu'il est utilisé par le kernel avant que la command line ne soit analysée.

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 get une list des modes pris en charge, utilisez:

 vga=ask 

Pour un écran 1024 × 768 x 24 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 

Le paramètre vga est toujours supporté par les commands linux16 et initrd16, donc si vous changez "linux" en "linux16" ou "initrd" en "initrd16", vous pouvez get l'ancien comportement. Je ne suis pas sûr de ce que d'autres changements ont causé, mais cela a bien fonctionné pour moi. 🙂